最近我开始在MS SQL Server上与CDC合作。我有一个场景。
- 在SQL Server上启用CDC
- 在某张桌子上颁布了CDC
- 使用kafka的debezium连接器获取的数据
- cdc清理作业已清除数据
是否可以从头开始再次运行cdc捕获更改?就像重新启动整个疾病控制与预防中心流程到初始点?
有点,但你可能喜欢也可能不喜欢。
你似乎在寻找";我能找回丢失的更改历史吗&";。答案是";不是真的";。但你有选择。
如果你有带有CDC的数据库的历史备份,你可以在某个地方恢复这些备份,并从中获取CDC数据。根据数据库的大小、对CDC数据配置的保留期以及更改率(即捕获了多少更改数据(,这可能不是一个好的选择。也就是说,假设您有一个月前的备份,并且您配置的保留期为两天。一旦恢复数据库,它将拥有一个月前两天的更改数据。您可以继续连续恢复较新的备份以获得最新备份,但这对我来说似乎很多
如果您使用CDC来保持目标与源同步,您可以在某个位置恢复源数据库的备份,也可以使用它的数据库快照来获取数据的初始状态,然后从那时起使用CDC数据(基于源的LSN(。
听起来你要求的是快照,而不仅仅是CDC。。。Debezium维护一个历史主题,Kafka Source连接器也存储偏移量。
可以对这些主题进行修改,以便重置这两个主题。例如,这里有一个博客解释了如何使用FileStream源连接器。
否则,重新发布具有不同名称的新Debezium连接器应该会获得相同的效果