毎月、レプリケーション用の新しいスナップショットを生成し、SQL 2005でサブスクリプションを再初期化する必要があります。これを自動化してスケジュールしたいのですが、その方法を見つけるのに苦労しています。
DBAではないので、盲目的にそこを突っついています。絶対に何も台無しにしたくありません。何かご意見は?
それがどのような種類のレプリケーションであるか、そしてそれがプッシュまたはプルサブスクリプションであるかどうかを知っていれば、それは役に立ちます。ここでいくつかの大規模な仮定を行い、以下を使用していると言います。これは、最も一般的なレプリケーション設定だと思います。
ディストリビューターでSQLエージェントジョブを見ると、次のような名前のジョブが表示されます。
servername-dbname-publicationname-1
さらに、REPEL-Snapshotというカテゴリになります。
レプリケーションを設定すると、スケジュールに従ってスナップショットを実行するオプションが提供されます。そうすることを選択した場合は、スケジュールの下にこれが表示されます。そうでない場合は、最後にスナップショットを実行したときから有効になっていない1回限りのスケジュールが表示される可能性があります。このスケジュールはそのままにして、好みに合わせて別のスケジュールを作成してください。
これにより、すべてのサブスクライバーのパブリケーションが再初期化されます。いつでもこれを実行するSQLエージェントジョブを作成できます。詳細については msdnを確認してください 。
exec sp_reinitsubscription @publication = 'publication_name', @subscriber = 'all'
私はレプリケーションに慣れていないので、それを覚えておいてください。ただし、ダイアログの左上にスクリプトボタンが表示されている場合は、そのスクリプトを保存して、ジョブでスケジュールすることができます。
スクリプト機能が使用できない場合は、SSMSのアクティビティをトレースして、その動作を確認し、それとドキュメントを調べてスクリプトを作成することができます。