重庆思庄Oracle、KingBase、PostgreSQL、Redhat认证学习论坛
标题:
SQLSERVER有多个事务日志备份情况下的不完整恢复步骤
[打印本页]
作者:
郑全
时间:
2026-3-6 10:52
标题:
SQLSERVER有多个事务日志备份情况下的不完整恢复步骤
比如有一个全备,C:\dbbak\szdb-20260226.bak
两个事务日志的备份:
C:\dbbak\szdb_log_202602260622.bak
C:\dbbak\szdb_log_202602262122.bak
现在,想恢复到 2026--02-26 21:20,
步骤如下:
1. 查看备份文件中的备份集信息(确认备份类型和时间,可选)
RESTORE HEADERONLY
FROM DISK = N'C:\dbbak\szdb-20260226.bak'
GO
2. 恢复完整备份(NORECOVERY:保持数据库处于恢复状态,以便继续恢复日志)
RESTORE DATABASE szdb
FROM DISK = N'C:\dbbak\szdb-20260226.bak'
WITH NORECOVERY, -- 关键:不恢复数据库,等待日志恢复
REPLACE, -- 覆盖现有数据库(谨慎使用)
STATS = 10 -- 每完成10%显示进度
GO
3. 恢复第一个日志备份(NORECOVERY)
RESTORE LOG szdb
FROM DISK = N'C:\dbbak\szdb_log_202602260622.bak'
WITH NORECOVERY,
STATS = 10
GO
4. 恢复第二个日志备份,且指定时间点(RECOVERY完成恢复)
RESTORE LOG szdb
FROM DISK = N'C:\dbbak\szdb_log_202602262122.bak'
WITH RECOVERY, -- 最终恢复,数据库可用
STOPAT = N'2026-02-26 21:20:55', -- 核心:恢复到指定时间点
STATS = 10
GO
之后打开数据库即可验证
欢迎光临 重庆思庄Oracle、KingBase、PostgreSQL、Redhat认证学习论坛 (http://bbs.cqsztech.com/)
Powered by Discuz! X3.2