示例:数据库的段落还原(完整恢复模式)
适用范围:SQL Server
段落还原顺序将从主文件组及所有具有读写权限的辅助文件组开始,在文件组级别分阶段还原和恢复数据库。
在此示例中,灾难发生后,数据库 adb
被还原到新计算机。 该数据库使用完整恢复模式,因此,开始进行还原之前必须先获取数据库的结尾日志备份。 灾难发生之前,所有文件组均处于联机状态。 文件组 B
是只读的。 必须还原所有辅助文件组,但这些辅助文件组将按重要性顺序进行还原: A
(最高), C
其次,最后为 B
。 在此示例中,存在四个日志备份,其中包括结尾日志备份。
结尾日志备份
在还原数据库之前,数据库管理员必须备份日志尾部。 由于数据库已损坏,因此创建结尾日志备份需要使用 NO_TRUNCATE 选项:
BACKUP LOG adb TO tailLogBackup WITH NORECOVERY, NO_TRUNCATE
结尾日志备份是在以下还原顺序中应用的最后一个备份。
还原顺序
注意
联机还原顺序的语法与脱机还原顺序的语法完全相同。
部分还原主文件组和辅助文件组
A
。RESTORE DATABASE adb FILEGROUP='Primary' FROM backup1 WITH PARTIAL, NORECOVERY RESTORE DATABASE adb FILEGROUP='A' FROM backup2 WITH NORECOVERY RESTORE LOG adb FROM log_backup3 WITH NORECOVERY RESTORE LOG adb FROM log_backup4 WITH NORECOVERY RESTORE LOG adb FROM log_backup5 WITH NORECOVERY RESTORE LOG adb FROM tailLogBackup WITH RECOVERY
对文件组
C
进行联机还原。此时,主文件组和辅助文件组
A
处于联机状态。 文件组B
和C
中的所有文件都处于恢复挂起状态,这两个文件组处于脱机状态。来自步骤 1 中的最后一条
RESTORE LOG
语句的消息指出:由于文件组C
不可用,因此涉及此文件组的事务回滚已延迟。 可继续执行常规操作,但这些事务将持有锁并且在完成回滚前不会截断日志。在第二个还原顺序中,数据库管理员将还原文件组
C
:RESTORE DATABASE adb FILEGROUP='C' FROM backup2a WITH NORECOVERY RESTORE LOG adb FROM log_backup3 WITH NORECOVERY RESTORE LOG adb FROM log_backup4 WITH NORECOVERY RESTORE LOG adb FROM log_backup5 WITH NORECOVERY RESTORE LOG adb FROM tailLogBackup WITH RECOVERY
此时,主文件组和文件组
A
以及C
处于联机状态。 文件组B
中的文件仍保持恢复挂起状态,而该文件组处于脱机状态。 解析延迟的事务后,日志被截断。对文件组
B
进行联机还原。
在第三个还原顺序中,数据库管理员将还原文件组 B
。 文件组 B
的备份是在该文件组变为只读状态之后进行的,因此,在恢复过程中无需将其前滚。
RESTORE DATABASE adb FILEGROUP='B' FROM backup2b WITH RECOVERY
所有文件组现在都处于联机状态。
其他示例
另请参阅
BACKUP (Transact-SQL)
联机还原 (SQL Server)
应用事务日志备份 (SQL Server)
RESTORE (Transact-SQL)
段落还原 (SQL Server)