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

 找回密码
 注册

QQ登录

只需一步,快速开始

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

sqlserver结尾日志备份

[复制链接]
跳转到指定楼层
楼主
发表于 2026-5-10 10:57:02 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
“结尾日志备份”捕获尚未备份的任何日志记录(日志尾部),以防工作丢失并确保日志链完好无损。
在将 SQL Server 数据库恢复到其最近一个时间点之前,必须先备份数据库的事务日志。 结尾日志备份是数据库恢复计划中相关的最后一个备份。

并非所有还原方案都要求执行结尾日志备份。 如果恢复点包含在较早的日志备份中,则无需结尾日志备份。 如果准备移动或替换(覆盖)数据库,并且在最新备份后不需要将该数据库还原到某一时间点,则不需要结尾日志备份。

需要结尾日志备份的场景
建议在以下方案中执行结尾日志备份:
·如果数据库处于联机状态并且您计划对数据库执行还原操作,则从备份日志结尾开始。 要避免联机数据库出错,必须使用 WITH NORECOVERY Transact-SQL 语句的 选项。

·如果数据库处于脱机状态而无法启动,则需要还原数据库,从备份日志结尾开始。 由于此时不会发生任何事务,因此请使用 WITH NO_TRUNCATE 选项。 NO_TRUNCATE 实际上与仅复制事务日志备份相同。 由于此时不会发生任何事务,因此可以选择使用 WITH NORECOVERY。

·如果数据库损坏,则尝试使用 WITH CONTINUE_AFTER_ERROR 语句的 BACKUP 选项执行结尾日志备份。

在损坏的数据库上,仅当日志文件未受损、数据库处于支持结尾日志备份的状态并且数据库不包含任何大容量日志更改时,日志尾部备份才会成功。 如果无法创建结尾日志备份,则最新日志备份后提交的任何事务都将丢失。

BACKUP LOG 选项注释
NORECOVERY如果打算对数据库继续执行还原操作,请使用 NORECOVERY。 NORECOVERY 使数据库进入还原状态。 此步骤确保数据库在结尾日志备份后不会发生更改。 除非同时指定 NO_TRUNCATE 或 COPY_ONLY 选项,否则将截断日志。

重要提示:除非数据库受损或脱机,否则不建议使用 NO_TRUNCATE。 在使用 执行还原之前,可能需要将数据库置于NORECOVERY以获得独占访问权限。 还原后,请将数据库重新设置为多用户模式。
CONTINUE_AFTER_ERROR仅当要备份受损数据库的尾部时,才使用 CONTINUE_AFTER_ERROR。

对受损数据库备份日志尾部时,日志备份中正常捕获的部分元数据可能不可用。


包含不完整备份元数据的结尾日志备份
结尾日志备份可捕获日志尾部,即使数据库脱机、损坏或缺少数据文件。 这可能导致还原信息命令和 msdb 生成不完整的元数据。 但只有元数据是不完整的,而捕获的日志是完整且可用的。

如果结尾日志备份包含不完整的元数据,则 backupset 表中的 has_incomplete_metadata 设置为 1。 此外,在 RESTORE HEADERONLY的输出中,HasIncompleteMetadata 设置为 1。

如果结尾日志备份中的元数据不完整,则 backupfilegroup 表在结尾日志备份时会丢失文件组的大多数相关信息。 大多数 backupfilegroup 表列为 NULL;只有以下列有意义:
backup_set_id
filegroup_id
type
type_desc
is_readonly

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持 反对反对
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-5-25 12:55 , Processed in 0.259268 second(s), 21 queries .

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

© 2001-2020

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