重庆思庄Oracle、KingBase、PostgreSQL、Redhat认证学习论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 89|回复: 0
打印 上一主题 下一主题

SQLSERVER有多个事务日志备份情况下的不完整恢复步骤

[复制链接]
跳转到指定楼层
楼主
发表于 2026-3-6 10:52:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

比如有一个全备,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


之后打开数据库即可验证
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持 反对反对
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|重庆思庄Oracle、Redhat认证学习论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2026-4-18 04:36 , Processed in 0.312439 second(s), 20 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

快速回复 返回顶部 返回列表