1

そのためにCDCを無効にする前に、テーブルを削除しました。テーブルを再作成して CDC を有効にしようとすると、キャプチャ インスタンスが既に存在すると表示されます。別のキャプチャ インスタンス名を使用できますが、関連するキャプチャ インスタンスを手動で削除する方法があるかどうかを知る必要があります。

SSMS GUI からテーブルを削除すると、CDC テーブルも削除されます。しかし、今回はコードを使用してテーブルを削除しましたが、CDC を無効にしたり削除したりしませんでした。したがって、トラブル。Ms のドキュメントでは、Change Table が誤って削除された場合のホット フィックスについて説明しています。しかし、ベーステーブルを削除しました。削除されたテーブルのこのキャプチャ インスタンスを削除する方法の手がかりはありますか?

4

3 に答える 3

7

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を介してキャプチャインスタンスを再作成できるはずです。

于 2012-04-03T15:56:59.667 に答える
2

pdankeによるREPLYに加えて、もう1つのステップを実行する必要がありました。

DROP TABLE cdc.<capture_insance>_CT

変更データのキャプチャが有効になっているデータベースを復元したときに、cdcの孤立が発生した可能性があります。私の場合、

EXECUTE sys.sp_cdc_help_change_data_capture 

source_schemasource_tableが両方である1つのエントリになりましたNULL

于 2013-03-14T20:00:30.300 に答える
2

さて、私は方法を考え出した。そのテーブルに関連するすべてのレコードをすべての CDC システム テーブルから削除し、同じ名前でキャプチャ インスタンスを再作成しようとしました。出来た!

于 2009-12-06T08:53:19.693 に答える