题
我禁用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_schema
和source_table
均NULL
。
不隶属于 StackOverflow