第11章 数据库备份与恢复

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2014-6-8
18/31
创建和删除备份设备(2)
例11.4 创建一个名为mydiskdump的备份设备,其物理名称为 D:\JXGL\Dump1.bak。 USE master GO EXEC sp_addumpdevice 'disk','mydiskdump', 'D:\JXGL\ Dump1.bak' GO
2014-6-8
21/31
数据库备份 (1)
(1) 完整数据库备份 完整数据库备份就是备份整个数据库。它备份数据库文件、这些文 件的地址以及事务日志的某些部分(从备份开始时所记录的日志顺序号 到备份结束时的日志顺序号)。 性质: 完整备份是执行差异备份和事务日志备份的基础。 单独从一个完全数据库备份就可以恢复数据库。 完全数据库备份的过程中需要花费更多的空间和时间。 完全数据库备份不需要频繁地进行。 创建完整数据库备份的方法主要有两种: 在SQL Server Management Studio中使用现有的命令和功能, 通过方便的图形化工具创建; 利用系统命令BACKUP创建。 本部分只介绍图形化工具创建的方法。
利用SSMS图形方式查看备份设备信息的具体方法是:在“对象资源 管理器”中,依次展开“服务器对象”→“备份设备”,右击所要查看 信息的备份设备名称,在弹出的快捷菜单中选择“属性”菜单项,打开 “备份设备”属性窗口。可以利用“备份设备”属性窗口的“常规”和 “媒体内容”选项页来查看相关信息。 使用RESTORE HEADRONLY查看备份设备的相关信息: RESTORE HEADRONLY FROM <备份设备名> 例11.8 使用T-SQL语句查看备份设备back_JXGL的相关信息。 GO restore HEADERONLY FROM back_JXGL GO

注意:在处理比较重要业务的应用环境中,常要求数据库服务器连续 工作,至多只留有一小段时间来执行系统维护任务,在该情况下一旦出现 系统发生故障,则要求数据库在最短时间内立即恢复到正常状态,以避免 丢失过多的重要数据,由此可见备份或恢复所需时间往往也成为我们选择 何种备份方案的重要影响因素。
2014-6-8
2014-6-8
13/31
附加数据库 (1)

利用SSMS图形方式
(1) 将需要附加的数据库文件和日志文件拷贝到某个已经创建好的文 件夹中。假设教学管理数据库JXGL已经存储在D:\JXGLSYS\DATA文 件夹下。在“对象资源管理器”中右击“数据库”对象,并在快捷菜单 中选择“附加”命令,打开“附加数据库”窗口。 (2) 在“附加数据库”窗口中,单击页面中间的“添加”按钮,打开 定位数据库文件的窗口,在此窗口中依次展开D:\JXGLSYS\DATA文件 夹,选择要附加的数据库文件JXGL.mdf(后缀.mdf),如图所示。
2014-6-8
15/31
11.3 数据库备份
主要内容


创建和删除备份设备 数据库备份
2014-6-8
16/31
创建和删除备份设备(1)
进行数据库备份前首先必须创建备份设备。备份设备是用来存储数据 库、事务日志的存储介质。 (1) 创建备份设备 例11.3 在“D:\JXGL”文件夹下,创建一个用来备份数据库“JXGL” 的备份设备back_JXGL。 ① 在“对象资源管理器”中展开“服务器对象”,然后右键单击 “备份设备”。 ② 从弹出的快捷菜单中选择“新建备份设备”菜单项,将打开“备 份设备”窗口,在“设备名称”文本框中输入“back_JXGL”,并在目 标区域中设置好文件,如图所示。本例中备份设备存储在D:\JXGL文件 夹下,这里必须保证SQL Server 2008所选择的硬盘驱动器上有足够的 可用空间。 ③ 单击“确定”按钮完成创建永久备份设备。
第11章 数据库备份与恢复
软件工程系
刘金岭
2014-6-8
1
11.1 备份与恢复概述
主要内容


备份方式 备份与恢复策略
2014-6-8
2/31
备份方式 (1)
完整备份
完整备份是指备份整个数据库的所有内容,包括事务日志。该备份 类型需要比较大的存储空间来存储备份文件,备份时间也比较长,在恢 复数据时,也只要恢复一个备份文件。
2014-6-8
3/31
备份方式 (2)
事务日志备份
事务日志备份只备份事务日志里的内容。事务日志记录了上一次完 整备份或事务日志备份后数据库的所有变动过程。事务日志记录的是某 一段时间内的数据库变动情况,因此在进行事务日志备份之前,必须要 进行完整备份。与差异备份类似,事务日志备份生成的文件较小、占用 时间较短,但是在恢复数据时,除了先要恢复完整备份之外,还要依次 恢复每个事务日志备份,而不是只恢复最后一个事务日志备份。
2014-6-8
17/31
创建和删除备份设备(2)
(2) 使用系统存储过程 可以使用系统存储过程sp_addumpdevice来创建备份设备。其语句 格式为: sp_addumpdevice DISK|PIPE|TAPE,<逻辑名>,<物理名> DISK|PIPE|TAPE:为创建的设备类型,取值为:“DISK”表示硬 盘,“PIPE”表示命名管道,“TAPE”表示磁带设备。 <逻辑名>:指备份设备的逻辑名称,该逻辑名称用于 BACKUP 和 RESTORE 语句中,数据类型为sysname,没有默认值,并且不能为 NULL。 <物理名>:指备份设备的物理名称。物理名称必须遵照操作系统文 件名称的规则或者网络设备的通用命名规则,并且必须包括完整的路径。 没有默认值,并且不能为NULL。
例11.5 查看创建的设备文件。 USE master GO SELECT * FROM sysdevices GO
2014-6-8
19/31
创建和删除备份设备(3)
删除备份设备
(1) 利用SSMS图形方式 ① 在“对象资源管理器”中展开“服务器对象”→“备份设备”。 ② 选择要删除的具体备份设备,按右键,从弹出的快捷菜单中选择 “删除”菜单项,即完成删除操作。 (2) 使用系统存储过程
2014-6-8
8/31
备份与恢复策略(5)
(3) 简单恢复模式 所谓简单恢复就是指在进行数据库恢复时仅使用了数据库完整备份 或差异备份,而不涉及事务日志备份。简单恢复模式可使数据库恢复到 上一次备份的状态,但由于不使用事务日志备份来进行恢复,所以无法 将数据库恢复到故障点状态。当选择简单恢复模式时常使用的备份策略 是:首先进行数据库完整备份,然后再进行数据库差异备份。 在实际应用中,备份策略和恢复策略的选择不是相互孤立的,而是 有着紧密的联系。因为在采用何种数据库恢复模式的决策中需要考虑该 怎样进行数据库备份,更多的是在选择应该使用哪种备份类型时,我们 必须考虑到当使用该备份进行数据库恢复时,它能把遭到损坏的数据库 恢复到怎样的状态(是数据库发生故障的时刻,还是最近一次备份的时 刻)。
文件或文件组备份
如果在创建数据库时,为数据库创建了多个数据库文件或文件组, 可以使用该备份方式。使用文件或文件组备份方式可以只备份数据库中 的某些文件,该备份方式在数据库文件非常庞大时十分有效,由于每次 只备份一个或几个文件或文件组,可以分多次来备份数据库,避免大型 数据库备份的时间过长。
2014-6-8 4/31
EXEC sp_dropdevice <备份设备名>
其中,<备份设备名>是指备份设备的逻辑名。 例11.7 删除例11.4创建的备份设备。 USE master GO EXEC sp_dropdevice 'mydiskdump' GO
2014-6-8 20/31
创建和删除备份设备(4)
查看备份设备信息
2014-6-8
7/31
备份与恢复策略(4)
(2) 大容量日志恢复模式 大容量日志恢复模式是对完全恢复模式的补充。也就是要对大容量 操作进行最小日志记录,节省日志文件的空间(如导入数据、批量更新、 SELECT INTO等操作时)。例如一次在数据库中插入数十万条记录时, 在完全恢复模式下每一个插入记录的动作都会记录在日志中,使日志文 件变得非常大,在大容量日志恢复模式下,只记录必要的操作,不记录 所有日志,这样一来,可以大大提高数据库的性能,但是由于日志不完 整,一旦出现问题,数据将可能无法恢复。因此,一般只有在需要进行 大量数据操作时才将恢复模式改为大容量日志恢复模式,数据处理完毕 之后,马上将恢复模式改回完全恢复模式。

差异备份
差异备份是对完整备份的补充,只是备份上次完整备份后更改的数 据。相对于完整备份来说,差异备份的数据量比完整数据备份小,备份 的速度也比完整备份要快。 在数据恢复时,要先恢复前一次做的完整备份,然后再恢复最后一 次所做的差异备份,这样才能让数据库里的数据恢复到与最后一次差异 备份时的内容相同。
5/31
备份与恢复策略(2)
减少备份或恢复操作的执行时间的几种方法 :
使用多个备份设备来同时进行备份处理。同理,可以从多个备 份设备上同时进行数据库恢复操作处理。 综合使用完整数据库备份、差异备份或事务日志备份来减少每 次需要备份的数据数量。 使用文件或文件组备份以及事务日志备份,这样可以只备份或 恢复那些包含相关数据的文件,而不是整个数据库。
2014-6-8
12/31
分离数据库 (3)

使用系统存储过程
使用系统存储过程sp_detach_db可以分离数据库,其简单语句格式 为:
EXEC sp_detach_db <数据库名> 例11.1 利用存储过程sp_detach_db分离JXGL数据库。 USE master GO EXEC sp_detach_db 'JXGL' GO
2014-6-8
9/31
11.2 分离和附加数据库
主要内容


分离数据库 附加数据库
2014-6-8
10/31
分离数据库 ห้องสมุดไป่ตู้1)
利用SSMS图形方式
(1) 在“对象资源管理器”中,依次展开“数据库”,选定需要分离 的数据库名称JXGL,右键单击JXGL数据库,在弹出的快捷菜单中选择 “属性”菜单项,打开“数据库属性”窗口。 (2) 在“数据库属性”窗口中,单击“选项”选项页,然后在“其它 选项”列表中找到“状态”项。单击“限制访问”文本框,在其下拉列 表框中选择“SINGLE_USE”,如图所示。
(3) 单击“确定”按钮就完成了附加数据库文件的设置工作。
2014-6-8
14/31
附加数据库 (2)
使用T-SQL语句
CREATE DATABASE <数据库名> ON(FILENAME=<物理文件名>) FOR ATTACH 例11.2 附加JXGL数据库。 USE master GO CREATE DATABASE JXGL ON(FILENAME='D:\JXGLSYS\DATA\JXGL.mdf') FOR ATTACH GO
2014-6-8
11/31
分离数据库 (2)
(3) 在弹出的消息框中单击“是”按钮后,数据库名称“JXGL”后面 增加显示“单个用户”。右键单击该数据库名称,在快捷菜单中选择 “任务”的二级菜单项“分离”。出现“分离数据库”窗口。 (4) 在“分离数据库”窗口中列出了要分离的数据库名称。选中“更 新统计信息”复选框。若“消息”列中没有显示存在活动连接,则“状 态”列显示为“就绪”;否则显示“未就绪”,此时必须勾选“删除连 接”列的复选框,如图所示。
备份与恢复策略(1)
备份前需要考虑的几个问题
如果只进行完整数据库备份,那么将无法恢复自最近一次数据库 备份以来数据库中所发生变化的所有数据。

如果在进行完整数据库备份时也进行事务日志备份,那么可以将 数据库恢复到故障点,一般那些在故障前未提交的事务将无法恢复。

如果在数据库发生故障后立即对当前处于活动状态的事务进行备 份,则未提交的事务也可以恢复。

注意:在备份时也需要决定该使用哪种备份设备,如磁盘或移动设 备、磁带、命名管道等,并且决定如何在备份设备上创建备份,比如将 备份添加到备份设备上或将其覆盖。
2014-6-8
6/31
备份与恢复策略(3)
恢复模式
(1) 完全恢复模式 完全恢复模式为数据库的默认恢复模式。它是指通过使用数据库备 份和事务日志备份将数据库恢复到发生发生故障的时刻,因此几乎不造 成任何数据丢失,这成为对付因存储介质损坏而数据丢失的最佳方法。 完全恢复模式时常使用的备份策略是: 首先进行完整数据库备份。 然后进行差异数据库备份。 最后进行事务日志的备份。
相关文档
最新文档