本周我发现,数据库恢复选项NORECOVERY
和数据库恢复选项KEEP_CDC
是互斥的。所以,这就引出了问题。您如何使用完整备份和日志备份进行数据库还原,保持 CDC 完整?
KEEP_CDC
对 MSDN 等进行研究。除了指定的单个完整数据库还原之外,我找不到任何关于使用任何其他选项还原数据库的文档RECOVERY
。
我能够找到一个尝试完成完整日志和后续日志的尝试,而无需keep_cdc
等待最终日志。RECOVERY
直到那时,表才使用andKEEP_CDC
选项联机。结果是损坏的 CDC 架构,如此处所示。
如果打算进行KEEP_CDC
还原,您是否真的仅限于完整备份,或者是否有类似于上述尝试的机制在除原始服务器之外的服务器上的多文件还原期间保持其完整?
KEEP_CDC
将数据库还原到原始服务器时,更改数据捕获或 CDC 不需要关键字。将数据库恢复到原始服务器以外的服务器时,可以使用KEEP_CDC
关键字指定将更改数据捕获数据保留在数据库中。这是设计使然,并在 BOL中的标题为“恢复或附加启用更改数据捕获的数据库”部分下明确说明此代码显示 CDC 在
RESTORE DATABASE ... WITH NORECOVERY
将相同的备份还原到与新数据库名称相同的服务器上似乎可以保留 CDC: