首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >已启用CDC,但未填充cdc.dbo< table -name>_CT表。

已启用CDC,但未填充cdc.dbo< table -name>_CT表。
EN

Stack Overflow用户
提问于 2014-05-19 17:49:19
回答 1查看 14.6K关注 0票数 9

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

代码语言:javascript
复制
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;

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

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

为什么这一个表不会捕获数据,即使其他表是?

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

我能做些什么来调试这个问题?

非常感谢,提前!)

编辑1

这是exec sys.sp_cdc_help_change_data_capture的输出。subscription_events是我遇到麻烦的桌子。

编辑2

这是exec sys.sp_cdc_help_jobs;的输出。

编辑3

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

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

编辑4

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-19 20:52:28

做以下工作:

  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表中是否有新行,并检查更改是否开始可见。
票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23744083

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档