我禁用CDC对于之前丢弃的表。现在,当我重新创建表,并试图使CDC它说,捕获实例已经存在。我可以使用不同的捕获实例的名字,但需要知道是否有无论如何手动删除相关的捕获实例。

当我删除通过SSMS GUI降至CDC表太的表。但是,这一次我放弃使用代码表中,并没有禁用或删除CDC。因此麻烦。误被删除约了一个热修复,如果更改表的文档女士会谈。但我已经删除了基表。如何删除此捕获实例删除的表任何线索?

有帮助吗?

解决方案 2

那么我想出一个办法。我删除了所有来自所有CDC系统表与该表中的记录,并试图用相同的名称重新创建捕获实例。它的工作!

其他提示

下面是我所采取的步骤在CDC来删除孤立捕获实例:

DROP FUNCTION [cdc].[fn_cdc_get_net_changes_dbo_(tablename)]
DROP FUNCTION [cdc].[fn_cdc_get_all_changes_dbo_(tablename)]

然后运行执行以下操作:

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正常重新创建您的捕获实例。

我不得不执行除了由pdanke的REPLY一个步骤:

DROP TABLE cdc.<capture_insance>_CT

我CDC孤儿可能已经来临,当我恢复其中已经启用变更数据捕获的数据库。在我的情况下,

EXECUTE sys.sp_cdc_help_change_data_capture 

导致一个条目,其中source_schemasource_tableNULL

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top