1

データベースをUAT環境に復元し、セットアップしましたAlwaysOn。ログをバックアップしようとすると、「ログの先頭にあるレコードがレプリケーションまたは変更データ キャプチャを保留しているため、ログは切り捨てられませんでした。ログ リーダー エージェントまたはキャプチャ ジョブが実行されていることを確認するか、sp_repldoneトランザクションを分散としてマークするために使用します。または捕獲されました。」

データベースから CDC を削除し、すべてのレプリケーションを削除しましたが、まだ上記のエラーが発生します。はまたはlog_reuse_wait_descとして表示されます。 AVAILABILITY_REPLICAREPLICATION

また、以下を実行してみました。

EXEC sys.sp_replflush

EXEC sp_removedbreplication

EXEC sp_repldone @xactid = NULL, @xact_segno = NULL, @numtrans = 0,     @time = 0, @reset = 1

助言がありますか?

ありがとう、ティム

4

3 に答える 3

0

同じ問題がありました (SQL 2012) - レプリケーション パブリッシャーとして設定された製品データベースと、レプリケーションを使用しないラボ環境で復元されたコピーを使用します。ここでこのソリューションを見つけました:

EXEC sp_replicationdboption 'MyDB','publish','true',1

あなたが得た場合

~「ディストリビュータが設定されていません」エラー、

サーバーがレプリケーションを管理するように設定されていない可能性があります。これを乗り越えるには、サーバーをディストリビューターにするだけです。

SSMS の場合: サーバー名: [レプリケーション] を右クリックし、手順に従ってディストリビューターをセットアップします。ローカル マシンは問題ないはずです。

EXEC sp_repldone @xactid = NULL, @xact_segno = NULL, @numtrans = 0,    @time = 0, @reset = 1

EXEC sp_replicationdboption 'MyDB','publish','false',1

この後にログ バックアップを再実行すると、はるかに高速になり、ハングしているログ レコードがクリアされました。

于 2020-07-03T18:08:53.407 に答える