收藏 分享(赏)

第09章-数据库备份与恢复.ppt

上传人:weiwoduzun 文档编号:4301631 上传时间:2018-12-21 格式:PPT 页数:56 大小:518KB
下载 相关 举报
第09章-数据库备份与恢复.ppt_第1页
第1页 / 共56页
第09章-数据库备份与恢复.ppt_第2页
第2页 / 共56页
第09章-数据库备份与恢复.ppt_第3页
第3页 / 共56页
第09章-数据库备份与恢复.ppt_第4页
第4页 / 共56页
第09章-数据库备份与恢复.ppt_第5页
第5页 / 共56页
点击查看更多>>
资源描述

1、1,数据库备份与恢复,数据库备份和恢复的基本概念 使用企业管理器管理备份和恢复 使用T-SQL语句管理备份和恢复 恢复系统数据库,2,基本概念,备份和恢复组件是SQL Server 的重要组成部分。备份就是指对SQL Server 数据库或事务日志进行拷贝。数据库备份记录了在进行备份这一操作时数据库中所有数据的状态。如果数据库因意外而损坏,这些备份文件将在数据库恢复时被用来恢复数据库。由于SQL Server 支持在线备份,所以通常情况下,可一边进行备份一边进行其它操作。但是在备份过程中不允许执行以下操作: 创建或删除数据库文件 创建索引 执行非日志操作 自动或手工缩小数据库或数据库文件大小,

2、3,备份设备,在进行备份以前首先必须指定或创建备份设备,备份设备是用来存储数据库、事务日志或文件和文件组备份的存储介质,备份设备可以是硬盘、磁带或管道。当使用磁盘时,SQL Server允许将本地主机硬盘和远程主机上的硬盘作为备份设备,备份设备在硬盘中是以文件的方式存储的。,4,物理设备和逻辑设备,SQL Server使用物理设备或逻辑设备名称标识备份设备。 物理备份设备是操作系统用来标识备份设备的名称。如c:backupsaccountingfull.bak。 逻辑备份设备是用来标识物理备份设备的别名或公用名称。逻辑设备名称永久地存储在SQL Server内地系统表中。优点是:引用它比引用物

3、理设备名称简单。例:上例的逻辑设备名称可以是:accounting_backup。 执行数据库的备份和恢复中,既可以使用物理设备名,又可以使用逻辑设备名。,5,例:backup database accounting to accountin_backup 或 Backup database accounting To disk = c:backupsacountingfull.bak,6,管理备份设备,可以采用企业管理器,也可以采用T-SQL语句来实现管理。,7,用企业管理器创建备份设备,步骤: 1、打开企业管理器,展开指定的服务器。 2、展开“管理”节点,并在下一级节点中选择节点“备份”。

4、 3、在备份节点上单击鼠标右键,然后从弹出菜单中选择命令“新建备份设备”,并打开“备份设备属性新设备”对话框。 4、在“备份设备属性”对话框中执行如下操作: 在“名称”处输入备份设备的逻辑文件名 在“文件名”处输入备份文件的文件名和存储路径。 5、单击“确定”,即可。,8,图1 使用企业管理器创建备份设备,9,图2 输入备份设备属性对话框,10,使用T-SQL创建备份设备,在SQL Server 中,可以使用sp_addumpdevice语句创建备份设备,其语法形式如下: sp_addumpdevice 设备类型,设备逻辑名,设备的物理名称 例:exec sp_addumpdevice dis

5、k, backup_company, c:mssql7backupbk_company.bak,11,删除备份设备,删除备份设备与创建的过程类似,只须在企业管理器中选中要删除的备份设备,在弹出的菜单中选择删除选项即可删除该备份设备。或者使用sp_dropdevice语句来删除备份设备。其语法如下: sp_dropdevice 设备的逻辑名称, delfile 其中:delfile用来指出是否要删除物理备份设备文件。如指定delfile,则会删除物理备份设备磁盘文件。 例子4-6:删除上面创建的备份设备 sp_dropdevice backup_company 或 sp_dropdevice b

6、ackup_company ,delfile,12,SQL Server 2000四种备份方式,(一)数据库备份 (二)差异备份或称增量备份 (三)事务日志备份 (四)数据库文件和文件组备份,13,数据库备份,数据库备份一般实用于数据更新缓慢的数据库中,备份将创建当备份完成时数据库内存在的数据的副本。 与事务日志备份和差异数据库备份相比,数据库备份中的每个备份使用的存储空间更多。因此,数据库备份完成备份操作需要更多的时间,所有,数据库备份的创建频率通常比差异数据库或事务日志备份低。 还原数据库时,备份将重新创建当数据库和备份完成时数据库中存在的所有相关文件。但是,自从创建备份后所作的所有数据库

7、修改都将丢失。若要还原创建数据库备份后发生的事务,必须使用事务日志备份或差异备份。,14,备份数据库和事务日志,事务日志备份是指对数据库发生的事务进行备份。包括从上次进行事务日志备份、差异备份和数据库完全备份之后所有已经完成的事务。 还原事务日志备份时,SQL Server将按照事务日志中的记录修改数据库。当修改完成时,SQL Server已经重新创建了与开始执行备份操作的那一刻完全相同的数据库状态。 一般事务日志比数据库备份使用的资源少。因此可以经常创建事务日志备份。 只有具有自上次数据库备份或差异数据库备份后的连续事务日志备份时,使用数据库备份和事务日志备份还原数据库才有效。若日志备份丢失

8、或损坏,必须创建数据库备份或差异数据库备份并再次开始备份事务日志。,15,差异备份,差异备份是指将最近一次数据库备份以来发生的数据变化备份起来。因此差异备份实际上是一种增量数据库备份,与完整数据库备份相比:差异备份由于备份的数据量较小,所以备份和恢复所用的时间较短。通过增加差异备份的备份次数,可以降低丢失数据的风险,将数据库恢复至进行最后一次差异备份的时刻,但是它无法像事务日志备份那样提供到失败点的无数据损失备份。,16,文件和文件组备份,文件或文件组备份是一种相对较完善的备份和还原过程,通常用在具有较高可用性要求的超大型数据库中。这种备份策略可以只还原已损坏的文件或文件组,而不用还原数据库的

9、其余部分,从而加快了恢复速度。,17,数据库恢复,简单恢复 完全恢复 大容量日志记录恢复,18,简单恢复,所谓简单恢复就是指在进行数据库恢复时,仅使用了数据库备份或差异备份,而不涉及事务日志备份。简单恢复模式可使数据库恢复到上一次备份的状态,但由于不使用事务日志备份来进行恢复,所以无法将数据库恢复到失败点状态。当选择简单恢复模式,时常使用的备份策略是首先进行数据库备份,然后进行差异备份。,19,完全恢复,完全数据库恢复模式是指通过使用数据库备份和事务日志备份将数据库恢复到发生失败的时刻,因此几乎不造成任何数据丢失。这成为对付因存储介质损坏而数据丢失的最佳方法。为了保证数据库的这种恢复能力,所有

10、的批数据操作,比如SELECT INGO、创建索引都被写入日志文件。选择完全恢复模式时常使用的备份策略是: 首先进行完全数据库备份 然后进行差异数据库备份 最后进行事务日志的备份 如果准备让数据库恢复到失败时刻,必须对数据库失败前正处于运行状态的事务进行备份。,20,大容量日志记录恢复,大容量日志恢复在性能上要优于简单恢复和完全恢复模式。它能尽最大努力减少批操作所需要的存储空间。这些批操作主要是SELECT INTO 、批装载操作(如bcp 操作或批插入操作)、创建索引、针对大文本或图像的操作。选择批日志恢复模式所采用的备份策略与完全恢复所采用的恢复策略基本相同。 在实际应用中备份策略和恢复策

11、略的选择不是相互孤立的而是有着紧密的联系。我们并不仅仅是因为数据库备份为数据库恢复提供了”原材料”这一事实,以便在采用何种数据库恢复模式的决策中考虑该怎样进行数据库备份。更多是因为在选择该使用哪种备份类型时我们必须考虑到当使用该备份进行数据库恢复时,它能把遭到损坏的数据库带到怎样的状态(是数据库失败的时刻,还是最近一次备份的时刻)。但有一点我们必须强调,即备份类型的选择和恢复模式的确定都应服从于这一目标:尽最大可能,以最快速度减少或消灭数据丢失。,21,. 使用企业管理器进行备份,()启动企业管理器,登录到指定的数据库服务器,打开数据库文件夹,用右键单击所要进行备份的数据库图标,在弹出的快捷菜

12、单中选择所有任务,再选择备份数据库 。 ()出现SQL Server备份对话框,对话框中有两个页框,即常规和选项页框。 ()在常规页框中,选择备份数据库的名称、操作的名称、描述信息、备份的类型、备份的介质、备份的执行时间。 ()通过单击添加按钮选择备份设备 。 ()选择调度复选框,来改变备份的时间安排。 ( 6 )在选项页框中进行附加设置 。,22,. 使用备份向导 (图1 -图7),图1 欢迎使用向导对话框,23,图2 选择数据库对话框,24,图3 输入备份名称和描述信息对话框,25,图4 选择备份数据库类型对话框,26,图5 设置备份介质类型和属性对话框,27,图6 备份验证和调度对话框,

13、28,图7 确认执行备份操作对话框,29,使用企业管理器恢复数据库,使用企业管理器恢复数据库 (1)打开企业管理器,单击要登录的数据库服务器,然后从主菜单中选择工具,在菜单中选择还原数据库命令。 (2)在还原为数据库旁的下拉列表中选择要恢复的数据库,在还原组中通过单击单选按钮来选择相应的数据库备份类型。 (3)选中选项页框,进行其它选项的设置,30,使用Transact-SQL备份数据库,包括如下几个方面: 完全数据库备份 差异数据库备份 事务处理日志备份 文件和文件组备份,31,执行完全数据库备份,可以使用新建一个备份文件,也可以使用一个已经存在的备份设备。 Backup database

14、company to disk=c:sqlbackupcompany.bak,32,差异数据库备份,例如:backup database company to company_backup with differential 注意:差异备份数据库备份必须在存在完全数据库备份以后执行。,33,事务处理日志备份,语法规则如下: BACKUP LOG database_name | database_name_var TO .n 例:backup log company to company_log _backup 例:Backup log company to company_log_backup

15、 with no_truncate 其中:with no_truncate参数指定在完成事务日志备份以后,并不清空原有日志的数据。,34,执行文件和文件组备份,语法为: 语法格式如下 BACKUP DATABASE database_name | database_name_var .n TO .n 例:backup database company filegroup=primary to company_filegroupbackup_primary,35,使用T-SQL语句恢复数据库,利用数据库备份执行恢复操作的语法格式: RESTORE DATABASE 数据库名 FROM 备份设备名

16、 .n WITH ,nonrecovery|recovery ,replace 其中:nonrecovery|recovery参数用于指定恢复操作是否回滚所有未曾提交的事务,默认选项为recovery。在使用一个数据库备份和多个事务日志进行恢复时,在恢复最后一个事务日志文件以前都应该使用参数nonrecovery。参数replace指定恢复操作是否替换原来的数据库或数据文件和文件组。,36,数据库备份的恢复,RESTORE DATABASE 数据库名 FROM 备份设备名 .n WITH ,nonrecovery|recovery ,replace 其中: nonrecovery|recove

17、ry参数用于指定恢复操作是否回滚所有未曾提交的事务,默认未recovery。 参数replace指定恢复操作是否替换为原来的数据库或数据文件和文件组。,37,事务日志备份的恢复,利用事务日志备份执行恢复数据库的语法: RESTORE LOG 数据库名 FROM 备份设备名 .n WITH ,nonrecovery|recovery ,STOPAT=date_time 其中:参数STOPAT=date_time用来指定数据库恢复到一个特定的时间点。,38,文件和文件组备份的恢复,利用文件和文件组备份恢复数据库的语法: RESTORE DATABASE 数据库名 FILE = 逻辑文件名|FILE

18、GROUP=逻辑文件组名 FROM 备份设备名 .n WITH ,nonrecovery|recovery ,replace ,39,例:从磁盘上的备份文件d:sqlbackupcompany.bak中恢复数据库company的一个完整数据库备份Restore database company from disk=d:sqlbackupcompany.bak,40,例: Restore database company from company_backup with nonrecoveryRestore log company from company_laobackup1with nonr

19、ecoveryRestore log company from company_logbackup with recovery, Stopat = oct 5, 1999 6:0005 PM 是一个数据库备份和两个事务日志的数据库的恢复操作,使用stopat参数将数据库恢复到一个指定的时间点。,41,恢复概述,数据库备份后,一旦系统发生崩溃或者执行了错误的数据库操作,就可以从备份文件中恢复数据库。数据库恢复是指将数据库备份加载到系统中的过程。系统在恢复数据库的过程中,自动执行安全性检查、重建数据库结构以及完整数据库内容。,42,例:从备份设备中恢复数据库:从backup_company备份设备

20、中恢复数据库company。use master restore database company from backup_company,43,例:下面是一个数据库备份和两个事务日志进行了数据库的恢复操作,并使用stopat参数将数据库恢复到一个指定的时间点。 Restore database company From company_backup with nonrecovery Restore log company From company_logbackup1 with nonrecovery Resotre log company From company_logbackup wi

21、th recovery, Stopat=oct 5, 1999 6:00:05 PM,44,例:下面的例如将还原一个包含两个文件、一个文件组和一个事务日志的数据库company。 Resotre database company File = company_data_1, File = company_data_2, Filegroup=employees_fg From company_backup With norecovery Restore log mynwind From company_logbackup1,45,恢复master数据库,1. 关闭SQL Server,运行系统安

22、装目录下的bin子目录下的rebuilem.exe文件,这是个命令行程序,运行后可以重新创建系统数据库。 2. 系统数据库重新建立后,启动SQL Server。 3. SQL Server启动后,系统数据库是空的,没有任何系统信息。因此,需要从备份数据库中恢复。一般是先恢复master数据库,再恢复msdb数据库,最后恢复model数据库。,46,恢复master的两种常用方法,1、从一个好的备份中重新建立并恢复master数据库 2、在没有备份的情况下,重建master数据库,并手工调试master,以尽可能恢复。,47,从好的备份中恢复,若有效备份存在时,恢复master数据库的步骤: 1、重建master数据库 2、在单用户模式下启动sql server 3、重新定义备份设备,从备份中恢复master数据库 4、用通常方式重新启动sql server 5、恢复msdb数据库。,48,重建master数据库,49,单用户模式下启动sql server,50,重定义备份设备,51,无备份情况下恢复master,52,重建master数据库,53,为每个数据库设备运行disk reinit命令,54,运行disk refit命令重新组织数据库,55,重新设置sql server,恢复到崩溃前的设置,56,生成新的用户代表崩溃前的用户,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 网络科技 > 数据库

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报