スナップショットレプリケーションの保持


12

SQL Server 2008運用サーバーでスナップショットレプリケーションを設定しましたが、スナップショットフォルダーに1年前にまで遡るスナップショットがあることに気付きました。これらのスナップショットの保持を変更するにはどうすればよいですか?具体的には、スナップショットを5日間保持したいと思います。

これが私が見ているフォルダのスクリーンショットです: 複製フォルダー


私はあなたが説明したすべての可能な方法を試しましたが、それでも非常に以前に説明したものと同じ問題を抱えています。

回答:


7

これは通常、セキュリティ上の理由でxp_cmdshellの権限が変更された問題です。SQL Agentアカウントにレプリケーションフォルダーからデータを削除するために必要なネットワーク権限がない場合にも、この問題が発生する可能性があります。

  • xp_cmdshellが有効になっており、xp_cmdshellを実行するアカウントに適切な権限があることを確認してください。

    USE master
    GO
    EXEC sp_configure 'show advanced option', '1';
    reconfigure;
    GO
    exec sp_configure 'xp_cmdshell';

出力は次のとおりです。

name         minimum    maximum config_value run_value
xp_cmdshell  0          1       1            1

確認するもう1つのことは、クリーンアップジョブが有効になっていることです。ジョブが単純に無効になったケースを見てきました。
ケネス

まあ、「エージェントヒストリークリーンアップ:配布」という仕事があり、それはうまく実行されています(そして有効になっています)。
-DForck42

以前にxm_cmdshellを有効にしたところ、これらの結果が表示されるようになりました。
DForck42

4

私の経験では、スナップショットフォルダーの保持は次のように機能します。

匿名サブスクライバーがそのパブリケーションに対して有効になっておらず、すべてのサブスクライバーがスナップショットを消費している場合、クリーンアップエージェントの次の実行でスナップショットが削除されます。

匿名サブスクライバーが有効で、配布保持期間が経過した場合、クリーンアップエージェントの次の実行でスナップショットが削除されます。

スナップショットを2か月間保持する状況では、匿名サブスクリプションを許可し、可能であればディストリビューションの保持を2か月に設定することでこれを実現できます。

ディストリビューションデータベースがトランザクションレプリケーションにも使用されている場合、ディストリビューションデータベースが大きく成長する可能性があります。

お役に立てれば、

マット


ディストリビューション保持をどこで設定しますか?
DForck42

2
@ DForck42 SSMSでは、右クリックレプリケーションおよび左クリックディストリビューターのプロパティ。そこから、トランザクションの保持期間を調整できます。
マットM

1

これを試して:

レプリケーションモニターのプロパティに移動し(レプリケーションモニター->プロパティを右クリック)、そこに履歴保持期間が表示されます。そこで設定できるはずです。


これはスナップショット複製には当てはまらないと思います。
ケネス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.