Debezium系列之:记录一次SQLServer数据库数据不采集,恢复采集造成下游承压的情况,以及相对应的详细解决方案
Debezium系列之:记录一次SQLServer数据库数据不采集,恢复采集造成下游承压的情况,以及相对应的详细解决方案
- 一、背景
- 二、查看CDC表情况
- 三、 排查数据库是否开启代理
- 四、排查表是否开启CDC
- 五、下游承压情况
- 六、解决方案
一、背景
- Connector状态正常,但几十台SQLServer数据库不采集数据了,因此需要定位排查数据库不采集的原因
思路:
- 查看CDC表是否有新数据
- 查看数据库代理是否开启
- 查看数据库表是否开启CDC
二、查看CDC表情况
- 发现CDC表没有新数据
- 进一步去排查数据库代理是否开启
三、 排查数据库是否开启代理
- 发现SQLServer数据库重启过,重启后代理没有开启
- 因此,需要开启SQLServer数据库代理
- 采集的表从采集中断以来有新数据的话,代理开启后,查看CDC表是否同步到新数据
- 如果CDC表有新数据,再去判断Debezium是否采集到数据,如果CDC表没有新数据,再去判断表的CDC设置情况
建议
- 把SQLServer数据库代理设置为自动开启,这样下次数据库重启后采集能够立即恢复
四、排查表是否开启CDC
EXEC sys.sp_cdc_help_change_data_capture
GO
- 代理恢复后,CDC表没有新数据,则去查看CDC表设置情况
- 可以考虑删除表的CDC设置,冲新设置表的CDC
表设置CDC可以参考下面的技术文章: