• SQL数据库备份与恢复


                   备份就是制作数据库结构和数据的拷贝,以便于在数据库遭到破坏的时候能够修复数据,为了将数据库完整的备份,应该根据具体的环境和条件,制订一个可行的备份计划。
                    1
    、数据库的备份方法:
    1
    )完全数据库备份                完全备份就是说不仅备份数据库,而且还要备份在备份过程中发生的任何活动,并且备份事务日志。如果是只读数据库,这种方式就足以防止数据的损失。
                    2
    )增量备份                                        对于一个经常修改的数据库,为了最大程度减少恢复时间,可以执行数据库增量备份,它只能在执行了完全数据库备份之后,才能执行增量备份。在这种备份方式中,系统备份至上一次完全数据库备份之后的已经改变的数据库部分,和备份在执行增量备份过程中发生的任何活动以及事务日志中任何未提交的事务。应该为增量备份的内容创建一个命名机制,这样将有利于数据库的快速恢复。
                    3
    )事务日志备份                        可以备份数据库事务日志来记录任何数据库的变化,只有当执行了完全数据库备份之后,才能备份事务日志,如果没有响应数据库备份,事务日志不能够用于恢复。
                    4
    )数据库文件备份                    当数据库非常巨大时,可以执行数据库文件或者文件组备份。在具体备份文件或者文件组时需要进行相应的设置。文件组包含了一个或者多个数据库文件。当执行数据库文件或者数据库文件组备份时,应该考虑下列一些因素:必须指定文件或者文件组的逻辑名称;为了使存储的文件与数据库的其余部分一致起来,允许执行事务日志的备份;为了确保所有的数据库文件或者文件组有规律地备份,应该制定一个周期备份每一个文件的规划。
                        
    那么在实际过程中,我们需要针对具体的环境,选择一种适当的策略。
                    
    例如:为了记录在两次完全数据库备份之间所有的数据库活动,除了执行完全数据库备份之外,还需要进行事务日志备份。当频繁的修改数据库时,可以执行这种策略。
                        
    实现增量备份的时候必须包括一个完全数据库备份和事务日志备份,在增量备份中,系统在执行了增量备份时,并不备份事务日志,因此需要用户周期性的备份事务日志,使用这种方法可以减少数据库的恢复时间。
                        
    当实现数据库文件或者文件组备份策略时,常常备份事务日志。
    下表说明适用于每种恢复模型的备份类型。
    模型 备份类型
        
    数据库完全备份 数据库差异 事务日志 文件或文件差异
    简单 必需 可选 不允许 不允许
    完全 必需(或文件备份) 可选 必需 可选
    大容量日志记录 必需(或文件备份) 可选 必需 可选

    2
    、备份操作的具体执行方法:SQL SERVER 企业管理器(enterprise manager),备份向导和Transact—SQL语句。
                    
                            1
    )那么首先来介绍通过企业管理器来备份的方法,具体操作方法如下:
                        
    我们先新建一个数据库,以便于我们更好的理解数据库文件和事务日志文件。打开SQL Server的企业管理器,展开数据库文件夹,右击数据库 ,选择创建新的数据库。界面如下:
            
    在数据文件和事务日志选项下面,我们可以看到一些相应的设置。按字面的意思我们就可以知道,这实际上是对文件大小和以后增长方式的设置。创建完数据库之后,可以在里面适当的创建tableview等,接下来我们来备份数据库。
                            
    打开SQL Server的企业管理器,展开数据库文件夹,右击数据库,选择菜单【所有任务】【备份数据库(B)】:显示如下窗口:

    在选择路径前要注意,如果要将备份文件存于当前默认路径,则请选择下面的重写现有媒体选择,如果要更改路径,则请删除当前路径,并选择追加到媒体。 选择【调度】选项,可以备份操作进行命名(这点对于增量备份是相当重要的),然后可以设置调度类型。从而达到SQL的自动备份。界面如下:
     
       按【添加(A)】按钮,选择备份文件的存放路径:

                            
    在这里你可以选择备份的文件名或者是设备上面如移动硬盘等。

    2
    )接着是backup Wizard(备份向导)来执行备份
                    
    在企业管理器(enterprise manager)窗口的【工具】菜单中,选择【向导】----【管理】-----【备份向导】,启动之后将出现一个WELCOME窗口,然后按照一步一步的提示,我们可以完成数据库的备份。具体界面如下:


    在选择好备份类型之后,则出现选择备份设备和动作窗口,在该窗口中可以选择备份的设备类型和属性。有三种设备可供选择:磁带、文件和备份设备。选择文件表示临时备份,选择设备表示执行永久性备份。在属性区域中还可以选择是附加在备份介质(媒体)上的内容之后还是覆盖备份介质(媒体)上的内容。界面如下:

    在接下来的窗体中,可以检查备份集的名称和失效期、设置失效日期和设置备份的调度。


    3
    )使用Transact-SQL语句来备份:
    在创建临时备份文件时,可以使用BACKUP DATEBASE语句。例如:
    USE master
    BACKUP DATABASE northwind TO DISK=”C:\master1.bak”
                BACKUP DATABASE
    语句的规则如下:
    BACKUP DATABASE {database_name| @database_name_var}
    TO <back_file>[,….n]
    [WITH
    [[,] FORMAT]
    [[,]{INIT|NOINIT|}

    3
    、数据库恢复
            
    恢复是与备份相对应的操作。数据库恢复就是加载数据库备份到系统的进程中,在进行数据库恢复时系统首先进行一些安全性检查,之后针对不同的数据库类型采用不同的数据库恢复方法。
            
    在执行数据库恢复之前,必须限制用户对数据库的访问以及备份事务日志。数据库恢复是静态的,因此应该设置数据库的restrict access (限制访问)选项。可以使用两种方法来设置该选项,一种是通过SQL SERVER Enterprise manager ,一种是通过系统自带的存储过程:sp_dbotion.
            
    我们经常是用企业管理器来执行数据库恢复的准备任务:
            
    进入上面的界面,我们可以选择【限制访问】选项,下面有两个选项,第一个选项的意思是允许数据库的所有者、数据库创建者和系统管理员访问该数据库,这是在进行数据库恢复中需要设置的。而下一个选项则是限制指定的数据库在同一时间只能有一个用户使用。
    在进行数据库恢复的过程有两种方法可以实现:一种是使用企业管理器,一种是使用RESTRORE语句。同样,我们重点介绍的是企业管理器方式:

    在上面的这个窗体显示备份的数据库名称和将要恢复的第一次备份。在该选项卡的下面显示的是备份内容的信息。
    在【选项】卡中,我们可以看到最上面有三个复选框,第一个表示在恢复完成之后,退出设备。该选框主要限制于使用备份设备。第二个表示在恢复每个备份之前,系统将会有提示信息。第三个表示恢复的数据库将要覆盖原来的数据库。
    在窗体的下面【选项】恢复完成状态显示的是相应的恢复数据库的三种类型。


    使用RESTORE语句。
    1)
    从完全数据库备份中恢复数据库        eg
    use master
    restore datebase northwind
    from nwindbc
    with file=2
    recovery
    2)
    从增量备份中恢复数据库:
    eg
    use master
    restore database northwind
    from nwindbacdiff
    with recovery
    以上是常见的两种方式,还有从事务日志备份中恢复和从指定的时间点恢复等等。
  • 相关阅读:
    洛谷 P2473 [SCOI2008]奖励关(状压dp+期望)
    洛谷P2051 [AHOI2009]中国象棋(dp)
    洛谷P2523 [HAOI2011]Problem c(计数dp)
    牛客Wannafly挑战赛26E 蚂蚁开会(树链剖分+线段树)
    POJ1149 PIGS
    CF802C Heidi and Library (hard)
    struts中请求数据自动封装
    struts 中数据处理的3中方式
    ajax第二天学习
    jstl标签
  • 原文地址:https://www.cnblogs.com/cuihongyu3503319/p/524971.html
Copyright © 2020-2023  润新知