第8章 数据保护(备份与还原).ppt_第1页
第8章 数据保护(备份与还原).ppt_第2页
第8章 数据保护(备份与还原).ppt_第3页
第8章 数据保护(备份与还原).ppt_第4页
第8章 数据保护(备份与还原).ppt_第5页
已阅读5页,还剩69页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1,第8章 数据保护之数据库的备份与还原,备份数据库,二、,恢复数据库,三、,备份和还原构架,一、,数据库的维护,四、,2,一、备份和还原构架,为什么要备份和还原? 因为故障是不可避免的,而故障会带来数据的丢失和损坏。为了保证数据库的安全性,防止数据库中数据的意外丢失,应经常对数据库中的数据进行备份,以便在数据库出故障的时候进行及时有效的恢复。 计算机硬件故障 系统软件和应用软件的错误 操作员的失误 病毒或恶意的破坏 .,3,恢复操作的基本原理:冗余 利用存储在系统其它地方的冗余数据来重建数据库中已被破坏或不正确的那部分数据 恢复机制涉及的关键问题 1. 如何建立冗余数据 数据备份 登录日志文

2、件备份 2. 如何利用这些冗余数据实施数据库恢复,4,什么是日志文件?,日志文件(log)是用来记录事务对数据库的更新操作的文件。 必须先写日志文件,后写数据库 写日志文件操作:把表示这个修改的日志记录 写到日志文件。 写数据库操作:把对数据的修改写到数据库中,故障发生点 静态转储 运行事务 正常运行 Ta Tb Tf 登记日志文件 重装后备副本 利用日志文件恢复事务 继续运行 介质故障恢复 登记日志文件 ,5,为什么要先写日志文件 写数据库和写日志文件是两个不同的操作,在这两个操作之间可能发生故障。 如果先写了数据库修改,而在日志文件中没有登记下这个修改,则以后就无法恢复这个修改了;如果先写

3、日志,但没有修改数据库,按日志文件恢复时只不过是多执行一次不必要的UNDO操作,并不会影响数据库的正确性,6,DBA应制定备份和还原计划:,应定期进行数据转储,制作后备副本。 但转储又是十分耗费时间和资源的,不能频繁进行。 DBA应该根据数据库使用情况确定适当的转储周期和转储方法。 例: 每天晚上进行动态增量转储 每周进行一次动态海量转储 每月进行一次静态海量转储,7,(一)备份概述,备份内容,系统数据库 用户数据库 事务日志,备份方式 (备份类型 ),完全数据库备份 差异数据库备份 事务日志备份 数据库文件和文件组备份,二、 备份数据库,备份设备类型,磁盘设备 磁带设备 其它设备,8,1.

4、完全数据库备份 备份数据库的所有表的数据及模式,以及对应的文件结构,包括对事务日志中的事务进行备份。 2. 差异数据库备份 只记录自上次完全数据库备份后发生更改的数据。差异备份的数据量比完全备份小而且备份速度快,因此可以更经常地备份,经常备份将减少丢失数据的危险。,9,3. 事务日志备份 事务日志是自上次备份事务日志后对数据库执行的所有事务的一系列记录。事务日志备份只考虑在日志中所记录的变化,是基于逻辑操作的备份。可以使用事务日志备份将数据库恢复到特定的即时点或恢复到故障点。 4. 数据库文件和文件组备份 只备份特定的文件或文件组,常用于超大型数据库的备份。,10,SQL Server恢复模型

5、的备份类型,1。完全数据库备份和恢复 2。完全+差异备份和恢复 3。完全+日志备份和恢复(这是DBA常采取的方法),如何选择备份和恢复模型?,11,(二) 创建和删除备份设备,磁盘备份设备:指硬盘或其它磁盘存储介质上的文件,与常规操作系统文件一样。可以在本地服务器的磁盘上或远程共享磁盘上定义磁盘备份设备。 磁带备份设备:磁带设备只能物理连接到运行SQL Server实例的计算机上。SQL Server不支持备份到远程磁带设备上。,在进行备份以前一般要指定或创建备份设备,备份设备是用来存储数据库、事务日志或文件和文件组备份的存储介质。包括磁盘和磁带设备。,12,物理设备名称:是操作系统用来标识备

6、份设备的名称,如“D:MyBackupsStudent.bak”。 逻辑设备名称:是用来标识物理备份设备的别名或公用名称,用以简化物理设备名称。例如,逻辑设备名称可以是“STDBackup”,而物理设备名称则是“D:MyBackupsStudent.bak”。,SQL Server使用物理设备名称或逻辑设备名称来标识备份设备。,13,选择服务器展开“管理”文件夹 右击“备份”选择“新建备份设备”命令,1. 使用企业管理器创建设备,14,打开“备份设备属性”对话框:,逻辑备份设备名称,物理备份设备名称,15,创建备份设备后,在企业管理器的右侧窗格中会显示该备份设备的名称、物理位置和设备类型,用鼠

7、标右击要删除的备份设备的名称,从弹出的快捷菜单中选择“删除”命令,则可以删除相应的备份设备。,2. 使用企业管理器删除备份设备,16,格式: sp_addumpdevice devtype = 设备类型, logicalname = 逻辑备份设备名, physicalname = 物理备份设备名 参数说明: devtype = 设备类型:指定备份设备的类型,可以是: disk、pipe、tape。 logicalname = 逻辑备份设备名 : 指定逻辑备份设备名称。,3使用系统存储过程创建备份设备(简略了解),17,physicalname = 物理备份设备名:指定物理备份设备名。物理名称必

8、须遵照操作系统文件名称的规则或者网络设备的通用命名规则,并且必须包括完整的路径。对于远程硬盘文件,可以使用格式“主机名共享路径名路径名文件名”表示;对于磁带设备,用“.TAPEn”表示,其中n为磁带驱动器序列号。,18,【例17-1】创建一个磁盘备份设备,逻辑名称为“copy1”,物理名称为“d:Mybackupcompany.bak” EXEC sp_addumpdevice devtype = disk, logicalname = copy1, physicalname =d:Mybackupcompany.bak 也可以简化成: EXEC sp_addumpdevice disk,co

9、py1,d:Mybackupcompany.bak 这里的EXEC表示执行存储过程。,19,【例17-2】创建备份设备copy2,使用teacher服务器共享文件夹backup下的文件company1.bak。 EXEC sp_addumpdevice disk,copy2,teacherbackupcompany1.bak 【例17-3】用物理设备.TAPE0创建一个磁带备份设备tapedevice。 EXEC sp_addumpdevice tape,tapedevice,.TAPE0,略,20,格式: sp_dropdevice logicalname = 逻辑备份设备名 , delfi

10、le = 删除文件 参数说明: delfile: 指是否同时删除物理备份文件。如果该参数指定为DELFILE,那么就会删除设备物理文件名指定的磁盘文件。,4. 使用系统存储过程sp_dropdevice删除备份设备 (略),21,【例17-4】删除例5-11创建的备份设备tapedevice,不删除相应的物理备份文件。 EXEC sp_dropdevice copy1 【例17-5】删除例5-9创建的备份设备copy1,并删除相应的物理文件。 EXEC sp_dropdevice copy1, DELFILE,22,(三) 执行备份,1. 在企业管理器中使用备份向导执行备份(了解) (1) 单

11、击服务器 打开“工具”菜单选择“向导” 或 单击 工具栏图标,打开“选择向导”对话框:,23,(2) 选择数据库:,24,(3) 输入备份名称和描述信息:,25,(4) 选择备份类型:,26,(5) 选择备份设备和属性:,27,(6) 备份验证和调度:,28,(7) 完成备份:,29,2. 在企业管理器中使用备份数据库对话框执行备份 (1)打开备份数据库话框 方法一:右击数据库选择“所有任务” 选择“备份数据库”令 方法二:展开“数据库”文件夹展开“管理”文件夹右击“备份” 选择“备份数据库” 方法三:打开“工具”菜单选择“备份数据库”,30,31,32,(1)完全数据库备份 格式: BACK

12、UP DATABASE 数据库名称 TO ,.n WITH NAME = 备份集名称 , DESCRIPTION = 备份描述文本 , INIT | NOINIT ,3. 使用BACKUP DATABASE语句备份数据库,33,说明: :指定备份要使用的逻辑或物理备份设备。定义如下: := 逻辑备份设备名 | DISK |=TAPE 物理备份设备名 INIT:指定应重写所有备份集。 NOINIT:表示备份集将追加到指定的设备现有数据之后,以保留现有的备份集。,完全数据库备份是制作数据库中所有内容的一个副本,备份过程花费时间相对较长,备份占用的空间大,因此不宜频繁进行。,34,【例17-6】将“

13、学生管理”数据库备份到d盘的mybackup文件夹下的“学生管理.bak”文件中。 -首先先创建一个备份设备 sp_addumpdevice disk,mycopy1,d:mybackup 学生管理.bak -用BACKUP DATABASE备份学生管理数据库 BACKUP DATABASE 学生管理 TO mycopy1 WITH NAME = 学生管理备份, DESCRIPTION = 完全备份,35,【例17-7】将“学生管理”数据库备份到网络中的另一台主机ServerX上。 sp_addumpdevice disk,STDcopy,ServerXbackupstudent.dat BA

14、CKUP DATABASE 学生管理 TO STDcopy,略,36,指对最近一次完全数据库备份结束以来发生改变的数据进行备份。当数据库从上次备份以来只修改了很少的数据时,适合使用差异备份。 格式: BACKUP DATABASE 数据库名称 TO ,.n WITH DIFFERENTIAL , NAME=备份集名称 , DESCRIPTION = 备份描述文本 , INIT | NOINIT ,(2)差异数据库备份,37,【例17-8】假设对“学生管理”数据库进行了一些修改,现在要做一个差异备份,且将该备份添加到例17-6的现有备份之后。 BACKUP DATABASE 学生管理 TO my

15、copy1 WITH DIFFERENTIAL, NOINIT, NAME=学生管理备份, DESCRIPTION=第一次差异备份,38,当一个数据库很大时,对整个数据库进行备份可能会花费很多时间,这时可以采用文件或文件组备份,即对数据库中的部分文件或文件组进行备份。,(3)文件或文件组备份(略),39,格式: BACKUP DATABASE 数据库名称 ,.n TO ,.n WITH DIFFERENTIAL , NAME=备份集名称 , DESCRIPTION = 备份描述文本 , INIT | NOINIT := FILE = 逻辑文件名 | FILEGROUP = 逻辑文件组名 ,略,

16、40,将test数据库的文件组QQQ备份到文件“E:tempgroup1.dat”中。 BACKUP DATABASE test FILEGROUP= QQQ TO DISK=E:tempgroup1.dat WITH NAME=group backup of test 将XJGL数据库的次数据库文件DDD备份到文件“d:mybackupddd.dat”中。 BACKUP DATABASE xjgl FILE=ddd TO DISK=d:mybackupddd.dat,例17-9】,恢复模型为“完全”;建立一个文件组QQQ,并建立一个次要数据库文件属于该文件组;相应文件夹存在。,恢复模型为“完

17、全”;建立一个次数据库文件DDD;相应文件夹存在。,41,事务日志是自上次备份事务日志后对数据库执行的所有事务的一系列记录,备份事务日志将对最近一次备份事务日志以来的所有事务日志进行备份。 格式: BACKUP LOG 数据库名称 TO ,.n WITH , NAME=备份集名称 , DESCRIPTION = 备份描述文本 , INIT | NOINIT ,(4) 事务日志备份,42,【例17-10】将“学生管理”数据库的日志文件备份到文件d:mybackupMyLog1.bak中。 EXEC sp_addumpdevice disk, MyLog1, d:mybackupMyLog1.ba

18、k BACKUP LOG 学生管理 TO MyLog1,前提: 恢复模型为“完全” 存在文件夹d:mybackup,43,三、 恢复数据库,数据库备份后,一旦系统发生崩溃或者执行了错误的数据库操作,就可以从备份文件中恢复(还原)数据库,让数据库回到备份时的状态。通常在以下情况下需要恢复数据库。 媒体故障。 用户操作错误。 服务器永久丢失。 将数据库从一台服务器复制到另一台服务器。,恢复数据库之前,需要限制其他用户访问数据库: 右击数据库选择“属性” 选择“选项” 选择“限制访问”、单用户,44,恢复内容: 恢复整个数据库 恢复部分数据库 恢复数据库文件或文件组 恢复数据库事务日志 恢复途径:

19、使用企业管理器中 使用RESTORE DATABASE,45,1. 使用企业管理器恢复数据库 单击服务器名称选择“工具”菜单 选择“还原数据库” 或 右击“数据库”或数据库名称选择“所有任务” 选择“还原数据库”命令。 两种方法都会打开 “还原数据库”对话框:,46,“还原数据库”对话框“常规”选项卡,47,“还原数据库”对话框“选项”选项卡,48,(1) 恢复完全备份数据库和差异备份数据库 格式: RESTORE DATABASE 数据库名称 FROM ,.n WITH , FILE = 文件号 , MOVE 逻辑文件名 TO 物理文件名 ,.n , NORECOVERY | RECOVER

20、Y , REPLACE ,2. 使用RESTORE DATABASE语句恢复数据库,49,说明: 文件号:要还原的备份集。例如,文件号为2表示第二个备份集。 NORECOVERY:指示还原操作不回滚任何未提交的事务。当还原数据库备份和多个事务日志时,或在需要使用多个RESTORE语句时(例如在完整数据库备份后进行差异数据库备份),SQL Server要求在除最后的RESTORE语句外的所有其它语句上使用WITH NORECOVERY选项。 RECOVERY:指示还原操作回滚任何未提交的事务。在恢复完成后即可随时使用数据库。 REPLACE:指定如果存在同名数据库,将覆盖现有的数据库。,50,恢

21、复第一天做的“学生管理”数据库的完全备份(如例17-6) RESTORE DATABASE 学生管理 FROM mycopy1 WITH FILE=1, RECOVERY,【例17-11】完全恢复,51,设第一天做了一个“学生管理”数据库的完全备份(如例17-6),第2天做了一个“学生管理”数据库的差异备份(如例17-8),之后数据库出现故障,将数据库恢复到做差异备份时的状态。 -恢复完全备份 RESTORE DATABASE 学生管理 FROM mycopy1 WITH FILE=1, NORECOVERY -这时数据库无法使用,继续恢复差异备份 RESTORE DATABASE 学生管理

22、FROM mycopy1 WITH FILE=2, RECOVERY -这时数据库可以使用,【例17-12】完全+差异 恢复,52,(2) 恢复事务日志 格式: RESTORE LOG 数据库名称 FROM ,.n WITH , FILE = 文件号 , MOVE 逻辑文件名 TO 物理文件名 ,.n , NORECOVERY | RECOVERY ,53,假设对“XJGL”数据库先后做了完全数据库备份、差异数据库备份和事务日志备份,现在利用这三个备份来恢复数据库。 BACKUP DATABASE xjgl TO disk=d:mybackupxjgl.bak WITH NAME = xjgl

23、备份, DESCRIPTION = 完全备份 BACKUP DATABASE 学生管理 TO disk=d:mybackupxjgl.bak WITH DIFFERENTIAL, NOINIT, NAME=xjgl备份, DESCRIPTION=第一次差异备份 BACKUP LOG xjgl TO disk=d:mybackupxjglLog1,【例17-14】完全+差异 +日志 恢复,54,RESTORE DATABASE xjgl FROM disk=d:mybackupxjgl.bak with noRECOVERY RESTORE DATABASE xjgl FROM disk=d:mybackupxjgl.bak WITH NORECOVERY RESTORE LOG xjgl FROM disk=d:mybackupxjglLog1 WITH RECOVERY -完成恢复,数据库可以使用,55,练习1:(完全数据库备份与简单恢复),1.建立备份: 建立JSJX数据库 在JSJX数据库中建立一个表TABLE1 然后执行完全备份JSJX数据库操作 2.完成操作 再删除自己建立的表TABLE1 3.恢复操作(将数据库恢复到操作2之前的状态) 恢复JSJX数据库,56,练习2:差异数据库备份与简单恢复,1.建立一个完全备份备

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论