




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第8章章 备份与恢复备份与恢复8.1 备份和恢复概述备份和恢复概述8.2 备份操作和备份命令备份操作和备份命令8.3 恢复操作和恢复命令恢复操作和恢复命令8.4 附加数据库附加数据库8.1 备份和恢复概述备份和恢复概述数据库的备份和恢复是数据库 管理员维护数据库安全性和完 整性必不可少的操作,合理地 进行备份和恢复可以将可预见 的和不可预见的问题对数据库 造成的伤害降到最低。当运行 SQL Server的服务器出现故障, 或者数据库遭到某种程度的破 坏时,可以利用以前对数据库 所做的备份重建或恢复数据库。 SQL Server 2008数据库恢复模式分为三种:完整恢复模式、大容量日志恢复模式
2、、简单恢复模式。完整恢复模式。为默认恢复模式。它会完整记录下操作数据库的每一个步骤。使用完整恢复模式可以将整个数据库恢复到一个特定的时间点,这个时间点可以是最近一次可用的备份、一个特定的日期和时间或标记的事务。 大容量日志恢复模式。它是对完整恢复模式的补充。简单地说就是要对大容量操作进行最小日志记录,节省日志文件的空间(如导入数据、批量更新、SELECT INTO等操作时)。比如一次在数据库中插入数十万条记录时,在完整恢复模式下每一个插入记录的动作都会记录在日志中,使日志文件变得非常大,在大容量日志恢复模式下,只记录必要的操作,不记录所有日志,这样一来,可以大大提高数据库的性能,但是由于日志不
3、完整,一旦出现问题,数据将可能无法恢复。因此,一般只有在需要进行大量数据操作时才将恢复模式改为大容量日志恢复模式,数据处理完毕之后,马上将恢复模式改回完整恢复模式。 由于大容量日志恢复模式不支持时点恢复,因此必须在增大日志备份与增加工作丢失风险之间进行权衡。 简单恢复模式。在该模式下,数据库会自动把不活动的日志删除,因此简化了备份的还原,但因为没有事务日志备份,所以不能恢复到失败的时间点。通常,此模式只用于对数据库数据安全要求不太高的数据库。并且在该模式下,数据库只能做完整和差异备份。 了解了以上数据库还原模式后,一般就应该知道将自己的数据库设置为何种模式了。SQL Server 2008提供
4、了四种备份方式:完整备份、差异备份、事务日志备份、文件和文件组备份。 完整备份:备份整个数据库的所有内容,包括事务日志。该备份类型需要比较大的存储空间来存储备份文件,备份时间也比较长,在还原数据时,也只要还原一个备份文件。 完整备份在所有模式下都适用。 差异备份:差异备份是完整备份的补充,只备份上次完整备份后更改的数据。相对于完整备份分来说,差异备份的数据量比完整数据备份小,备份的速度也比完整备份要快。因此,差异备份通常作为常用的备份方式。在还原数据时,要先还原前一次做的完整备份,然后还原最后一次所做的差异备份,这样才能让数据库里的数据恢复到与最后一次差异备份时的内容相同。 差异备份也适用于所
5、有恢复模式。8.1 备份和恢复概述备份和恢复概述 事务日志备份:事务日志备份只备份事务日志里的内容。事务日志记录了上一次完整备份或事务日志备份后数据库的所有变动过程。事务日志记录的是某一段时间内的数据库变动情况,因此在进行事务日志备份之前,必须要进行完整备份。与差异备份类似,事务日志备份生成的文件较小、占用时间较短,但是在还原数据时,除了先要还原完整备份之外,还要依次还原每个事务日志备份,而不是只还原最后一个事务日志备份(这是与差异备份的区别)。 事务日志备份仅适用于完整恢复模式和大容量日志恢复模式,不适用于简单模式。 文件和文件组备份。如果在创建数据库时,为数据库创建了多个数据库文件或文件组
6、,可以使用该备份方式。使用文件和文件组备份方式可以只备份数据库中的某些文件,该备份方式在数据库文件非常庞大时十分有效,由于每次只备份一个或几个文件或文件组,可以分多次来备份数据库,避免大型数据库备份的时间过长。另外,由于文件和文件组备份只备份其中一个或多个数据文件,当数据库里的某个或某些文件损坏时,可以只还原损坏的文件或文件组备份。 8.1 备份和恢复概述备份和恢复概述 了解了以上数据库备份方式后,便可以针对自己的数据库利用以上方式来备份数据库了。合理备份数据库需要考虑几方面,首先是数据安全,其次是备份文件大小,最后是做备份和还原能承受的时间范围。 例如,如果数据库里每天变动的数据量很小,可以
7、每周(周日)做一次完整备份,以后的每天(下班前)做一次事务日志备份,那么一旦数据库发生问题,可以将数据恢复到前一天(下班时)的状态。 当然,也可以在周日时做一次完整备份,周一到周六每天下班前做一次差异备份,这样一旦数据库发生问题,同样可以将数据恢复到前一天下班时的状态。只是一周的后几天做差异备份时,备份的时间和备份的文件都会跟着增加。但这也有一个好处,在数据损坏时,只要恢复完整备份的数据和前一天差异备份的数据即可,不需要去恢复每一天的事务日志备份,恢复的时间会比较短。 8.1 备份和恢复概述备份和恢复概述 如果数据库里的数据变动得比较频繁,损失一个小时的数据都是十分严重的损失时,用上面的办法备
8、份数据就不可行了,此时可以交替使用三种备份方式来备份数据库。 例如,每天下班时做一次完整备份,在两次完整备份之间每隔八小时做一次差异备份,在两次差异备份之间每隔一小时做一次事务日志备份。如此一来,一旦数据损坏可以将数据恢复到最近一个小时以内的状态,同时又能减少数据库备份数据的时间和备份数据文件的大小。 在前面还提到过当数据库文件过大不易备份时,可以分别备份数据库文件或文件组,将一个数据库分多次备份。在现实操作中,还有一种情况可以使用到数据库文件的备份。例如在一个数据库中,某些表里的数据变动得很少,而某些表里的数据却经常改变,那么可以考虑将这些数据表分别存储在不同的文件或文件组里,然后通过不同的
9、备份频率来备份这些文件和文件组。但使用文件和文件组来进行备份,还原数据时也要分多次才能将整个数据库还原完毕,所以除非数据库文件大到备份困难,否则不要使用该备份方式。 8.1 备份和恢复概述备份和恢复概述 8.2.1 备份设备 数据库备份设备是指用来存储备份数据的存储介质, 常用的备份设备类型包括磁盘和磁带等。 磁盘:以硬盘或其它磁盘类设备为存储介质。磁盘备 份设备就可以存储在本地机器上,也可以存储在网络 的远程磁盘上。如果数据备份存储在本地机器上,在 由于存储介质故障或服务器崩溃而造成数据丢失的情 况下,备份就没有意义了。因此,要及时将备份文件 复制到远程磁盘上。如果采用远程磁盘作为备份设备,
10、 要采用统一命名方式(UNC)来表示备份文件,即 “远程服务器名共享文件名路径名文件名”。 磁带:使用磁带作为存储介质,必须将磁带物理地安 装在运行SQL Server的计算机上,磁带备份不支持网 络远程备份。8.2 备份操作和备份命令备份操作和备份命令 对数据库进行备份时,备份设备可 以采用物理设备名称和逻辑设备名 称两种方式。 u 物理设备名称:即操作系统文件名, 直接采用备份文件在磁盘上以文件 方式存储的完整路径名,例如 “D:backupdata_full.bak”。 u 逻辑设备名称:为物理备份设备指 定的可选的逻辑别名。使用逻辑设 备名称可以简化备份路径。8.2.1 备份设备备份设
11、备创建备份设备有两种方法:使用图形向导方式或使用系统存储过程sp_addumpdevice。(1)使用系统存储过程创建命名备份设备。执行系统存储过程sp_addumpdevice可以在磁盘或磁带上创建命名备份设备。【例例8.1】 在本地硬盘上创建一个备份设备。USE master GOEXEC sp_addumpdevice disk, mybackupfile, E:datamybackupfile.bak8.2.1 备份设备备份设备8.2.1 备份设备备份设备(2)使用对象资源管理器创建永久备份设备。 1)打开【对象资源管理器】, 在【服务器对象】节点下找到 【备份设备】节点,单击鼠标 右
12、键,弹出右键菜单。 2)选择【新建备份设备】菜 单,弹出新建备份设备窗口。 3)输入备份设备逻辑名称, 并指定备份设备的物理路径, 单击【确定】即可。8.2.2 备份命令备份命令1备份整个数据库备份整个数据库语法格式:BACKUP DATABASE database_name /*被备份的数据库名*/TO ,.n /*指出备份目标设备*/ WITH BLOCKSIZE = blocksize | blocksize_variable /*块大小*/ , CHECKSUM | NO_CHECKSUM , STOP_ON_ERROR | CONTINUE_AFTER_ERROR , DESCRIP
13、TION = text | text_variable , DIFFERENTIAL , EXPIREDATE = date | date_var /*备份集到期和允许被重写的日期*/ | RETAINDAYS = days | days_var , PASSWORD = password | password_variable , FORMAT | NOFORMAT , INIT | NOINIT /*指定是覆盖还是追加*/ , NOSKIP | SKIP , MEDIADESCRIPTION = text | text_variable , MEDIANAME = media_name |
14、 media_name_variable , MEDIAPASSWORD = mediapassword | mediapassword_variable , NAME = backup_set_name | backup_set_name_var , STATS = percentage , COPY_ONLY 8.2.2 备份命令备份命令【例例8.2】 使用逻辑名test1在E盘中创建一个命名的备份设备,并将数据库PXSCJ完全备份到该设备。USE masterGOEXEC sp_addumpdevice disk , test1, E:datatest1.bakBACKUP DATABA
15、SE PXSCJ TO test18.2.2 备份命令备份命令本例的执行结果如图所示。8.2.2 备份命令备份命令【例例8.3】 将数据库PXSCJ备份到多个备份设备。EXEC sp_addumpdevice disk,test2,E:datatest2.bakEXEC sp_addumpdevice disk,test3,E:datatest3.bakBACKUP DATABASE PXSCJ TO test2, test3 WITH NAME = pxscjbk8.2.2 备份命令备份命令2差异备份数据库差异备份数据库语法格式:BACKUP DATABASE database_name |
16、 database_name_var READ_WRITE_FILEGROUPS , FILEGROUP = logical_filegroup_name | logical_filegroup_name_var ,.n TO , n MIRROR TO ,.n .next-mirror WITH , DIFFERENTIAL /*其余选项与数据库的完全备份相同*/【例例8.4】 将PXSCJ在test2, test3上进行差异备份。BACKUP DATABASE PXSCJ TO test2, test3 WITH DIFFERENTIAL8.2.2 备份命令备份命令3事务日志备份事务日志备
17、份将事务日志中从前一次成功备份结束位置开始,到当前事务日志结尾处的内容进行备份。进行事务日志备份使用BACKUP LOG语句。语法格式:BACKUP LOG database_name | database_name_var /*指定被备份的数据库名*/ TO ,.n /*指定备份目标*/ MIRROR TO ,.n .next-mirror WITH NORECOVERY | STANDBY = undo_file_name | NO_TRUNCATE |/*其余选项与数据库的完全备份相同*/ 8.2.2 备份命令备份命令【例例8.5】 创建一个命名的备份设备PXSCJLOGBK,并备份PX
18、SCJ数据库的事务日志。EXEC sp_addumpdevice disk , PXSCJLOGBK , E:datatestlog.bakBACKUP LOG PXSCJ TO PXSCJLOGBK或者也可以将PXSCJ的事务日志继续备份到test2, test3上:BACKUP LOG PXSCJ TO test2, test38.2.3 使用对象资源管理器备份使用对象资源管理器备份在SQL Server Management Studio中进行备份的步骤如下。第1步:启动SQL Server Management Studio,在对象资源管理器中选择“管理”,右击鼠标,如图所示,在弹出的
19、快捷菜单上选择“备份”菜单项。第2步:在打开的“备份数据库”窗口中选择要备份的数据库名。 选择备份类型 选择数据库 选择添加 备份目标 文件与文 件组备份 8.2.3 使用对象资源管理器备份使用对象资源管理器备份第3步:选择了数据库之后,窗口最下方的目标栏中会列出与PXSCJ数据库相关的备份设备。第4步:在“备份数据库”窗口中,将不需要的备份目标选择后单击“删除”按钮删除,最后备份目标选择为“mybackupfile”,单击“确定”按钮,执行备份操作。8.2.3 使用对象资源管理器备份使用对象资源管理器备份8.3 恢复操作和恢复命令恢复操作和恢复命令8.3.1 检查点检查点SQL Server
20、系统在日志中存储有关信息,以便在需要时可以恢复(前滚)或撤销(回滚)构成事务的数据修改。SQL Server系统对修改过的数据缓冲区的内容并不是立即写回磁盘,而是控制写入磁盘的时间,它将在缓冲区内修改过的数据页存入高速缓存一段时间后再写入磁盘,从而实现优化磁盘写入。SQL Server系统定期将所有脏日志和数据页刷新到磁盘,这就称为检查点。SQL Server恢复机制能够通过检查点在检查事务日志时保证数据库的一致性,在对事务日志进行检查时,系统将从最后一个检查点开始检查事务日志,以发现数据库中所有数据的改变。8.3.2 数据库的恢复命令数据库的恢复命令1恢复整个数据库恢复整个数据库【例例8.6
21、】 使用RESTORE语句从一个已存在的命名备份介质PXSCJBK1中恢复整个数据库PXSCJ。首先创建备份设备PXSCJBK1:EXEC sp_addumpdevice disk, PXSCJBK1,E:dataPXSCJBK1.bak使用BACKUP命令对PXSCJ数据进行完全备份:BACKUP DATABASE PXSCJTO PXSCJBK18.3.2 数据库的恢复命令数据库的恢复命令接着,在恢复数据库之前,用户可以对PXSCJ数据库做一些修改,例如删除其中一个表,以便确认是否恢复了数据库。恢复数据库的命令如下:RESTORE DATABASE PXSCJFROM PXSCJBK1WI
22、TH FILE=1, REPLACE执行结果如图所示。2恢复差异数据库备份恢复差异数据库备份【例例8.7】恢复PXSCJ的差异备份。 BACKUP LOG PXSCJ TO test2, test3WITH NORECOVERY -尾日志备份,进入还原状态GORESTORE DATABASE PXSCJFROM test2, test3WITH FILE=1, NORECOVERY -还原完整备份GORESTORE DATABASE PXSCJFROM test2, test3WITH FILE=2, REPLACE -还原差异备份GO8.3.2 数据库的恢复命令数据库的恢复命令8.3.2 数
23、据库的恢复命令数据库的恢复命令3恢复事务日志恢复事务日志【例例8.8】恢复例8.5中PXSCJ在test2, test3上的日志备份。BACKUP LOG PXSCJ TO test2, test3WITH NORECOVERY -尾日志备份,进入还原状态GORESTORE DATABASE PXSCJFROM test2, test3WITH FILE=1, NORECOVERY -还原完整备份GORESTORE LOG PXSCJFROM test2, test3WITH FILE=2, NORECOVERY -还原日志备份GORESTORE LOG PXSCJFROM test2, test3WITH FILE=3, REPLACE -还原日志备份GO8.3.3 图形向导恢复数据库图形向导恢复数据库使用图形向导方式恢复数据库的主要过程如下。第1步:启动SQL Server Management Studio,在对象资源管理器中展开“数据库”,选择需要恢复的数据库。第2步:如图所示,选择“PXSCJ”数据库,右击鼠标,在弹出的快捷菜单中选择“任务”菜单项,在弹出的“任务”子菜单中选择“还原”菜单项,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 员工保密及竞业禁止协议书模版
- 投资增资协议
- 基本应急知识培训课件
- 初三化学金属反应计算试卷及答案
- 中巴大学生体质健康状况的比较剖析与影响因素探究
- γ-γ'型铂基高温合金层错能的第一性原理探究:微观机制与性能关联
- CO₂腐蚀产物膜:离子选择性与电化学行为的深度剖析
- 八年级数学方程组复习单元试卷及答案
- 基坑支护防水施工课件
- 培训课件的结尾内容
- 2025年福建省中小学教师招聘考试试卷-教育综合基础知识试题及答案
- 会展物品租赁管理办法
- 2025年安徽省初中学业水平考试中考物理真题试卷(中考真题+答案)
- 2025年放射医学技术师中级技术职称考试试题(附答案)
- 2025秋部编版(2024)八年级上册语文上课课件 第三单元 阅读综合实践
- TZZB3051-2023电气绝缘用玻璃纤维增强不饱和聚酯块状阻燃模塑料UP-BMC
- 企业职务津贴管理制度
- 足外翻康复训练讲课件
- “AI+知识图谱”赋能高职院校金课建设的研究与实践
- 高中英语必背3500单词表完整版
- 2025年贵州安大航空锻造有限责任公司-企业报告(业主版)
评论
0/150
提交评论