我们刚刚遇到了一个问题,即新附加的 Dev 实例“拾取”了对以前的 Dev 数据库进行的架构更改,但在将其重命名并附加为 Dev 之前,Live DB 副本中不存在这些更改。
Dev DB 作为一个日志传送备用数据库开始,它完全恢复、分离,文件被重命名,然后作为新的 Dev DB 重新连接。请注意,之前的 Dev 数据库并没有被删除,只是被分离了。另请注意,旧的和新的 Dev DB 都是同一原始数据库的“分支”。
现在这是一个开发/测试环境,所以它不是特别成问题,但它让我担心我们会针对一个静默更改的开发创建一些东西,这会在应用它时破坏 Live。
所以我的工作理论是,这与 SQL Server 内部使用的唯一标识符有关,并且可能与 Dev 更改的时间有关。
任何人都可以证实这一点或阐明这个问题吗?
编辑:更多细节架构更改涉及在几个表的末尾添加新的可为空列。因此,它们无疑是次要的,重要的是不涉及任何实际数据。此外,在重新附加之前,日志传送副本一直处于待机状态(因此为只读),我查看了查询日志以验证没有运行 DDL 更改。
也就是说,不幸的是我无法复制这个问题。只是为了测试它而创建的小型数据库不会发生这种情况,我删除了开发数据库并从完整备份重新创建它以解决问题,因此我无法重复确切的过程。
我提出这个问题的目的是确定我们是否经历了一次特殊的侥幸,或者我们的流程根本上是不健全的。我现在倾向于特殊的侥幸。