【问题标题】:MS SQL Server restart CDC to read from beginning after cleanupMS SQL Server 重新启动 CDC 以在清理后从头开始读取
【发布时间】:2022-01-29 23:29:36
【问题描述】:

最近我开始在 MS SQL Server 上使用 CDC。我有一个场景。

  1. 在 SQL Server 上启用 CDC
  2. 在某个表上启用了 CDC
  3. 使用 debezium 连接器连接到 kafka 的数据
  4. 数据已被 cdc 清理作业清除

是否可以从头开始再次运行 cdc 捕获更改?比如重启整个 CDC 进程到初始点?

【问题讨论】:

    标签: sql-server apache-kafka apache-kafka-connect debezium change-data-capture


    【解决方案1】:

    有点,但你可能喜欢也可能不喜欢。

    您似乎正在寻找“我可以找回丢失的更改历史吗?”。答案是“不是真的”。但你有选择。

    如果您有包含 CDC 的数据库的历史备份,您可以在某处恢复这些备份并从中获取 CDC 数据。根据您的数据库大小、CDC 数据的配置保留时间以及变化率(即捕获了多少变化数据),这可能不是一个好的选择。也就是说,假设您有一个月前的备份,并且您配置的保留期为两天。一旦你恢复数据库,它就会有一个月前两天的变化数据。您可以继续恢复连续更新的备份以恢复到当前,但这对我来说似乎很多。

    如果您使用 CDC 使目标与源保持同步,您可以在某处恢复源数据库的备份,或者使用它的数据库快照来获取数据的初始状态,然后使用 CDC 数据从那时起(基于源的 LSN)。

    【讨论】:

      【解决方案2】:

      听起来您要求的是快照,而不仅仅是 CDC……Debezium 维护一个历史主题,Kafka Source 连接器也存储偏移量。

      可以修改这些主题,以便您重置两者。例如,这里是blog explaining how it's done with the FileStream source connector

      否则,使用不同名称重新发布新的 Debezium 连接器应该会达到相同的效果

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-12-26
        • 2019-08-18
        • 1970-01-01
        • 1970-01-01
        • 2020-04-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多