首先对数据库进行完整备份,然后在对数据库进行下一次完整备份前,可以对数据库进行差异备份。
如果数据库发生了故障,首先进行完整备份还原,然后按差异备份的时间顺序进行差异备份还原。
参考资料:sqlserver联机丛书
操作(数据库引擎) > 管理(数据库引擎) > 在 SQL Server 中备份和还原数据库 >
还原完整数据库
通常,将数据库恢复到故障点分为下列基本步骤:
- 备份活动事务日志(称为日志尾部)。此操作将创建结尾日志备份。如果活动事务日志不可用,则该日志部分的所有事务都将丢失。
- 还原最新完整数据库备份而不恢复数据库 (RESTORE DATABASE database_name FROM backup_device WITH NORECOVERY)。
- 如果存在差异备份,则还原最新的差异备份而不恢复数据库 (RESTORE DATABASE database_name WITH NORECOVERY)。
- 从还原备份后创建的第一个事务日志备份开始,使用 NORECOVERY 依次还原日志。
- 恢复数据库 (RESTORE DATABASE database_name WITH RECOVERY)。此步骤也可以与还原上一次日志备份结合使用。
- 数据库完整还原通常可以恢复到日志备份中的某一时间点或标记的事务。但是,在大容量日志恢复模式下,如果日志备份包含大容量更改,则不能进行时点恢复。有关详细信息,请参阅将数据库还原到备份中的某个时间点。
故障发生后 (1),将创建结尾日志备份 (2)。接着,将数据库还原到该故障点。这涉及到还原数据库备份、后续差异备份以及在差异备份后执行的每个日志备份,包括结尾日志备份。
联机丛书上有一个图,很好的说明了这个过程:
出现故障后,首先创建结尾日志备份,然后再开始将数据库恢复到故障点。
1)完整数据库备份
2)差异数据库备份
3)例行日志备份
4)结尾日志备份
参考联机丛书:管理(数据库引擎) > 在 SQL Server 中备份和还原数据库 > 实现 SQL Server 数据库还原方案 >
对于大多数情况,在完整恢复模式或大容量日志恢复模式下,SQL Server 2005 及更高版本要求您备份日志结尾以捕获尚未备份的日志记录。还原操作之前对日志尾部执行的日志备份称为“结尾日志备份”。
结尾日志备份可以防止工作丢失并确保日志链的完整性。将数据库恢复到故障点时,结尾日志备份是恢复计划中的最后一个相关备份。如果无法备份日志尾部,则只能将数据库恢复为故障前创建的最后一个备份。
语句:BACKUP LOG 数据库名称 TO <备份设备> WITH NORECOVERY
参考:管理(数据库引擎) > 在 SQL Server 中备份和还原数据库 > 使用事务日志备份 >