我正在将整个生产数据库从MS SQL迁移到My SQL服务器。我正在使用CDC和SQL Trace来做同样的事情。 CDC中的日志序列号(LSN)使我能够执行无冗余的操作。但CDC并没有为DDL操作提供更多的空间。
我尝试通过从cdc.ddl_history表读取更改然后采取必要的操作来解决问题(例如,在添加列的情况下,我启动了第二个Capture实例并与第一个实例同步)。现在,这很容易,因为我仍然有来自cdc.ddl_history表的LSN值。但这并不适合将表添加到数据库中,因为需要在每个表上启用cdc。
目前我有一个使用SQL Trace的解决方案,其中我通过运行表创建的例行服务然后在其上启用CDC来解决但我认为这会导致数据丢失,因为CDC不是实时的并且完全基于记录交易记录。
解决此问题的最佳方法是什么,从而最大限度地减少/不丢失数据?