Mike Diaz Asked: 2013-06-20 11:52:49 +0800 CST2013-06-20 11:52:49 +0800 CST 2013-06-20 11:52:49 +0800 CST 将 Change Data Capture 与频繁变化的模式结合使用 772 我们遵循敏捷开发流程,在这种情况下,这意味着我们经常更改数据库架构,例如添加新列、将数据移动到其他列等。 是否有一种机制可以将 CDC 表更新为新模式,在迁移数据库模式时是否有关于如何处理捕获数据的最佳实践? sql-server change-data-capture 2 个回答 Voted Best Answer Aaron Bertrand 2013-06-20T11:55:04+08:002013-06-20T11:55:04+08:00 架构更改的机制是您禁用表的 CDC,然后重新启用它。这当然意味着您会丢失所有历史记录,因此如果您想要最近模式更改之前的历史记录,您还需要构建一种机制来将其卸载到某个地方。 也许更好的答案是,一旦您最初测试了 CDC,请将其禁用,直到您对架构更稳定感到满意为止。 Hein 2013-06-21T11:19:54+08:002013-06-21T11:19:54+08:00 我同意 Aaron 的观点,为了开发系统的目的,您可能希望以特定的时间间隔证明和重新证明,并可能通过在目标处呈现更稳定环境的转换来禁用它。 请注意,有一些商业工具可以轻松执行此任务。 Attunity,具有功能齐全的“复制”产品。定义一个源数据库;定义一个目标;包括或排除所需的表(通配符);可选地定义一些每表或全局转换;并“点击”进行复制。所有源数据更改以及元数据更改都将近乎实时地应用于目标。即使新表也会出现...如果它们符合(动态)表名匹配条件。对于开发环境来说,这可能有点矫枉过正,但是嘿,如果这就是您所需要的……很可能还有其他产品可以实现这一目标。 免责声明:我为 Attunity 工作
架构更改的机制是您禁用表的 CDC,然后重新启用它。这当然意味着您会丢失所有历史记录,因此如果您想要最近模式更改之前的历史记录,您还需要构建一种机制来将其卸载到某个地方。
也许更好的答案是,一旦您最初测试了 CDC,请将其禁用,直到您对架构更稳定感到满意为止。
我同意 Aaron 的观点,为了开发系统的目的,您可能希望以特定的时间间隔证明和重新证明,并可能通过在目标处呈现更稳定环境的转换来禁用它。
请注意,有一些商业工具可以轻松执行此任务。
Attunity,具有功能齐全的“复制”产品。定义一个源数据库;定义一个目标;包括或排除所需的表(通配符);可选地定义一些每表或全局转换;并“点击”进行复制。所有源数据更改以及元数据更改都将近乎实时地应用于目标。即使新表也会出现...如果它们符合(动态)表名匹配条件。对于开发环境来说,这可能有点矫枉过正,但是嘿,如果这就是您所需要的……很可能还有其他产品可以实现这一目标。
免责声明:我为 Attunity 工作