Azure SQL无sys.sp_cdc_stop_job存储过程时如何重启CDC捕获作业
Azure SQL 数据库CDC捕获作业重启操作方案
Azure SQL 单库/弹性池的CDC作业由Azure后台托管,和本地SQL Server、Azure SQL托管实例不同,原生不提供sys.sp_cdc_stop_job、sys.sp_cdc_start_job这类用户可直接调用的作业启停存储过程,按以下步骤操作即可让修改后的CDC作业配置生效:
- 首先确认修改的CDC作业配置已成功写入,执行以下查询核对参数:
SELECT job_type, maxtrans, maxscans, continuous, pollinginterval FROM cdc.cdc_jobs WHERE job_type = 'capture'
如果返回的参数和你通过sp_cdc_change_job修改的配置一致,说明配置修改已成功落地。
- 无需等待后台自动重载(默认5分钟内自动生效),可直接执行以下命令手动触发配置重载,等价于重启捕获作业:
EXEC sys.sp_cdc_enable_db
该操作属于幂等操作,重复执行不会删除已有的CDC捕获实例、不会丢失已捕获的变更数据,也不会修改原有CDC配置,仅会触发后台捕获进程重新读取最新的作业配置。
- 配置重载完成后可执行以下查询验证生效状态:
SELECT TOP 10 tran_end_time FROM cdc.lsn_time_mapping ORDER BY tran_end_time DESC
观察最新返回的事务结束时间和当前时间的差值,确认和你设置的pollinginterval参数匹配即说明配置已生效。
如果你使用的是Azure SQL托管实例,仍找不到sys.sp_cdc_stop_job存储过程,说明你未在当前数据库开启CDC功能,先执行一次EXEC sys.sp_cdc_enable_db开启CDC后即可正常调用作业启停存储过程。
内容的提问来源于stack exchange,提问作者user17211472
相关产品推荐
相关产品推荐

