我正在尝试通过使用CDC创建一个非常简单的复制过程来加快速度。假设我为表'A‘和'B’设置了CDC,它们碰巧具有FK关系,其中'A‘是父表,'B’是子表。我想将对这两个表的更改复制到另一个数据库。
我正在考虑创建一个SSIS包(或其他东西),它将定期读取与“A”和“B”相关联的CDC表,以将更改转移过来。我试图找到解决方案的问题是这样的。在我看来,因为'A‘和'B’之间存在FK关系,所以我必须知道处理这些更改的顺序。例如,如果在两个表中都插入了行,我可能必须先在'A‘中插入行,然后再插入'B’。或者,如果要从两个表中删除行,我可能必须先删除'B‘中的行,然后再删除'A’中的行。
所以,我的问题是。当我添加更多的表时,这会变得非常复杂,我该如何解决这个问题呢?
发布于 2010-10-15 03:05:54
这应该是一个问题:您只需按更改在主服务器上应用的顺序应用它们即可。由于更改在主服务器上通过了验证标准,因此它们也应该在副本服务器上通过。cdc.fn_cdc_get_all_changes返回的更改序列号是_$seqval,它派生自更改LSN。您只需遵循此序列号并逐个应用操作。
https://stackoverflow.com/questions/3936555
复制相似问题