MSSQL 恢复到时间点方法

1.数据库属性要用完全模式或者大容量日志模式

2.要有一个原始备份。加日志备份。

/*
使用STANDBY模式的完整还原流程
1. 首先还原完整备份(保持不变)
sql
RESTORE DATABASE [bhgl4] 
FROM DISK = N'K:\temp\y-09.bak' 
WITH FILE = 1, NORECOVERY, NOUNLOAD, REPLACE, STATS = 10
2. 应用第一个事务日志(使用STANDBY)
sql
RESTORE LOG [bhgl4] 
FROM DISK = N'K:\temp\yxw\20251009-235229.bak' 
WITH FILE = 658, STANDBY = N'K:\temp\yxw\standby_undo1.dat', NOUNLOAD, STATS = 10
3. 应用第二个事务日志到指定时间点(使用STANDBY)
sql
RESTORE LOG [bhgl4] 
FROM DISK = N'K:\temp\yxw\20251010-003336.bak' 
WITH FILE = 658, STANDBY = N'K:\temp\yxw\standby_undo2.dat', NOUNLOAD, STATS = 10, 
STOPAT = N'2025-10-10T15:07:28'
现在关键部分来了:

4. 检查数据是否正确
此时数据库处于STANDBY模式,您可以查询数据:

sql
-- 数据库处于只读状态,可以查询
SELECT * FROM bhgl4.dbo.您的表 WHERE ...
5. 如果时间点不对,继续应用下一个日志文件
情况A:如果第二个日志的STOPAT时间点不对,继续应用第三个日志

sql
-- 继续应用第三个日志文件(仍然使用STANDBY)
RESTORE LOG [bhgl4] 
FROM DISK = N'K:\temp\yxw\20251010-010926.bak' 
WITH FILE = 658, STANDBY = N'K:\temp\yxw\standby_undo3.dat', NOUNLOAD, STATS = 10
情况B:如果还想在第三个日志中指定新的时间点

sql
-- 在第三个日志中指定新的STOPAT时间点
RESTORE LOG [bhgl4] 
FROM DISK = N'K:\temp\yxw\20251010-010926.bak' 
WITH FILE = 658, STANDBY = N'K:\temp\yxw\standby_undo3.dat', NOUNLOAD, STATS = 10,
STOPAT = N'2025-10-10T15:20:00'  -- 新的时间点
6. 最终确定恢复
当找到正确的时间点后,完成恢复:

sql
-- 完成恢复,数据库变为可读写
RESTORE DATABASE [bhgl4] WITH RECOVERY

*/

--查看备份的时间点
--RESTORE HEADERONLY FROM  DISK = N'K:\temp\yxw\20251010-154146 .bak' WITH FILE =658, NOUNLOAD
--原始的完整备份
RESTORE DATABASE [bhgl4] FROM  DISK = N'K:\temp\y-09.bak' WITH  FILE = 1,  NORECOVERY,  NOUNLOAD,  REPLACE,  STATS = 10
--接近时间点的增量备份。其实就是日志
RESTORE LOG [bhgl4] FROM  DISK = N'K:\temp\yxw\20251009-235229.bak' WITH  FILE = 658,  NORECOVERY,  NOUNLOAD,  STATS = 10

--还原怀疑出错的地方 然后用 STANDBY 的方式。 加时间点,一个一个时间还原加去然后查数据。时间只能看顺序还原,不能逆向(比如还原到 10:23:10,就不能再还原到 10:22:00)
RESTORE LOG [bhgl4] FROM  DISK = N'K:\temp\yxw\20251010-150414.bak' WITH  FILE = 658,  STANDBY = N'K:\temp\yxw\standby_undo1.dat',  NOUNLOAD,  STATS = 10
--STANDBY 的文件名不要重复

--恢复到时间点后就可以查数据了。
--确定好就恢复状态
RESTORE DATABASE [bhgl4] WITH RECOVERY

 

posted @ 2025-10-16 10:29  Tag  阅读(4)  评论(0)    收藏  举报