【问题标题】:MS SQL Server restart CDC to read from beginning after cleanupMS SQL Server 重新启动 CDC 以在清理后从头开始读取
【发布时间】:2022-01-29 23:29:36
【问题描述】:
最近我开始在 MS SQL Server 上使用 CDC。我有一个场景。
- 在 SQL Server 上启用 CDC
- 在某个表上启用了 CDC
- 使用 debezium 连接器连接到 kafka 的数据
- 数据已被 cdc 清理作业清除
是否可以从头开始再次运行 cdc 捕获更改?比如重启整个 CDC 进程到初始点?
【问题讨论】:
标签:
sql-server
apache-kafka
apache-kafka-connect
debezium
change-data-capture
【解决方案1】:
有点,但你可能喜欢也可能不喜欢。
您似乎正在寻找“我可以找回丢失的更改历史吗?”。答案是“不是真的”。但你有选择。
如果您有包含 CDC 的数据库的历史备份,您可以在某处恢复这些备份并从中获取 CDC 数据。根据您的数据库大小、CDC 数据的配置保留时间以及变化率(即捕获了多少变化数据),这可能不是一个好的选择。也就是说,假设您有一个月前的备份,并且您配置的保留期为两天。一旦你恢复数据库,它就会有一个月前两天的变化数据。您可以继续恢复连续更新的备份以恢复到当前,但这对我来说似乎很多。
如果您使用 CDC 使目标与源保持同步,您可以在某处恢复源数据库的备份,或者使用它的数据库快照来获取数据的初始状态,然后使用 CDC 数据从那时起(基于源的 LSN)。