gpt4 book ai didi

sql-server - CDC 已启用,但未填充 cdc.dbo_CT 表

转载 作者:行者123 更新时间:2023-12-03 02:02:48 28 4
gpt4 key购买 nike

我已使用以下步骤启用 CDC:

exec sys.sp_cdc_enable_db;

exec sys.sp_cdc_enable_table
@source_schema = N'dbo',
@source_name = N'table_name',
@role_name = N'CDC_Access',
@supports_net_changes = 1;

可以看到系统表中已经创建了一个CT表; SQL Server 代理已打开,我可以看到 cdc.db_name_capture 作业已创建并正在运行。

但是,即使正在填充 table_name 表,我也从未在 CT 表中看到任何内容。我有其他表在同一数据库中启用了 CDC,这些表正在更新,并且 CDC 正在为它们捕获数据并将其存储在为该特定表创建的 CT 表中。

为什么这个表无法捕获数据,而其他表可以捕获数据?

我在网上读到,这可能与事务日志变得太大有关,但我仍然有足够的剩余驱动器空间(~2TB 可用)。

我可以做什么来调试这个问题?

非常感谢您,提前! :)

编辑 1

这是exec sys.sp_cdc_help_change_data_capture的输出。 subscription_events 是我遇到问题的表。

enter image description here

编辑2

这是 exec sys.sp_cdc_help_jobs; 的输出。

enter image description here

编辑3

这是 select * from sys.dm_cdc_log_scan_sessions; 的输出。

enter image description here

这是 select * from sys.dm_cdc_errors; 的输出

enter image description here

编辑4

运行 select serverproperty('productversion') 提供以下版本号:11.0.3401.0

最佳答案

执行以下操作:

  1. 停止捕获作业;
  2. 运行EXEC sp_repldone @xactid = NULL、@xact_segno = NULL、@numtrans = 0、@time = 0、@reset = 1; EXEC sp_replflush;
  3. 关闭执行这些命令的查询窗口;
  4. 开始捕获作业;
  5. 检查 sys.dm_cdc_errors 表中的新行,并检查更改是否开始可见。

关于sql-server - CDC 已启用,但未填充 cdc.dbo<table-name>_CT 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23744083/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com