是否可以将 LDF 文件的“较新版本”与 MDF 文件的较旧版本结合起来,并将更改记录在 LDF 中?让我们假设在这期间没有日志备份,因为我想这真的不可能。
脚步:
- 数据库处于完全恢复模式
- 进行完整备份
- 做一些改变
- 分离数据库
- 制作 LDF 文件的文件副本
- 从步骤 2 中的完整备份恢复
- 分离数据库
- 制作 MDF 文件的文件副本
- 丢弃备份(重要步骤)
- 删除数据库
- 以某种方式使 MDF 和 LDF 一起播放,并且步骤 3 中所做的更改仍然存在。
仅附加 MDF 和 LDF 会出现错误:
传递给日志扫描数据库“mic”的日志扫描编号 (38:195:41) 无效。
我也尝试了一系列
- 创建数据库
- 使数据库脱机
- 替换 MDF 和 LDF 文件
- 上线
- 做一个日志备份
- 删除数据库
- 仅使用附加 MDF 文件创建数据库
- 进行完整备份
- 恢复完整备份(norecovery)
- 从步骤 5 恢复日志备份
我清楚地记得,这在一段时间内工作得很好,但后来就不行了。
此备份集中的日志终止于 LSN 38000000021300001,这对于应用于数据库来说太早了。可以还原包含 LSN 39000000006500001 的更新日志备份。
假设您希望数据库在事务上保持一致,不。
在这种情况下,这是因为日志编号无效,无论出于何种原因给定数据库文件的元数据。这是您所描述的确切过程的症状。在这种情况下,最好使用
create database
来重新生成日志(或 DBCC 命令),因为无论哪种方式,数据库都不会保持一致,而它已经不会与您概述的上述步骤保持一致。一个六个,另一个半打。