重庆思庄Oracle、KingBase、PostgreSQL、Redhat认证学习论坛
标题:
sqlserver 备份还原 恢复状态的三个选项意思
[打印本页]
作者:
mahan
时间:
2026-4-6 20:05
标题:
sqlserver 备份还原 恢复状态的三个选项意思
登录/注册后可看大图
3593069d3a0fac57bb.png
(172.11 KB, 下载次数: 35)
下载附件
2026-4-6 20:03 上传
这三个选项是 SQL Server 还原数据库时最核心的概念。
简单来说,这三个选项决定了“还原完当前这个文件后,数据库要处于什么状态”:
1. RESTORE WITH RECOVERY(默认选项:直接上线)
大白话: “我已经把所有该还原的文件都还原完了,结束吧!让数据库直接上线给用户用。”
作用: 数据库会回滚所有未提交的事务,保证数据一致性,状态变为正常可用(Online)。
注意: 一旦选了这个,数据库就彻底“封口”,拒绝接收任何后续的差异备份或日志备份了。
什么时候用: 只有在你还原最后一个备份文件(比如序列里的最后一个日志文件,或者你本来就只打算还原一个完整的 .bak 文件)时才选它。
2. RESTORE WITH NORECOVERY(挂起等待)
大白话: “别急,我还没还原完,后面还有差异备份或日志备份要接着往上打!”
作用: 数据库会一直保持在 “正在还原...” (Restoring...) 的脱机状态。用户连不上这个库,也不能查询数据。
注意: 它可以让数据库保持“半成品”状态,留着口子准备接收下一个 .bak 或 .trn 文件。
什么时候用: 当你有一连串文件要还原时,除了最后一个文件,前面的所有文件(完整备份、差异备份)都必须选这个选项。
3. RESTORE WITH STANDBY(只读备用)
大白话: “我后面还要接着还原日志,但我现在想先进去看一眼当前的数据对不对。”
作用: 数据库会变成 “备用/只读” (Standby/Read-Only) 状态。你可以用 SELECT 语句去查数据验证,但绝对不能修改。验证完之后,你还可以继续往上追加还原下一个日志备份。
什么时候用: 通常用于高级排查(比如你想精确还原到某个时间点,每还原一段日志就进去看一眼数据找回来了没),或者配置“日志传送”的高可用方案。日常普通的完整还原很少用到它。
结合手头上的三种文件(完整 + 差异 + 日志),完美通关流程就是:
还原完整备份 (test.bak) ➔ 选 RESTORE WITH NORECOVERY(告诉系统:等着,我还有文件)
还原差异备份 (test_diff.bak) ➔ 选 RESTORE WITH NORECOVERY(告诉系统:再等着,还有最后一个)
还原日志备份 (test_log.trn) ➔ 选 RESTORE WITH RECOVERY(告诉系统:齐活了,正式上线!)
欢迎光临 重庆思庄Oracle、KingBase、PostgreSQL、Redhat认证学习论坛 (http://bbs.cqsztech.com/)
Powered by Discuz! X3.2