SQL Server 2008運用サーバーでスナップショットレプリケーションをセットアップしましたが、スナップショットフォルダーに1年前のスナップショットがあることに気付きました。これらのスナップショットの保持を変更するにはどうすればよいですか?具体的には、スナップショットを5日間保持します。
これは私が見ているフォルダのスクリーンショットです:
これは通常、セキュリティ上の理由からxp_cmdshellの権限が変更されている問題です。 SQLエージェントアカウントに、レプリケーションフォルダーからデータを削除するために必要なネットワーク権限がない場合にも、この問題が発生する可能性があります。
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
私の経験では、スナップショットフォルダーの保持は次のように機能します。
匿名サブスクライバーがそのパブリケーションに対して有効になっておらず、すべてのサブスクライバーがスナップショットを使用している場合、クリーンアップエージェントの次回の実行でスナップショットが削除されます。
匿名サブスクライバーが有効になっていて、配布の保存期間が経過した場合、クリーンアップエージェントの次回の実行でスナップショットが削除されます。
スナップショットを2か月間保持する必要がある状況では、匿名サブスクリプションを許可し、可能であればディストリビューション保持を2か月に設定することでこれを実現できます。
ディストリビューションデータベースがトランザクションレプリケーションにも使用されている場合、ディストリビューションデータベースが大幅に増大する可能性があります。
お役に立てれば、
マット
これを試して:
レプリケーションモニターのプロパティに移動し(レプリケーションモニター->プロパティを右クリック)、そこに履歴保持期間が表示されます。そこに設定できるはずです。