




已阅读5页,还剩44页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第14章 数据库的备份和恢复,14. 1 备份概述 14. 2 备份设备 14. 3 备份类型 14. 4 执行备份 14. 5 从不同的备份中恢复数据库 14. 6 恢复数据库系统,返回目录,2,14. 1 备份概述,14. 1. 1 概述 1)什么是备份? 备份就是对SQL Server数据库或事务日志进行复制,记录了当时数据库中所有数据的状态,以便在数据库遭到破坏时能够及时地将其恢复。 2)备份权限: 系统管理员(服务器角色) 数据库所有者(数据库角色) 数据库备份执行者(数据库角色),3,数据库备份是指系统管理员定期或不定期地将数据库部分或全部内容复制到磁带或另一个磁盘上保存起来的过程。这些复制的数据拷贝称为后备副本。 当数据库中的数据遭到破坏或丢失时,可以利用后备副本进行数据库的恢复,但只能恢复到备份时的状态。要使数据库恢复到发生故障时刻前的状态,必须重新运行自备份以后到发生故障前所有的更新事务。,4,数据库中的数据丢失或被破坏可能是由于以下原因: (1)计算机硬件故障:硬盘损坏会使得存储于其上的数据丢失。 (2)软件故障:软件设计上的失误或用户使用的不当。 (3)病毒:破坏性病毒破坏系统软件、硬件和数据。 (4)误操作:误使用诸如DELETE、UPDATE等命令 (5)自然灾害:如火灾、洪水或地震等。 (6)盗窃。一些重要数据可能会遭窃。,5,14.1.2 备份的分类 备份可分为静态备份和动态备份。 静态备份:备份期间不允许对数据库进行任何存取、修改活动的备份方式。 动态备份:备份期间允许对数据库进行存取或修改,即备份和用户事务可以并发执行的备份方式。 静态备份简单,但降低数据库的可用性。 动态备份可克服静态备份的缺点。但是,动态备份结束后,后备副本上的数据并不能保证是正确有效的。,6,14.1.3 何时备份 SQL Server的备份可以手工完成,也可以通过SQL Server Agent完成。SQL Server Agent可以在事先设定的任一天的任何时候执行备份计划。 数据库备份分为两种,一种是定期进行的备份,另一种是不定期的数据库备份。不定期的备份一般是数据库发生某些改变后进行的。,7,14.1.3 何时备份 1. 周期性数据库备份 一种经常采用的备份方案是:每月、每周、每日都进行一次备份。 每月一次的备份,要么在月初,要么在月末,这个备份可以永久保存。 每周一次的备份,它应该保存一段时期,比如一年。 每日的备份,应该保存一个月。 备份应该保存在一个安全地方,比如防火、距离机房较远的地方。,8,2. 数据库不定期的备份 在数据库发生以下改变后,应该进行数据库的备份。 创建、修改、删除数据库前应该备份数据库。 创建了用户自定义对象。 增加或删除服务器的系统存储过程。 修改了master、msdb、model数据库。 清除事务日志或执行了不写入事务日志的操作。,9,14.2 备份设备,备份设备(backup device)是指SQL Server中存储数据库和事务日志备份拷贝的存储介质。备份设备可以被定义成本地的磁盘文件、远程服务器上的磁盘文件、磁带或者命名管道。 创建备份时,必须选择存放备份数据的备份设备。当建立一个备份设备时,需要给其分配一个逻辑名和一个物理名。 物理名是操作系统用来标识备份设备的名称。 逻辑名是用来标识物理备份设备的别名或公用名。逻辑设备名称永久地存储在SQL Server的系统表中。,10,14.2.1 备份设备的类型 1. 磁盘设备 磁盘备份设备是指硬盘或其它磁盘存储媒体。可以将本地磁盘或远程磁盘定义成磁盘备份设备,磁盘备份设备根据需要可大可小。 在网络上将文件备份到远程计算机上的磁盘,需使用通用命名规则名称,以 ServernameSharenamePathFile 格式指定文件的位置。 在网络上备份数据可能受网络数据传输错误的影响,因此备份操作完成后应该进行备份的验证。,11,2. 磁带设备 磁带备份设备的用法与磁盘设备相同,但必须将磁带设备物理连接到运行 SQL Server 实例的计算机上。SQL Server不支持磁带设备的远程备份。 第一个安装到计算机上的磁带设备被分配的名字是.Tape0,第二个磁带设备的名字是.Tape1,以后安装的磁带设备的命名以此类推。,12,3. 命名管道备份设备 SQL Server系统提供了把备份放在Name Pipe命名管道上的能力,允许第三方软件供应商提供命名管道备份设备来备份和恢复SQL Server数据库。但要注意,命名管道备份设备不能通过企业管理器创建和管理。,13,14.2.2 建立备份设备 1.使用T-SQL语句建立备份设备 系统存储过程sp_addumpdevice可以用来添加备份设备。其语法形式如下: sp_addumpdevice device_type, logical_name, physical_name 参数: device_type:备份设备的类型。三种类型中的一种:disk以硬盘文件作为备份设备;pipe命名管道备份设备;tape磁带备份设备。 logical_name:备份设备的逻辑名。 physical_name:备份设备的物理名称。如果要添加磁带设备,该参数必须是Windows NT指派给本地磁带设备的物理名称,例如 .TAPE0。如果名称包含非字母数字的字符,需要用引号将其引起来。,14,【例14-1】分别创建一个本地磁盘、网络磁盘和磁带备份设备。 /* 创建本地磁盘备份设备 */ EXEC sp_addumpdevice disk , DiskBak_jwgl , c:dumpjwgl.bak /* 创建一个网络磁盘备份设备 */ EXEC sp_addumpdevice disk ,NetBak_jwgl , BackSrvSQLBakjwgl.bak /* 创建一个磁带备份设备 */ EXEC sp_addumpdevice tape , TapeBak_jwgl , .tape0,15,2. 使用企业管理器建立备份设备 使用企业管理器建立备份设备采用以下步骤: 展开服务器组,然后展开服务器。 展开“管理”文件夹,右击“备份”,然后单击“新建备份设备”命令。屏幕将显示如图14-1的“备份设备属性”窗口,并表明是“新设备”。 在“名称”框中输入该备份设备的名称,这是备份设备的逻辑名。 如果建立一个磁盘备份设备,单击“文件名”,执行下列操作之一以确定备份设备的物理名。 如果要建立一个磁带备份设备,单击“磁带驱动器名”,再单击要用作备份设备的磁带设备。(如果窗口中没有列出磁带设备,则表明本地计算机无法检测到磁带设备。) 单击“确定”按钮,完成建立备份设备的操作。,16,14.2.2 建立备份设备 备份设备的删除 (1)在企业管理器中,可以选定备份设备,右击,从弹出的快捷菜单中选择“删除”选项即可。 (2)通过调用存储过程sp_dropdevice删除备份设备 【例11-2】删除例11-1中建立的备份设备 在查询分析器中执行下列语句 EXEC sp_dropdevice DiskBak_jwgl,17,14.3 备份类型,SQL Server 支持的备份类型包括(4类): 完整数据库备份 备份包括事务日志在内的整个数据库。 差异数据库备份 在完整数据库备份之间执行差异数据库备份。 事务日志备份 日志备份序列提供了连续的事务信息链,可支持从数据库、差异或文件备份中快速恢复数据。 数据库文件和文件组备份,18,14.3.1 完整数据库备份 完整数据库备份是指所有的数据库对象、数据和事务日志都将被备份。备份与还原都只需要很简单的操作。 与事务日志备份和差异数据库备份相比: 使用的存储空间更多。 需要更多的时间。 创建频率低。 由于完整数据库备份不能频繁地创建,因此,不能最大程度地恢复丢失的数据。,19,14.3.2 差异备份 差异数据库备份只记录自上次完整数据库备份后发生更改的数据。差异数据库备份比完整数据库备份小而且备份速度快。 在执行差异数据库备份时注意如下几点: 创建定期的数据库备份。 在每个完整数据库备份之间定期创建差异数据库备份。 应该在两个差异数据库备份的时间间隔内执行事务日志备份,把数据损失的风险降到最小。,20,14.3.3 事务日志备份 事务日志是自上次备份事务日志后对数据库执行的所有事务的一系列记录。 一般情况下,事务日志备份比完整数据库备份使用的资源少。因此可以比完整数据库备份更经常地创建事务日志备份。经常备份将减少丢失数据的危险。 有时,事务日志备份比完整数据库备份大。例如,数据库的事务率很高,从而导致事务日志迅速增大。在这种情况下,应更经常地创建事务日志备份。,21,14.3.4 数据库文件和文件组备份 SQL Server 2000支持备份或还原数据库中的个别文件或文件组。这是一种相对较完善的备份和还原过程,通常用在具有较高可用性要求的超大型数据库(VLDB)中。 如果可用的备份时间不足以支持完整数据库备份,则可以在不同的时间备份数据库的子集。文件备份和还原操作必须与事务日志备份一起使用。,22,14.4 执行备份,14.4.1 备份前的准备 备份计划主要考虑以下几个方面: 确定备份的频率。确定备份频率要考虑两个因素:一是系统恢复时的工作量,二是系统活动的事务量。 确定备份的内容。确定数据库中的哪些数据需要备份。 确定备份的介质。确定是使用磁盘、还是磁带作为备份的介质。创建备份前需要初始化备份媒体。,23, 确定备份的方式。确定备份采用动态备份还是静态备份。 估计备份需要的存储空间量。在执行备份前,应该估计备份需要使用的存储空间量。 确定备份的人员。 是否使用备份服务器。如果使用备份服务器,出现故障时,系统能迅速地得到恢复。 确定备份存储的期限和存放地点:备份应该存储安全的地方并保存适当的期限。,24,14.4.2 使用企业管理器进行备份 实际备份操作中,经常使用企业管理器来进行数据库备份,下面将针对不同的备份类型说明在企业管理器中如何进行备份操作。 1. 在企业管理器中进行完整数据库备份的操作步骤: 展开服务器组,然后展开服务器。 展开“数据库”文件夹,右击要备份的数据库名,指向“所有任务”子菜单,然后单击“备份数据库”命令。 在“名称”框内,输入备份集名称。在“描述”框中输入对备份集的描述(可选)。 在“备份”选项下单击“数据库 完全”。 在“目的”选项下,单击“磁带”或“磁盘”。如果不能选择,则有可能是因为没有磁带设备。然后指定备份目的地。如果没出现备份目的地,则单击“添加”以添加现有的目的地或创建新目的地。,25, 在“重写”选项下,如单击“追加到媒体”,则将备份追加到备份设备现有的备份中;如单击“重写现有媒体”,将重写备份设备中现有的备份。 选择“调度”复选框,设置备份操作在以后执行或定期执行(可选)。 单击“选项”选项卡,并执行下列一项或多项操作,选项卡显示如图14-5所示。 如果是第一次使用备份媒体,或者要更改现有的媒体标签,则在“媒体集标签”框下选择“初始化并标识媒体”复选框,然后输入媒体集名称和媒体集描述。只有在重写媒体时才能对其进行初始化和标识设置。 点击“确定”开始数据库备份。,26,2. 在企业管理器中进行差异备份的操作步骤: 除第4步骤选择“数据库差异”外,其它步骤与完整数据库备份相同。 3. 在企业管理器中进行事务日志备份的操作步骤: 除第4步骤选择“事务日志”外,其它步骤与完整数据库备份相同。 4. 在企业管理器中进行文件和文件组备份的操作步骤: 展开服务器组,然后展开服务器。 展开“数据库”文件夹,右击要备份的数据库,指向“所有任务”子菜单,然后单击“备份数据库”命令。 在“名称”框内,输入备份集名称。在“描述”框中输入对备份集的描述。(可选) 在“备份”下,单击“文件和文件组”,然后单击浏览(“”)按钮。,27, 在如图14-6 “指定文件组和文件”对话框中,为要备份的每个文件组和文件选择“备份”。通过选定文件组名,可自动选择该文件组中的所有文件。点击“确定”关闭该对话框。 图14-6 在文件和文件组备份中指定文件或文件组对话框 在“目的”选项下,单击“磁带”或“磁盘”,然后指定备份目的地。如果没有出现备份目的地,单击“添加”以添加现有的目的地或创建新的目的地。 选择一种“重写”方式:“追加到媒体”或“重写现有媒体”。 选择“调度”复选框,设置备份操作以后执行或定期执行。(可选) 单击“选项”选项卡,进行相关设置(可选) 点击“确定”开始备份操作。,14.4.3 使用Transact-SQL语句备份 1)数据库备份 可以通过BACKUP语句进行数据库备份,其语法格式如下: BACKUP DATABASE database_name | database_name_var TO backup_device,n WITH ,FORMAT,INIT|NOINIT,RESTART,DIFFERENTIAL 其中: backup_device:指定备份操作时所要使用的逻辑或物理备份设备。其值为:disk、tape或pipe。 FORMAT:表示应将媒体头写入用于此备份操作的所有卷。任何现有的媒体头都被重写。FORMAT选项使整个媒体内容无效,并且忽略任何现有的内容。 INIT|NOINIT:INIT表示将重写那个设备上的所有现有的备份集数据,但是保留媒体头;NOINIT表示备份集将追加到指定的磁盘或磁带设备上,以保留现有的备份集。NOINIT是默认设置。 RESTART:表示SQL Server将重新启动一个被中断的备份操作。 DIFFERENTIAL:指定备份为差异备份,如果不指定该参数则是完全备份。,【例】创建磁盘备份设备:mydevice1和mydevice2,分别对数据库jwgl进行完全备份和差异备份。 在查询分析器中执行下列语句: /*执行两种备份方式*/ BACKUP DATABASE jwgl to DiskBak_jwgl WITH INIT BACKUP DATABASE jwgl to DiskBak_jwgl WITH DIFFERENTIAL,14.4.3 使用Transact-SQL语句备份 2)事务日志备份 使用BACKUP语句进行事务日志备份,其语法格式如下: BACKUP LOG database_name | database_name_var TO backup_device,n WITH NO_ TRUNCATE , TRUNCATE ONLY| NO LOG 其中: NO_ TRUNCATE:表示允许在数据库损坏时备份日志。 TRUNCATE ONLY| NO LOG:删除不活动的日志部分,并且截断日志。该选项会释放空间。 【例11-4】创建一个备份设备,并将数据库jwgl的事务日志备份到该设备上。 BACKUP LOG jwgl to DiskBak_jwgl,31,14.5 从不同备份中恢复数据库,数据库恢复是数据库管理系统管理的另一项重要工作。 执行数据库恢复以前,应注意以下两点: 在数据库恢复前,应该删除故障数据库,以便删除对故障数据库的任何引用。 数据库恢复之前,必须限制用户对数据库的访问,数据库的恢复是静态的,应使用企业管理器或系统存储过程sp_dbotion设置数据库为单用户。,32,14.5.1 使用T-SQL语句进行数据库的恢复 1. RESTORE语句的语法 还原整个数据库 RESTORE DATABASE database_name | database_name_var FROM ,.n WITH FILE = file_number | file_number , NORECOVERY | RECOVERY | STANDBY = undo_file_name 还原数据库部分内容的语法 RESTORE DATABASE database_name | database_name_var ,.n FROM ,.n WITH PARTIAL , FILE = file_number | file_number , NORECOVERY ,33,还原特定的文件或文件组的语法 RESTORE DATABASE database_name | database_name_var ,.n FROM ,.n WITH FILE = file_number | file_number , NORECOVERY 还原事务日志语法 RESTORE LOG database_name | database_name_var FROM ,.n WITH FILE = file_number | file_number , NORECOVERY | RECOVERY | STANDBY = undo_file_name , STOPAT = date_time | date_time_var ,34,参数: database_name | database_name_var :指定了将日志或整个数据库备份还原到后数据库名称。 :指定还原操作要使用的逻辑或物理备份设备。 :指定包括在数据库还原中的逻辑文件或文件组的名称。可以指定多个文件或文件组。 FILE = file_number | file_number :标识要还原的备份集。例如,file_number 为 1 表示备份媒体上的第一个备份集,file_number 为 2 表示第二个备份集。 NORECOVERY :指示还原操作不回滚任何未提交的事务。如果需要应用另一个事务日志,则必须指定 NORECOVERY 或 STANDBY 选项。如果 NORECOVERY、RECOVERY 和 STANDBY 均未指定,则默认为 RECOVERY。 RECOVERY :指示还原操作回滚未提交的事务。在恢复进程后即可随时使用数据库。 PARTIAL :指定部分还原操作。 STOPAT = date_time | date_time_var :指定将数据库还原到指定的日期和时间时的状态。只有在指定的日期和时间前写入的事务日志记录才能应用于数据库。,35,2. 使用SQL语句恢复数据库备份 用SQL语句恢复完整数据库备份 使用T-SQL语句RESTORE DATABASE恢复整个数据库时,需要指定要还原数据库的名称和保存数据库备份的备份设备。 1)如果要在还原数据库备份后应用事务日志或差异数据库备份,则需要指定NORECOVERY子句。 2)如果备份设备上有多个备份集,可以使用FILE子句指定文件号标识需要从哪个备份集中恢复数据库。 3)例如:从备份设备DiskBak_sdb中还原整个数据库: RESTORE DATABASE sdb FROM DiskBak_sdb /*或*/ RESTORE DATABASE sdb FROM DiskBak_sdb WITH RECOVERY /*或*/ RESTORE DATABASE sdb FROM DiskBak_sdb WITH FILE = 1, RECOVERY,36, 使用SQL语句从差异数据库备份中还原数据 1)首先执行RESTORE DATABASE并指定NORECOVERY子句,以恢复差异数据库备份之前的完整数据库备份。 2)然后再执行一次RESTORE DATABASE恢复差异数据库备份,并同时需要指定数据库名称和要从其中恢复差异数据库备份的备份设备。 3)如果在执行完差异数据库备份恢复以后还要应用事务日志备份,则还必须同时指定NORECOVERY子句,否则指定RECOVERY子句。 还原差异数据库备份的顺序为:先还原最新的完整数据库备份,然后还原最后一次的差异数据库备份。,37,【例14-3】从差异数据库备份中恢复数据。 /* 从DiskBak_sdb中还原SDB数据库和差异数据库备份 */ RESTORE DATABASE sdb FROM DiskBak_sdb WITH NORECOVERY RESTORE DATABASE sdb FROM DiskBak_sdb WITH FILE = 3, RECOVERY,38, 使用SQL语句还原事务日志备份 一般采用以下步骤从事务日志备份恢复数据库: 必须首先还原事务日志备份之前的完整数据库备份或差异数据库备份。 按顺序恢复自完整数据库备份或差异数据库以后创建的所有事务日志。 撤消所有未完成的事务。,39, 使用SQL语句还原事务日志备份 执行RESTORE LOG语句,可进行由事务日志备份恢复数据库的工作。在RESTORE LOG需要指定事务日志将应用到的数据库名称和要从其中恢复事务日志备份的备份设备。 如果恢复当前事务日志备份后还要应用其它事务日志备份,则在执行RESTORE LOG时必须还要指定NORECOVERY子句,否则,指定RECOVERY子句以恢复服务器的运行状态。,40,【例14-4】将多个事务日志备份恢复到数据库JWGL中(假设已经进行过完整备份恢复或差异备份恢复): RESTORE DATABASE sdb FROM DiskBak_sdb WITH NORECOVERY RESTORE DATABASE sdb FROM DiskBak_sdb WITH FILE = 3, NORECOVERY RESTORE LOG sdb FROM DiskBak_sdb WITH FILE = 4, NORECOVERY RESTORE LOG sdb FROM DiskBak_sdb WITH FILE = 5, RECOVERY,41, 使用SQL语句恢复数据库文件和文件组 在T-SQL环境下,执行RESTORE DATABASE恢复数据库文件和文件组备份,RESTORE DATABASE语句中,需要指定要恢复的数据库名称、文件和文件组备份所在的备份设备。如果执行完当前文件和文件组备份恢复后还需要对文件进行修改,则必须指定NORECOVERY子句,否则需指定RECOVERY子句。如果在创建文件备份之后对文件进行了修改,则执行 RESTORE LOG 语句以应用事务日志备份。 【例14-5】从DiskBak_jwgl中恢复文件和文件组备份: RESTORE DATABASE jwgl FILE = jwgl_data FROM DiskBak_jwgl,42,14.5.2 企业管理器中恢复数据库备份 1. 在企业管理器中恢复完整数据库备份 在企业管理器中恢复完全数据库备份,按下列步骤进行操作: 展开服务器组,然后展开服务器。 展开“数据库”文件夹,右击数据库,指向“所有任务”子菜单,然后单击“还原数据库”命令。窗口显示“还原数据库”对话框,如图14-9所示。,43, 在“还原为数据库”框中,如果要还原的数据库名称与显示的默认数据库名称不同,需点击下拉框进行选择。若要使用新名称还原数据库,输入新的数据库名称。 单击“数据库”。 在“显示数据库备份”对应的下拉框中,选择要还原的数据库。 在“要还原的第一个备份” 对应的下拉框中,选择要还原的备份集。 在“还原”列表中,单击要还原的数据库备份。 点击“确定”,系统开始数据库的还原。,44,2. 使用企业管理器从差异数据库备份恢复数据 在SQL Server企业管理器中,使用以下步骤可从差异数据库备份恢复数据: 展开服务器组,然后展开服务器。 展开“数据库”文件夹,右击数据库,指向“所有任务”子菜单,然后单击“还原数据库”命令。 在如上图14-9“还原数据库”对话窗口的“还原为数据库”框中,选择或重新输入还原后的数据库名称。 单击“数据库”。 在“要还原的第一个备份”列表中,选择要还原的备份集。 在“还原”列表中,单击要还原的差异备份。 点击“确定”,系统开始数据库的还原。,45,3. 使用企业管理器还原事务日志备份 在企业管理器中,按照以下步骤进行事务日志备份的恢复操作: 展开服务器组,然后展开服务器。 展开
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 法律合同法规定及案例分析测试卷
- 2025年医用冷疗项目合作计划书
- 汽车制造业工程师工作经历及技术证明(6篇)
- 商业零售店经营合作协议详细规定内容
- 农业科技创新与示范推广合作方案协议
- 游戏行业游戏开发引擎与运营策略方案
- 制造业 工厂员工工资单证明(5篇)
- 行政管理及组织行为学中的互动关系试题及答案
- 行政管理在经济中的作用试题及答案
- 行政公文写作的综合能力考察试题及答案
- 入团考试试题及答案大学
- 2025年北京高考语文三轮复习之微写作
- 阿片类药物不良反应和处置
- 贵港离婚协议书模板
- 2025年公安机关人民警察基本级执法资格备考题库
- 2025保密在线教育培训题库(含答案)
- 2.1 充分发挥市场在资源配置中的决定性作用 课件-高中政治统编版必修二经济与社会
- 《临床免疫学检测技术》课件
- 2024年河南郑州航空港投资集团招聘真题
- 2024年宝应县公安局招聘警务辅助人员真题
- 《芙蓉楼送辛渐》教学课件
评论
0/150
提交评论