首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何手动关闭表的CDC?

如何手动关闭表的CDC?
EN

Stack Overflow用户
提问于 2009-12-03 16:02:31
回答 3查看 6.2K关注 0票数 1

我在禁用CDC之前丢弃了一张表。现在,当我重新创建表并尝试启用CDC时,它显示该捕获实例已经存在。我可以使用不同的捕获实例名称,但需要知道是否有手动删除相关捕获实例的方法。

当我通过SSMS GUI删除一个表时,它也会删除CDC表。但这一次我使用代码删除了表,它没有禁用或删除CDC。这就是问题所在。Ms文档讨论了Change Table被错误删除时的热修复。但我已经删除了基表。关于如何删除已删除表的此捕获实例,有什么线索吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-12-06 16:53:20

好吧,我想出了一个办法。我从所有CDC系统表中删除了与该表相关的所有记录,并尝试使用相同的名称重新创建捕获实例。啊,真灵!

票数 2
EN

Stack Overflow用户

发布于 2012-04-03 23:57:00

以下是我在CDC中删除孤立捕获实例的步骤:

代码语言:javascript
复制
DROP FUNCTION [cdc].[fn_cdc_get_net_changes_dbo_(tablename)]
DROP FUNCTION [cdc].[fn_cdc_get_all_changes_dbo_(tablename)]

然后运行以下命令:

代码语言:javascript
复制
declare @objid int
set @objid = (select object_id from cdc.change_tables where capture_instance = 'your orphaned capture instance')

delete from cdc.index_columns where object_id = @objid
delete from cdc.captured_columns where object_id = @objid
delete from cdc.change_tables where object_id = @objid

此时,您应该能够像往常一样通过sp_cdc_enable_table重新创建捕获实例。

票数 7
EN

Stack Overflow用户

发布于 2013-03-15 04:00:30

除了pdanke的回复之外,我还必须执行另一个步骤:

代码语言:javascript
复制
DROP TABLE cdc.<capture_insance>_CT

当我恢复一个启用了变更数据捕获的数据库时,我的cdc孤立可能就出现了。在我的情况下,

代码语言:javascript
复制
EXECUTE sys.sp_cdc_help_change_data_capture 

导致了一个条目,其中source_schemasource_table都是NULL

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1838362

复制
相关文章

相似问题

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