第 10章 数据库的备份和恢复
10.1 数据库备份概述
10.2 备份类型
10.3 备份策略
10.4 备份设备
10.5 备份
10.6 还原
10.1 数据库备份概述随着信息时代和互联网技术的飞速发展,企业的信息数据量急剧增长 。 而目前黑客攻击,病毒袭击已成家常便饭,硬件故障和人为的误操作也时有发生,一旦由此发生的数据损坏或丢失,造成的损失可能是巨大的,有的可能是灾难性的 。
在数据库应用系统中,以下情况可能造成数据的丢失或系统的崩溃:
l 系统硬件 (如存储子系统 )故障;
l 数据库相关软件瘫痪;
l 黑客攻击或病毒袭击;
l 人为的误操作;
l 应用程序中某种不可预见的 BUG。
§ 数据库备份是指定期或不定期地将数据库中的全部或部分数据复制到安全的存储介质 ( 磁盘,磁带等 ) 上保存起来的过程 。
第
10
章数据库的备份和恢复
< >
10.1 数据库备份概述
10.1.1 备份需求分析一个合理的数据库备份方案,应该能够在数据造成丢失时,可以有效地恢复重要数据,同时也要考虑技术实现的难度和有效地利用资源 。
根据并分析掌握的信息,接下来应该对备份内容,
备份频率,备份介质,使用何种备份类型及恢复模型等进行详细的规划 。
10.1.2 数据一致性检查在备份数据库前,应检查数据库中数据的正确性与一致性,这样才能保证备份后数据的正确及以后的顺利恢复 。
第
10
章数据库的备份和恢复
< >
10.2 备份类型
1,完整数据库备份完整数据库备份是指对数据库进行完整备份,包括所有的数据以及数据库对象 。 由于是对数据库的完整备份,所以这种备份类型不仅速度慢,而且将占用大量的磁盘空间 。 因此,
在进行数据库备份时,一般常将其安排在凌晨,因为此时整个数据库系统几乎不进行其它事务操作,从而可以提高数据库备份的速度 。
2,事务日志备份事务日志备份是指对数据库发生的事务进行备份,包括从上次进行事务日志备份,差异备份和完整数据库备份之后,
所有已经完成的事务,但事务日志备份前,至少应有一次完整数据库备份 。 还原的时候,必须先还原完整数据库备份,再还原差异备份 ( 如果有的话 ),再按照事务日志备份的先后顺序,
依次还原各次日志备份的内容;这种备份生成的备份文件最小,
需要的时间也最短,对 SQL Server服务性能的影响也最小,适宜于经常备份 。
第
10
章数据库的备份和恢复
< >
10.2 备份类型
3,差异备份差异备份是指将最近一次数据库完整备份以来对数据所做的修改进行备份,因此差异备份实际上是一种增量数据库备份 。 与完整数据库备份相比,差异备份由于备份的数据量较小,
所以备份和恢复所用的时间较短,可以经常进行差异备份 。 通过增加差异备份的备份次数,可以降低丢失数据的风险,将数据库恢复至进行最后一次差异备份完成时的那一点,但它无法像事务日志备份那样提供到时间点的无数据损失备份,它只允许在实际所做的备份点上恢复 。
4,文件或文件组备份文件或文件组备份只备份数据库中的个别文件或文件组 。
常常用于对重要数据的备份,它要求在数据库设计时,就做好全面考虑,把需要单独做备份的表进行分组,给它们分配不同的文件组 ( 表只能放在文件组上,一个文件组可以是一个文件或多个文件 ),这样才能在做备份的时候,单独备份这些数据 。
第
10
章数据库的备份和恢复
< >
10.3 备份策略根据前面掌握的信息和材料,就可以从实际情况出发选择合适的备份策略了 。 常用的备份选择方案有:仅进行完整数据库备份,或在进行完整数据库备份的同时进行事务日志备份,
或使用完整数据库备份和差异数据库备份 。
1,完整数据库备份策略
2,日志备份策略创建定期的数据库完整备份,并在两次数据库完整备份之间按一定的时间间隔创建差异备份,再按一定的时间间隔创建日志备份 。
3,差异备份策略创建定期的数据库完整备份,并在两次数据库完整备份之间按一定的时间间隔创建差异备份,增加差异备份的次数
( 如每隔四~五小时备份一次 ),以减少备份时间 。
第
10
章数据库的备份和恢复
< >
10.4 备份设备备份设备是 SQL Server能存储数据库或事务日志备份拷贝的地方 。 创建备份时,必须选择存放备份数据的备份设备 。
10.4.1 备份设备的类型备份设备可以是本地机器上的磁盘文件,远程服务器上的磁盘文件,磁带以及命名管道 。 当创建一个备份设备时,需要给它指定一个逻辑设备名称和一个物理设备名称 。
1,磁盘备份设备磁盘备份设备可以位于本地机器上或一个网络服务器上的硬盘或其它磁盘存储媒体上的文件 。
2,磁带备份设备磁带备份设备的用法与磁盘设备相同 。 但 SQL Server中仅支持本地磁带设备,不支持远程磁带设备 。
第
10
章数据库的备份和恢复
< >
10.4.2 创建备份设备
1,使用 T-SQL语句创建备份设备使用系统存储过程 sp_addumpdevice可以用来创建备份设备 。 其语法格式为:
sp_addumpdevice [ @devtype = ] 'device_type',
[ @logicalname = ] 'logical_name',
[ @physicalname = ] 'physical_name'
[,{ [ @cntrltype = ] controller_type
| [ @devstatus = ] 'device_status' }
]
第
10
章数据库的备份和恢复
< >
10.4.2 创建备份设备
【 例 10-1】 分 别 创 建 一 个 本 地 磁 盘 备 份 设 备
DISKBackup_Edu;网络磁盘备份设备 NETBackup_Edu和本地磁带备份设备 TAPEBackup_Edu。
USE master
-- 创建本地磁盘备份设备
EXEC sp_addumpdevice 'disk','DISKBackup_Edu',
'E:\Backups\Edu\Backup_Edu.bak'
-- 创建网络磁盘备份设备
EXEC sp_addumpdevice 'disk','NETBackup_Edu',
'\\JINLQSERVER\ShareEdu\Edu\Backup_Edu.bak'
-- 创建本地磁带备份设备
EXEC sp_addumpdevice 'tape','TAPEBackup_Edu',
'\\.\TAPE0'
第
10
章数据库的备份和恢复
< >
10.4.2 创建备份设备
2,使用企业管理器创建备份设备
1) 启动企业管理器,展开相应的服务器组和服务器节点 。
2) 展开,管理,节点,右击,备份,项,在出现的快捷菜单中选择,新建备份设备,菜单项,系统将弹出如图 10-1所示的,备份设备属性 -新设备,对话框 。
3) 在,名称,框中输入需创建备份设备的逻辑名称 。
4) 在下半部分中选择备份设备的物理名称 。 可以选择的有
,磁带驱动器名,和,文件名,。 由于系统中没有安装磁带驱动器,故在此,磁带驱动器名,为灰色不能选择 。 在,文件名,
对应的输入框中输入磁盘备份设备所使用的物理文件名或通过单击其后的,” 按钮,在,备份设备位置,对话框中从本地计算机上选择一个物理文件 。
5) 单击,确定,按钮,关闭图 10-1对话框,完成创建备份设备工作 。
第
10
章数据库的备份和恢复
< >
10.4.3 查看备份设备运行系统存储过程 sp_helpdevice可以方便地查看系统中已创建的备份设备,也可以在企业管理器中查看,步骤如下:
1) 启动企业管理器,展开相应的服务器组和服务器节点 。
2) 展开,管理,节点,单击出现的,备份,项,
在右边的,备份项目,列表框中就可看到系统中所有已创建的备份设备,如图 10-2所示 。
3),备份项目,列表框中的每行就是一个备份设备,可以在上面查看到每个备份设备的逻辑名称,对应的物理名称及设备的类型 。
第
10
章数据库的备份和恢复
< >
10.4.4 删除备份设备当备份设备不再使用时,就可以将其删除 。
1,使用系统存储过程删除备份设备系统存储过程 sp_dropdevice的语法格式为:
sp_dropdevice [ @logicalname = ] 'device_name'
[,[ @delfile = ] 'delfile' ]
2,使用企业管理器删除备份设备
1) 启动企业管理器,展开相应的服务器组和服务器节点 。
2) 展开,管理,节点,单击出现的,备份,项,在右边的
,备份项目,列表框中就可看到系统中所有已创建的备份设备,
如图 10-2所示 。
3) 在,备份项目,列表框中右击需删除的备份设备,在弹出的快捷菜单中选择,删除,菜单项,系统将弹出,确实需要删除备份设备,确认对话框,单击,是,按钮确认删除 。
第
10
章数据库的备份和恢复
< >
10.5 备份
10.5.1 备份前的准备为了将数据库完整,安全地备份,应在具体执行备份操作之前,根据系统环境和实际需要制订一个切实可行的备份计划是十分重要的,以确保数据库的安全 。
10.5.2 使用 T-SQL进行数据备份使用 BACKUP语句可以进行整个数据库,事务日志,
一个或多个文件或文件组的备份 。 不同的备份,使用的 BACKUP语句是不同的 。
1,备份整个数据库
2,备份特定的文件或文件组
3,备份事务日志第
10
章数据库的备份和恢复
< >
完整数据库备份、差异备份
【 例 10-3】 完整数据库备份 。 将 Educational数据库整个备份到 DISKBackup_Edu备份设备上,并为备份集设置密码 。
BACKUP DATABASE Educational TO DISKBackup_Edu
【 例 10-4】 差异备份 。 对 Educational数据库进行差异备份,
备份到 DISKBackup_Edu备份设备上 。
进行差异备份前,必须至少进行一次完整数据库备份 。
使用 BACKUP DATABASE命令时,除需要指定备份数据库的名称,
备份设备外,还必须指定子句 DIFFERENTIAL。 实现该例任务的
BACKUP DATABASE命令如下:
BACKUP DATABASE Educational TO DISKBackup_Edu
WITH DIFFERENTIAL
第
10
章数据库的备份和恢复
< >
差异备份、事务日志备份
【 例 10-4】 差异备份 。 对 Educational数据库进行差异备份,
备份到 DISKBackup_Edu备份设备上 。
进行差异备份前,必须至少进行一次完整数据库备份 。 使用 BACKUP
DATABASE命令时,除需要指定备份数据库的名称,备份设备外,还必须指定子句 DIFFERENTIAL。 实现该例任务的 BACKUP DATABASE命令如下:
BACKUP DATABASE Educational TO DISKBackup_Edu
WITH DIFFERENTIAL
【 例 10-5】 事务日志备份 。 将 Educational数据库的事务日志备份到 E:\Backups\Edu\Backup_Edu_Log.bak文件中 。
进行事务日志前,必须至少进行一次完整数据库备份 。 事务日志的备份应使用 BACKUP LOG命令 。 实现该例任务的 BACKUP DATABASE命令如下:
BACKUP LOG Educational TO
DISK='E:\Backups\Edu\Backup_Edu_Log.bak'
WITH PASSWORD='MyPass'
第
10
章数据库的备份和恢复
< >
文件与文件组备份
【 例 10-6】 文件与文件组备份 。 将 Educational数据库中的
Edu_data文件备份到 DISKBackup_Edu备份设备中 。
使用 BACKUP DATABASE命令进行文件或文件组备份时,除需要指定备份数据库的名称,备份设备外,还必须指定 FILE( 文件 ) 子句或 FILEGROUP( 文件组 ) 子句 。 实现该例任务的
BACKUP DATABASE命令如下:
BACKUP DATABASE Educational
FILE = 'Edu_data'
TO DISKBackup_Edu
在查询分析器中执行上述命令,就可将 Educational数据库的 Edu_data文件备份到 DISKBackup_Edu备份设备中 。
第
10
章数据库的备份和恢复
< >
10.5.3 使用企业管理器进行数据备份
1,完整数据库备份
1) 启动企业管理器,展开相应的服务器组和服务器节点 。
2) 展开,数据库,节点,右击要备份的数据库,在出现的快捷菜单中执行,所有任务,→,备份数据库,菜单项,系统弹出,SQL Server备份,对话框,如图 10-4所示 。
3),数据库,列表框中选择要备份的数据库,默认情况下被选中的是刚才用右键单击的那个数据库 。
4),名称,输入框内为备份输入一个便于识别的名称,这里为,Educational 完整备份,。
5),描述,框中为该备份输入一个描述性信息 ( 可选 ),
这里输入,第二次完整备份 050218”。
6) 在,备份,单选按钮组中单击,数据库 - 完全,选钮,
进行完全数据库备份 。 注意完整数据库备份是其它备份的基础 。
第
10
章数据库的备份和恢复
< >
10.5.3 使用企业管理器进行数据备份
7),目的,栏下的列表框中显示出曾对该数据库进行备份时使用的备份设备或备份文件名 。 单击,添加,按钮,可以添加备份设备或备份文件名,出现如图 10-5所示的,选择备份目的,对话框,在该对话框中选择,文件名,单选钮表示使用临时性的备份文件存储数据库的备份内容;选择,备份设备,单选钮表示使用永久性的现有备份设备或创建新的备份设备存储数据库的备份内容 。
8) 在图 10-4的,重写,选项下,单击,追加到媒体,单选钮,将备份追加到现有的备份设备上;单击,重写现有媒体,
单选钮 ( 相当于在 SQL语句中使用了 FORMAT子句 ),则将覆盖备份设备中原有的内容 。 这里选择,重写现有媒体,。
9) 图 10-4的,调度,复选框用来设定备份计划,即调度备份操作在以后执行或定期执行 ( 可选 ) 。
第
10
章数据库的备份和恢复
< >
10.5.3 使用企业管理器进行数据备份
10) 单击,选项,选项卡,进入如图 10-7所示的,SQL
Server备份,对话框,选项,页 。
11) 在图 10-7中通过设置,完成后验证备份,复选框决定是否进行备份设备的验证 。
12) 通过设置,检查媒体集名称和备份集到期时间,复选框,
检查备份媒体以防意外重写 。 在,媒体集名称,框中,输入将用于备份操作的媒体名称 。
13) 若是第一次使用备份媒体,或者要更改现有的媒体标签,
则在,媒体集标签,框下选择,初始化并标识媒体,复选框,
然后输入媒体集名称和媒体集描述 。 只有在重写媒体时才能对其进行初始化和标识设置 。
14) 单击,确定,按钮,系统按前述设置进行备份,备份完成后出现,数据库备份成功,信息框,单击,确定,按钮,即可完成数据库的完全备份 。
第
10
章数据库的备份和恢复
< >
差异数据库备份、事务日志备份
2,差异数据库备份除第 6)步选择,数据库 – 差异,,第 8)步一般选择,追加到媒体,外 ( 备份数据放入同一备份设备中 ),与完整数据库备份操作相同 。
3,事务日志 备份除第 6)步选择,事务日志,,第 8)步一般选择
,追加到媒体,外 ( 备份数据放入同一备份设备中 ),
与完整数据库备份操作相同 。
第
10
章数据库的备份和恢复
< >
4.文件与文件组备份除第 6)步选择,文件和文件组,外,与完整数据库备份操作相同 。 在第 6)步中,单击,文件和文件组,,并单击文本框右边的按钮,出现如图 10-8所示的,指定文件组和文件,对话框 。 该对话框中显示了该数据库中存在的文件组和文件,选中需要备份的文件组或文件前的复选框,单击,确定,按钮即可完成备份文件组和文件的任务 。
第
10
章数据库的备份和恢复
< >
10.6 还原虽然每个数据库管理员都有一个美好愿望:希望永远不要出现还原数据库的情况 。 但任何数据库系统都不能保证不出现意外的崩溃状况,因此对一个 DBA来说,掌握数据库的还原技术是必要的 。
10.6.1 数据库恢复的概念有两种情况需要执行恢复数据库的操作:
( 1) 数据库或数据损坏 。
因为用户误删了数据库里的关键数据,或数据库文件被意外损坏,以及服务器里硬盘驱动器损坏等情况 。
( 2) 因维护任务或数据的远程处理从一个服务器向另一个服务器拷贝数据库 。
数据库恢复是数据库备份的逆向操作,是将先前所做的数据库备份加载并应用事务日志重建数据库的过程 。 执行恢复操作,
可以重新创建备份数据库完成时数据库中存在的相关文件,但备份后对数据库的所有修改将不能被恢复而丢失 。
第
10
章数据库的备份和恢复
< >
10.6.2 数据库恢复模型
1,简单恢复模型使用简单恢复模型,数据只能恢复到最新的完整数据库备份或差异备份的即时点,而不能将数据库还原到故障点或特定的即时点 。 若要还原到这些点,就需要选择完全恢复或大容量日志记录恢复模型 。
2,完全恢复模型完全恢复模型为数据提供了最大的保护性和灵活性 。 该模型依靠事务日志提供完全的可恢复性,并有效地防止故障所造成的数据损失,有将数据库恢复到故障点或特定即时点的能力 。
为保证这种恢复程度,包括大容量操作 ( 如 SELECT INTO、
CREATE INDEX 和大容量装载数据 ) 在内的所有操作都将完整地记入日志 。
3,大容量日志记录恢复模型大容量日志记录模型为数据提供了最大的保护性 。 该模型为某些大规模操作 ( 如创建索引或大容量复制 ) 提供了更高的性能和最少的日志使用空间 。
第
10
章数据库的备份和恢复
< >
10.6.3 查看备份信息
1,查看备份集内的数据和日志文件可以使用 RESTORE FILELISTONLY语句查看备份集内包含的数据库和日志文件列表组成的结果集 。
RESTORE FILELISTONLY语句的语法格式如下:
RESTORE FILELISTONLY
FROM < backup_device >
[ WITH
[ FILE = file_number ]
[[,]PASSWORD = { password | @password_variable } ]
]
【 例 10-7】 查看 DISKBackup_Edu备份设备中所包含的数据库和日志文件列表组成的结果集 。
RESTORE FILELISTONLY
FROM DISKBackup_Edu
第
10
章数据库的备份和恢复
< >
10.6.3 查看备份信息
2,查看备份首部信息可以使用 RESTORE HEADERONLY语句查看备份设备上所有备份集的首部信息 。 其语句格式与 RESTORE FILELISTONLY语句相同,参数也一样,所不同的只是将 RESTORE FILELISTONLY换成 RESTORE HEADERONLY即可 。
第
10
章数据库的备份和恢复
< >
10.6.4 T-SQL还原数据库
1,还原完整数据库备份
RESTORE DATABASE {database_name | @database_name_var}
[ FROM < backup_device > [,...n ] ]
[ WITH
[ RESTRICTED_USER ]
[[,] FILE = { file_number | @file_number } ]
[[,]PASSWORD={ password | @password_variable }]
[[,]{NORECOVERY|RECOVERY|STANDBY= undo_file_name}]
]
【 例 10-8】 从 DISKBackup_Edu备份设备上还原完整数据库备份 。
USE Master
GO
RESTOREDATABASE Educational FROM DISKBackup_Edu
第
10
章数据库的备份和恢复
< >
2,还原数据库的部分内容
RESTORE DATABASE { database_name | @database_name_var }
< file_or_filegroup > [,...n ]
[ FROM < backup_device > [,...n ] ]
[ WITH
{ PARTIAL }
[ [,] FILE = { file_number | @file_number } ]
[[,] PASSWORD = { password | @password_variable } ]
[ [,] NORECOVERY ]
]
【 例 10-9】 从 DISKBackup_Edu备份设备上还原差异数据库备份 。
RESTOREDATABASE Educational FROM DISKBackup_Edu
WITH NORECOVERY /* 先还原完整数据库备份,需指定 NORECOVERY */
RESTORE DATABASE Educational FROM DISKBackup_Edu
WITH FILE = 2,RECOVERY /* 在还原完整数据库备份的基础上,还原差异备份 */
第
10
章数据库的备份和恢复
< >
3,还原文件与文件组备份
RESTORE DATABASE { database_name |
@database_name_var }
< file_or_filegroup > [,...n ]
[ FROM < backup_device > [,...n ] ]
[ WITH
[ RESTRICTED_USER ]
[ [,] FILE = { file_number | @file_number } ]
[ [,] PASSWORD = { password |
@password_variable } ]
[ [,] NORECOVERY ]
]
第
10
章数据库的备份和恢复
< >
3,还原文件与文件组备份
【 例 10-10】 从 E:\Backups\Edu\Backup_Edu_Log.bak文件上还原事务日志备份 。
还原事务日志备份一般应执行以下步骤:
( 1) 先还原最新的完整数据库备份,并指定 NORECOVERY子句;
( 2) 还原最后一次所做的差异备份,并指定 NORECOVERY子句;
( 3) 按照创建时的相同顺序,还原自完整数据库备份或差异备份后创建的每个事务日志备份 。
RESTOREDATABASE Educational FROM DISKBackup_Edu
WITH NORECOVERY /* 先还原完整数据库备份,需指定 NORECOVERY */
RESTORE DATABASE Educational FROM DISKBackup_Edu
WITH FILE = 2,NORECOVERY/* 在还原完整数据库备份的基础上,还原差异备份 */
RESTORE LOG Educational FROM DISK
='E:\Backups\Edu\Backup_Edu_Log.bak'
WITH PASSWORD='MyPass',NORECOVERY /* 还原第一次事务日志备份 */
RESTORE LOG Educational FROM DISK
='E:\Backups\Edu\Backup_Edu_Log.bak'
WITH FILE = 2,RECOVERY /* 还原第二次事务日志备份 */
第
10
章数据库的备份和恢复
< >
10.6.5 使用企业管理器还原数据库
1,从完整数据库备份中还原数据
1) 启动企业管理器,展开相应的服务器组和服务器节点 。
2) 右击,数据库,节点,在出现的快捷菜单中执行,所有任务,→,还原数据库,菜单项,系统弹出如图 10-9所示,还原数据库,对话框 。
3) 在,还原为数据库,列表框中选择或输入要还原到的数据库,这里为,Educational”。
4) 因前面对数据库进行完整数据库备份时使用了备份设备
DISKBackup_Edu,故还原时须使用从备份设备中还原 。 因此,
在,还原,单选按钮组中选择,从设备,单选项 。
5),参数,中的,设备,列表框中列出了从哪些设备中还原数据 。 单击其后的,选择设备,按钮,出现如图 10-10所示
,选择还原设备,对话框 。
第
10
章数据库的备份和恢复
< >
10.6.5 使用企业管理器还原数据库
6) 单击,添加,按钮,出现如图 10-11所示,选择还原目的,对话框 。
7) 选择,备份设备,单选项,并从,备份设备,
下拉式列表框中选中,DISKBackup_Edu” 备份设备 。
单击,确定,按钮,返回图 10-10,这时设备名列表框中将出现备份设备 DISKBackup_Edu的物理文件名 。
8) 单击,确定,按钮,返回图 10-9,这时设备列表框中将出现备份设备 DISKBackup_Edu的物理文件名 。
9) 在经过上述操作过后的图 10-9中,,备份号,
输入框中默认为 1,表示是该备份设备中的第一个备份集,单击,备份号,后的,查看内容,按钮,打开如图 10-12所示的,选择备份,对话框 。
第
10
章数据库的备份和恢复
< >
10.6.5 使用企业管理器还原数据库
10) 在图 10-12的列表框中列出了该备份物理文件中存在的备份 ( 注:每行一次备份,前面已在该备份设备中执行了一次完整数据库备份,一次差异备份和一次文件与文件组备份,因此这里显示为三行 ),并默认选中相应备份集前的复选框,可以按照恢复的需要对复选框进行重选 ( 只能选一个 ),选择后单击,确定,按钮返回图 10-9,系统将根据图 10-12中的选择自动设置,备份号,及选中,还原备份集,单选钮组中的相应单选按钮,因这里选择的,备份号,是 1,故系统自动选中
,数据库 -完全,单选按钮,表示将从完整数据库备份中还原 。
11) 单击,选项,选项卡,进入如图 10-13所示,还原数据库,对话框的,选项,选项页 。
12) 在图 10-13中,系统显示出还原数据库的逻辑文件名和物理文件名,可以根据需要改变逻辑文件名和物理文件名 。
13) 单击,确定,按钮,系统根据上述设置的参数,进行完整数据库备份的恢复 。
第
10
章数据库的备份和恢复
< >
2,从差异备份中还原数据在执行从差异备份还原数据前,必须先执行一次从完整数据库备份中还原数据的操作 。 执行从差异备份中还原数据的操作与执行从完整数据库备份中还原数据的操作大同小异,只是在第 9)步中的,备份号,输入框中输入 2( 即第二个备份集 ),并单击,备份号,
后的,查看内容,按钮即可,以后的操作与从完整数据库备份中还原数据的操作完全相同 。
数据库应用开发技术第
10
章数据库的备份和恢复 < >
3,从事务日志备份中还原数据在执行从事务日志备份还原数据前,必须先执行一次从完整数据库备份和差异备份 (若存在差异备份 )中还原数据的操作 。 事务日志的还原需要从该组的第一次事务日志开始,依次还原到该组的最后一个事务日志备份 。
因前面执行事务日志备份时使用的是物理文件名,
因此这里必须直接从物理文件中还原数据 。 若使用从设备还原,只需在第 9)步中将选中,还原备份集,单选钮中的,数据库 -完全,单选按钮改为选中,事务日志,即可 。
第
10
章数据库的备份和恢复
< >
4,从文件与文件组中还原数据因前面执行文件和文件组备份时使用的是备份设备,所以执行从文件与文件组备份中还原数据的操作与执行从完整数据库备份中还原数据的操作大同小异,
只是在第 9)步中的,备份号,输入框中输入 3( 即第三个备份集 ),并单击,备份号,后的,查看内容,
按钮即可,以后的操作与从完整数据库备份中还原数据的操作完全相同 。
第
10
章数据库的备份和恢复
< >
10.1 数据库备份概述
10.2 备份类型
10.3 备份策略
10.4 备份设备
10.5 备份
10.6 还原
10.1 数据库备份概述随着信息时代和互联网技术的飞速发展,企业的信息数据量急剧增长 。 而目前黑客攻击,病毒袭击已成家常便饭,硬件故障和人为的误操作也时有发生,一旦由此发生的数据损坏或丢失,造成的损失可能是巨大的,有的可能是灾难性的 。
在数据库应用系统中,以下情况可能造成数据的丢失或系统的崩溃:
l 系统硬件 (如存储子系统 )故障;
l 数据库相关软件瘫痪;
l 黑客攻击或病毒袭击;
l 人为的误操作;
l 应用程序中某种不可预见的 BUG。
§ 数据库备份是指定期或不定期地将数据库中的全部或部分数据复制到安全的存储介质 ( 磁盘,磁带等 ) 上保存起来的过程 。
第
10
章数据库的备份和恢复
< >
10.1 数据库备份概述
10.1.1 备份需求分析一个合理的数据库备份方案,应该能够在数据造成丢失时,可以有效地恢复重要数据,同时也要考虑技术实现的难度和有效地利用资源 。
根据并分析掌握的信息,接下来应该对备份内容,
备份频率,备份介质,使用何种备份类型及恢复模型等进行详细的规划 。
10.1.2 数据一致性检查在备份数据库前,应检查数据库中数据的正确性与一致性,这样才能保证备份后数据的正确及以后的顺利恢复 。
第
10
章数据库的备份和恢复
< >
10.2 备份类型
1,完整数据库备份完整数据库备份是指对数据库进行完整备份,包括所有的数据以及数据库对象 。 由于是对数据库的完整备份,所以这种备份类型不仅速度慢,而且将占用大量的磁盘空间 。 因此,
在进行数据库备份时,一般常将其安排在凌晨,因为此时整个数据库系统几乎不进行其它事务操作,从而可以提高数据库备份的速度 。
2,事务日志备份事务日志备份是指对数据库发生的事务进行备份,包括从上次进行事务日志备份,差异备份和完整数据库备份之后,
所有已经完成的事务,但事务日志备份前,至少应有一次完整数据库备份 。 还原的时候,必须先还原完整数据库备份,再还原差异备份 ( 如果有的话 ),再按照事务日志备份的先后顺序,
依次还原各次日志备份的内容;这种备份生成的备份文件最小,
需要的时间也最短,对 SQL Server服务性能的影响也最小,适宜于经常备份 。
第
10
章数据库的备份和恢复
< >
10.2 备份类型
3,差异备份差异备份是指将最近一次数据库完整备份以来对数据所做的修改进行备份,因此差异备份实际上是一种增量数据库备份 。 与完整数据库备份相比,差异备份由于备份的数据量较小,
所以备份和恢复所用的时间较短,可以经常进行差异备份 。 通过增加差异备份的备份次数,可以降低丢失数据的风险,将数据库恢复至进行最后一次差异备份完成时的那一点,但它无法像事务日志备份那样提供到时间点的无数据损失备份,它只允许在实际所做的备份点上恢复 。
4,文件或文件组备份文件或文件组备份只备份数据库中的个别文件或文件组 。
常常用于对重要数据的备份,它要求在数据库设计时,就做好全面考虑,把需要单独做备份的表进行分组,给它们分配不同的文件组 ( 表只能放在文件组上,一个文件组可以是一个文件或多个文件 ),这样才能在做备份的时候,单独备份这些数据 。
第
10
章数据库的备份和恢复
< >
10.3 备份策略根据前面掌握的信息和材料,就可以从实际情况出发选择合适的备份策略了 。 常用的备份选择方案有:仅进行完整数据库备份,或在进行完整数据库备份的同时进行事务日志备份,
或使用完整数据库备份和差异数据库备份 。
1,完整数据库备份策略
2,日志备份策略创建定期的数据库完整备份,并在两次数据库完整备份之间按一定的时间间隔创建差异备份,再按一定的时间间隔创建日志备份 。
3,差异备份策略创建定期的数据库完整备份,并在两次数据库完整备份之间按一定的时间间隔创建差异备份,增加差异备份的次数
( 如每隔四~五小时备份一次 ),以减少备份时间 。
第
10
章数据库的备份和恢复
< >
10.4 备份设备备份设备是 SQL Server能存储数据库或事务日志备份拷贝的地方 。 创建备份时,必须选择存放备份数据的备份设备 。
10.4.1 备份设备的类型备份设备可以是本地机器上的磁盘文件,远程服务器上的磁盘文件,磁带以及命名管道 。 当创建一个备份设备时,需要给它指定一个逻辑设备名称和一个物理设备名称 。
1,磁盘备份设备磁盘备份设备可以位于本地机器上或一个网络服务器上的硬盘或其它磁盘存储媒体上的文件 。
2,磁带备份设备磁带备份设备的用法与磁盘设备相同 。 但 SQL Server中仅支持本地磁带设备,不支持远程磁带设备 。
第
10
章数据库的备份和恢复
< >
10.4.2 创建备份设备
1,使用 T-SQL语句创建备份设备使用系统存储过程 sp_addumpdevice可以用来创建备份设备 。 其语法格式为:
sp_addumpdevice [ @devtype = ] 'device_type',
[ @logicalname = ] 'logical_name',
[ @physicalname = ] 'physical_name'
[,{ [ @cntrltype = ] controller_type
| [ @devstatus = ] 'device_status' }
]
第
10
章数据库的备份和恢复
< >
10.4.2 创建备份设备
【 例 10-1】 分 别 创 建 一 个 本 地 磁 盘 备 份 设 备
DISKBackup_Edu;网络磁盘备份设备 NETBackup_Edu和本地磁带备份设备 TAPEBackup_Edu。
USE master
-- 创建本地磁盘备份设备
EXEC sp_addumpdevice 'disk','DISKBackup_Edu',
'E:\Backups\Edu\Backup_Edu.bak'
-- 创建网络磁盘备份设备
EXEC sp_addumpdevice 'disk','NETBackup_Edu',
'\\JINLQSERVER\ShareEdu\Edu\Backup_Edu.bak'
-- 创建本地磁带备份设备
EXEC sp_addumpdevice 'tape','TAPEBackup_Edu',
'\\.\TAPE0'
第
10
章数据库的备份和恢复
< >
10.4.2 创建备份设备
2,使用企业管理器创建备份设备
1) 启动企业管理器,展开相应的服务器组和服务器节点 。
2) 展开,管理,节点,右击,备份,项,在出现的快捷菜单中选择,新建备份设备,菜单项,系统将弹出如图 10-1所示的,备份设备属性 -新设备,对话框 。
3) 在,名称,框中输入需创建备份设备的逻辑名称 。
4) 在下半部分中选择备份设备的物理名称 。 可以选择的有
,磁带驱动器名,和,文件名,。 由于系统中没有安装磁带驱动器,故在此,磁带驱动器名,为灰色不能选择 。 在,文件名,
对应的输入框中输入磁盘备份设备所使用的物理文件名或通过单击其后的,” 按钮,在,备份设备位置,对话框中从本地计算机上选择一个物理文件 。
5) 单击,确定,按钮,关闭图 10-1对话框,完成创建备份设备工作 。
第
10
章数据库的备份和恢复
< >
10.4.3 查看备份设备运行系统存储过程 sp_helpdevice可以方便地查看系统中已创建的备份设备,也可以在企业管理器中查看,步骤如下:
1) 启动企业管理器,展开相应的服务器组和服务器节点 。
2) 展开,管理,节点,单击出现的,备份,项,
在右边的,备份项目,列表框中就可看到系统中所有已创建的备份设备,如图 10-2所示 。
3),备份项目,列表框中的每行就是一个备份设备,可以在上面查看到每个备份设备的逻辑名称,对应的物理名称及设备的类型 。
第
10
章数据库的备份和恢复
< >
10.4.4 删除备份设备当备份设备不再使用时,就可以将其删除 。
1,使用系统存储过程删除备份设备系统存储过程 sp_dropdevice的语法格式为:
sp_dropdevice [ @logicalname = ] 'device_name'
[,[ @delfile = ] 'delfile' ]
2,使用企业管理器删除备份设备
1) 启动企业管理器,展开相应的服务器组和服务器节点 。
2) 展开,管理,节点,单击出现的,备份,项,在右边的
,备份项目,列表框中就可看到系统中所有已创建的备份设备,
如图 10-2所示 。
3) 在,备份项目,列表框中右击需删除的备份设备,在弹出的快捷菜单中选择,删除,菜单项,系统将弹出,确实需要删除备份设备,确认对话框,单击,是,按钮确认删除 。
第
10
章数据库的备份和恢复
< >
10.5 备份
10.5.1 备份前的准备为了将数据库完整,安全地备份,应在具体执行备份操作之前,根据系统环境和实际需要制订一个切实可行的备份计划是十分重要的,以确保数据库的安全 。
10.5.2 使用 T-SQL进行数据备份使用 BACKUP语句可以进行整个数据库,事务日志,
一个或多个文件或文件组的备份 。 不同的备份,使用的 BACKUP语句是不同的 。
1,备份整个数据库
2,备份特定的文件或文件组
3,备份事务日志第
10
章数据库的备份和恢复
< >
完整数据库备份、差异备份
【 例 10-3】 完整数据库备份 。 将 Educational数据库整个备份到 DISKBackup_Edu备份设备上,并为备份集设置密码 。
BACKUP DATABASE Educational TO DISKBackup_Edu
【 例 10-4】 差异备份 。 对 Educational数据库进行差异备份,
备份到 DISKBackup_Edu备份设备上 。
进行差异备份前,必须至少进行一次完整数据库备份 。
使用 BACKUP DATABASE命令时,除需要指定备份数据库的名称,
备份设备外,还必须指定子句 DIFFERENTIAL。 实现该例任务的
BACKUP DATABASE命令如下:
BACKUP DATABASE Educational TO DISKBackup_Edu
WITH DIFFERENTIAL
第
10
章数据库的备份和恢复
< >
差异备份、事务日志备份
【 例 10-4】 差异备份 。 对 Educational数据库进行差异备份,
备份到 DISKBackup_Edu备份设备上 。
进行差异备份前,必须至少进行一次完整数据库备份 。 使用 BACKUP
DATABASE命令时,除需要指定备份数据库的名称,备份设备外,还必须指定子句 DIFFERENTIAL。 实现该例任务的 BACKUP DATABASE命令如下:
BACKUP DATABASE Educational TO DISKBackup_Edu
WITH DIFFERENTIAL
【 例 10-5】 事务日志备份 。 将 Educational数据库的事务日志备份到 E:\Backups\Edu\Backup_Edu_Log.bak文件中 。
进行事务日志前,必须至少进行一次完整数据库备份 。 事务日志的备份应使用 BACKUP LOG命令 。 实现该例任务的 BACKUP DATABASE命令如下:
BACKUP LOG Educational TO
DISK='E:\Backups\Edu\Backup_Edu_Log.bak'
WITH PASSWORD='MyPass'
第
10
章数据库的备份和恢复
< >
文件与文件组备份
【 例 10-6】 文件与文件组备份 。 将 Educational数据库中的
Edu_data文件备份到 DISKBackup_Edu备份设备中 。
使用 BACKUP DATABASE命令进行文件或文件组备份时,除需要指定备份数据库的名称,备份设备外,还必须指定 FILE( 文件 ) 子句或 FILEGROUP( 文件组 ) 子句 。 实现该例任务的
BACKUP DATABASE命令如下:
BACKUP DATABASE Educational
FILE = 'Edu_data'
TO DISKBackup_Edu
在查询分析器中执行上述命令,就可将 Educational数据库的 Edu_data文件备份到 DISKBackup_Edu备份设备中 。
第
10
章数据库的备份和恢复
< >
10.5.3 使用企业管理器进行数据备份
1,完整数据库备份
1) 启动企业管理器,展开相应的服务器组和服务器节点 。
2) 展开,数据库,节点,右击要备份的数据库,在出现的快捷菜单中执行,所有任务,→,备份数据库,菜单项,系统弹出,SQL Server备份,对话框,如图 10-4所示 。
3),数据库,列表框中选择要备份的数据库,默认情况下被选中的是刚才用右键单击的那个数据库 。
4),名称,输入框内为备份输入一个便于识别的名称,这里为,Educational 完整备份,。
5),描述,框中为该备份输入一个描述性信息 ( 可选 ),
这里输入,第二次完整备份 050218”。
6) 在,备份,单选按钮组中单击,数据库 - 完全,选钮,
进行完全数据库备份 。 注意完整数据库备份是其它备份的基础 。
第
10
章数据库的备份和恢复
< >
10.5.3 使用企业管理器进行数据备份
7),目的,栏下的列表框中显示出曾对该数据库进行备份时使用的备份设备或备份文件名 。 单击,添加,按钮,可以添加备份设备或备份文件名,出现如图 10-5所示的,选择备份目的,对话框,在该对话框中选择,文件名,单选钮表示使用临时性的备份文件存储数据库的备份内容;选择,备份设备,单选钮表示使用永久性的现有备份设备或创建新的备份设备存储数据库的备份内容 。
8) 在图 10-4的,重写,选项下,单击,追加到媒体,单选钮,将备份追加到现有的备份设备上;单击,重写现有媒体,
单选钮 ( 相当于在 SQL语句中使用了 FORMAT子句 ),则将覆盖备份设备中原有的内容 。 这里选择,重写现有媒体,。
9) 图 10-4的,调度,复选框用来设定备份计划,即调度备份操作在以后执行或定期执行 ( 可选 ) 。
第
10
章数据库的备份和恢复
< >
10.5.3 使用企业管理器进行数据备份
10) 单击,选项,选项卡,进入如图 10-7所示的,SQL
Server备份,对话框,选项,页 。
11) 在图 10-7中通过设置,完成后验证备份,复选框决定是否进行备份设备的验证 。
12) 通过设置,检查媒体集名称和备份集到期时间,复选框,
检查备份媒体以防意外重写 。 在,媒体集名称,框中,输入将用于备份操作的媒体名称 。
13) 若是第一次使用备份媒体,或者要更改现有的媒体标签,
则在,媒体集标签,框下选择,初始化并标识媒体,复选框,
然后输入媒体集名称和媒体集描述 。 只有在重写媒体时才能对其进行初始化和标识设置 。
14) 单击,确定,按钮,系统按前述设置进行备份,备份完成后出现,数据库备份成功,信息框,单击,确定,按钮,即可完成数据库的完全备份 。
第
10
章数据库的备份和恢复
< >
差异数据库备份、事务日志备份
2,差异数据库备份除第 6)步选择,数据库 – 差异,,第 8)步一般选择,追加到媒体,外 ( 备份数据放入同一备份设备中 ),与完整数据库备份操作相同 。
3,事务日志 备份除第 6)步选择,事务日志,,第 8)步一般选择
,追加到媒体,外 ( 备份数据放入同一备份设备中 ),
与完整数据库备份操作相同 。
第
10
章数据库的备份和恢复
< >
4.文件与文件组备份除第 6)步选择,文件和文件组,外,与完整数据库备份操作相同 。 在第 6)步中,单击,文件和文件组,,并单击文本框右边的按钮,出现如图 10-8所示的,指定文件组和文件,对话框 。 该对话框中显示了该数据库中存在的文件组和文件,选中需要备份的文件组或文件前的复选框,单击,确定,按钮即可完成备份文件组和文件的任务 。
第
10
章数据库的备份和恢复
< >
10.6 还原虽然每个数据库管理员都有一个美好愿望:希望永远不要出现还原数据库的情况 。 但任何数据库系统都不能保证不出现意外的崩溃状况,因此对一个 DBA来说,掌握数据库的还原技术是必要的 。
10.6.1 数据库恢复的概念有两种情况需要执行恢复数据库的操作:
( 1) 数据库或数据损坏 。
因为用户误删了数据库里的关键数据,或数据库文件被意外损坏,以及服务器里硬盘驱动器损坏等情况 。
( 2) 因维护任务或数据的远程处理从一个服务器向另一个服务器拷贝数据库 。
数据库恢复是数据库备份的逆向操作,是将先前所做的数据库备份加载并应用事务日志重建数据库的过程 。 执行恢复操作,
可以重新创建备份数据库完成时数据库中存在的相关文件,但备份后对数据库的所有修改将不能被恢复而丢失 。
第
10
章数据库的备份和恢复
< >
10.6.2 数据库恢复模型
1,简单恢复模型使用简单恢复模型,数据只能恢复到最新的完整数据库备份或差异备份的即时点,而不能将数据库还原到故障点或特定的即时点 。 若要还原到这些点,就需要选择完全恢复或大容量日志记录恢复模型 。
2,完全恢复模型完全恢复模型为数据提供了最大的保护性和灵活性 。 该模型依靠事务日志提供完全的可恢复性,并有效地防止故障所造成的数据损失,有将数据库恢复到故障点或特定即时点的能力 。
为保证这种恢复程度,包括大容量操作 ( 如 SELECT INTO、
CREATE INDEX 和大容量装载数据 ) 在内的所有操作都将完整地记入日志 。
3,大容量日志记录恢复模型大容量日志记录模型为数据提供了最大的保护性 。 该模型为某些大规模操作 ( 如创建索引或大容量复制 ) 提供了更高的性能和最少的日志使用空间 。
第
10
章数据库的备份和恢复
< >
10.6.3 查看备份信息
1,查看备份集内的数据和日志文件可以使用 RESTORE FILELISTONLY语句查看备份集内包含的数据库和日志文件列表组成的结果集 。
RESTORE FILELISTONLY语句的语法格式如下:
RESTORE FILELISTONLY
FROM < backup_device >
[ WITH
[ FILE = file_number ]
[[,]PASSWORD = { password | @password_variable } ]
]
【 例 10-7】 查看 DISKBackup_Edu备份设备中所包含的数据库和日志文件列表组成的结果集 。
RESTORE FILELISTONLY
FROM DISKBackup_Edu
第
10
章数据库的备份和恢复
< >
10.6.3 查看备份信息
2,查看备份首部信息可以使用 RESTORE HEADERONLY语句查看备份设备上所有备份集的首部信息 。 其语句格式与 RESTORE FILELISTONLY语句相同,参数也一样,所不同的只是将 RESTORE FILELISTONLY换成 RESTORE HEADERONLY即可 。
第
10
章数据库的备份和恢复
< >
10.6.4 T-SQL还原数据库
1,还原完整数据库备份
RESTORE DATABASE {database_name | @database_name_var}
[ FROM < backup_device > [,...n ] ]
[ WITH
[ RESTRICTED_USER ]
[[,] FILE = { file_number | @file_number } ]
[[,]PASSWORD={ password | @password_variable }]
[[,]{NORECOVERY|RECOVERY|STANDBY= undo_file_name}]
]
【 例 10-8】 从 DISKBackup_Edu备份设备上还原完整数据库备份 。
USE Master
GO
RESTOREDATABASE Educational FROM DISKBackup_Edu
第
10
章数据库的备份和恢复
< >
2,还原数据库的部分内容
RESTORE DATABASE { database_name | @database_name_var }
< file_or_filegroup > [,...n ]
[ FROM < backup_device > [,...n ] ]
[ WITH
{ PARTIAL }
[ [,] FILE = { file_number | @file_number } ]
[[,] PASSWORD = { password | @password_variable } ]
[ [,] NORECOVERY ]
]
【 例 10-9】 从 DISKBackup_Edu备份设备上还原差异数据库备份 。
RESTOREDATABASE Educational FROM DISKBackup_Edu
WITH NORECOVERY /* 先还原完整数据库备份,需指定 NORECOVERY */
RESTORE DATABASE Educational FROM DISKBackup_Edu
WITH FILE = 2,RECOVERY /* 在还原完整数据库备份的基础上,还原差异备份 */
第
10
章数据库的备份和恢复
< >
3,还原文件与文件组备份
RESTORE DATABASE { database_name |
@database_name_var }
< file_or_filegroup > [,...n ]
[ FROM < backup_device > [,...n ] ]
[ WITH
[ RESTRICTED_USER ]
[ [,] FILE = { file_number | @file_number } ]
[ [,] PASSWORD = { password |
@password_variable } ]
[ [,] NORECOVERY ]
]
第
10
章数据库的备份和恢复
< >
3,还原文件与文件组备份
【 例 10-10】 从 E:\Backups\Edu\Backup_Edu_Log.bak文件上还原事务日志备份 。
还原事务日志备份一般应执行以下步骤:
( 1) 先还原最新的完整数据库备份,并指定 NORECOVERY子句;
( 2) 还原最后一次所做的差异备份,并指定 NORECOVERY子句;
( 3) 按照创建时的相同顺序,还原自完整数据库备份或差异备份后创建的每个事务日志备份 。
RESTOREDATABASE Educational FROM DISKBackup_Edu
WITH NORECOVERY /* 先还原完整数据库备份,需指定 NORECOVERY */
RESTORE DATABASE Educational FROM DISKBackup_Edu
WITH FILE = 2,NORECOVERY/* 在还原完整数据库备份的基础上,还原差异备份 */
RESTORE LOG Educational FROM DISK
='E:\Backups\Edu\Backup_Edu_Log.bak'
WITH PASSWORD='MyPass',NORECOVERY /* 还原第一次事务日志备份 */
RESTORE LOG Educational FROM DISK
='E:\Backups\Edu\Backup_Edu_Log.bak'
WITH FILE = 2,RECOVERY /* 还原第二次事务日志备份 */
第
10
章数据库的备份和恢复
< >
10.6.5 使用企业管理器还原数据库
1,从完整数据库备份中还原数据
1) 启动企业管理器,展开相应的服务器组和服务器节点 。
2) 右击,数据库,节点,在出现的快捷菜单中执行,所有任务,→,还原数据库,菜单项,系统弹出如图 10-9所示,还原数据库,对话框 。
3) 在,还原为数据库,列表框中选择或输入要还原到的数据库,这里为,Educational”。
4) 因前面对数据库进行完整数据库备份时使用了备份设备
DISKBackup_Edu,故还原时须使用从备份设备中还原 。 因此,
在,还原,单选按钮组中选择,从设备,单选项 。
5),参数,中的,设备,列表框中列出了从哪些设备中还原数据 。 单击其后的,选择设备,按钮,出现如图 10-10所示
,选择还原设备,对话框 。
第
10
章数据库的备份和恢复
< >
10.6.5 使用企业管理器还原数据库
6) 单击,添加,按钮,出现如图 10-11所示,选择还原目的,对话框 。
7) 选择,备份设备,单选项,并从,备份设备,
下拉式列表框中选中,DISKBackup_Edu” 备份设备 。
单击,确定,按钮,返回图 10-10,这时设备名列表框中将出现备份设备 DISKBackup_Edu的物理文件名 。
8) 单击,确定,按钮,返回图 10-9,这时设备列表框中将出现备份设备 DISKBackup_Edu的物理文件名 。
9) 在经过上述操作过后的图 10-9中,,备份号,
输入框中默认为 1,表示是该备份设备中的第一个备份集,单击,备份号,后的,查看内容,按钮,打开如图 10-12所示的,选择备份,对话框 。
第
10
章数据库的备份和恢复
< >
10.6.5 使用企业管理器还原数据库
10) 在图 10-12的列表框中列出了该备份物理文件中存在的备份 ( 注:每行一次备份,前面已在该备份设备中执行了一次完整数据库备份,一次差异备份和一次文件与文件组备份,因此这里显示为三行 ),并默认选中相应备份集前的复选框,可以按照恢复的需要对复选框进行重选 ( 只能选一个 ),选择后单击,确定,按钮返回图 10-9,系统将根据图 10-12中的选择自动设置,备份号,及选中,还原备份集,单选钮组中的相应单选按钮,因这里选择的,备份号,是 1,故系统自动选中
,数据库 -完全,单选按钮,表示将从完整数据库备份中还原 。
11) 单击,选项,选项卡,进入如图 10-13所示,还原数据库,对话框的,选项,选项页 。
12) 在图 10-13中,系统显示出还原数据库的逻辑文件名和物理文件名,可以根据需要改变逻辑文件名和物理文件名 。
13) 单击,确定,按钮,系统根据上述设置的参数,进行完整数据库备份的恢复 。
第
10
章数据库的备份和恢复
< >
2,从差异备份中还原数据在执行从差异备份还原数据前,必须先执行一次从完整数据库备份中还原数据的操作 。 执行从差异备份中还原数据的操作与执行从完整数据库备份中还原数据的操作大同小异,只是在第 9)步中的,备份号,输入框中输入 2( 即第二个备份集 ),并单击,备份号,
后的,查看内容,按钮即可,以后的操作与从完整数据库备份中还原数据的操作完全相同 。
数据库应用开发技术第
10
章数据库的备份和恢复 < >
3,从事务日志备份中还原数据在执行从事务日志备份还原数据前,必须先执行一次从完整数据库备份和差异备份 (若存在差异备份 )中还原数据的操作 。 事务日志的还原需要从该组的第一次事务日志开始,依次还原到该组的最后一个事务日志备份 。
因前面执行事务日志备份时使用的是物理文件名,
因此这里必须直接从物理文件中还原数据 。 若使用从设备还原,只需在第 9)步中将选中,还原备份集,单选钮中的,数据库 -完全,单选按钮改为选中,事务日志,即可 。
第
10
章数据库的备份和恢复
< >
4,从文件与文件组中还原数据因前面执行文件和文件组备份时使用的是备份设备,所以执行从文件与文件组备份中还原数据的操作与执行从完整数据库备份中还原数据的操作大同小异,
只是在第 9)步中的,备份号,输入框中输入 3( 即第三个备份集 ),并单击,备份号,后的,查看内容,
按钮即可,以后的操作与从完整数据库备份中还原数据的操作完全相同 。
第
10
章数据库的备份和恢复
< >