web-dev-qa-db-ja.com

データの複製が失敗したときに通知するアラートを設定するにはどうすればよいですか?

データベースメールのセットアップを行い、問題なくテストしました。レプリケーションエージェントジョブを停止して開始してもアラートは機能しますが、パブリッシャーデータベースからサブスクライバーデータベースにデータが正常に移動したり失敗したりするとアラートをスローできません。最終的な目標は、データレプリケーションがうまくいかない場合に通知することです。

3
Shane

SQL Serverエージェントアラートを設定して、特定のエラー番号をトラップし、電子メール通知を送信したり、ジョブを実行したりして、それらに応答できます。 Management Studioで、SQL Serverエージェントのアラートにドリルダウンします。いくつかのデフォルトがあるかもしれません。 「レプリケーション:エージェントの成功」と「レプリケーション:エージェントの失敗」がない場合は、それぞれ作成してエラー番号14150と14151を監視できます。

ただし、エージェントの成功メッセージはSQL Serverのエラーログに書き込まれないため、デフォルトでは警告を表示できません。許可拒否エラーの電子メールアラートを取得するためにこれを実行しました。 sp_altermessageを使用して特定のエラーメッセージのログを有効にすることができますが、頻繁なメッセージではないことに注意してください。デフォルトでログに記録されるエージェント障害メッセージを有効にするために、これを行う必要はありません。

EXEC sp_altermessage 14150, 'WITH_LOG', 'true'

次に、アラートの「応答」ページで、通知するオペレーターを選択できます。定義されていない場合は、SQL Server Agent、Operatorsの下に設定します。

3
db2

これに対する私のお気に入りの測定は、ディストリビューターの待ち時間です。

データが公開されてもサブスクライバーにヒットしない場合、ディストリビューターは配信までの待ち時間について悲鳴を上げます。このタイプのアラートを設定すると、他の問題(ネットワークの問題など)を早期に発見するのにも役立ちました。

それをベースラインにするには、ディストリビューターの待ち時間のアラートを設定し、1秒の待ち時間でアラートが発生するようにアラートを設定します(このアラートはMSにあります)。アラートを15分おきに発火するように設定し、一定期間監視します。次に、パブリケーションに適切なしきい値にダイヤルします。

スクリーンショットのatmを送信することはできませんが、この人のブログ投稿に、話しているアラートの種類を設定するスクリプトが含まれていることがわかりました。

http://sqlblog.com/blogs/linchi_shea/archive/2009/06/05/distribution-latency-in-transactional-replication-is-a-volume-surge-the-culprit.aspx

1
Eric Higgins

SSMS->サブスクライバーに接続-> SQL Serverエージェント->アラート->「複製:エージェントの失敗」をダブルクリック->応答->希望するアラートタイプでオペレーターを追加します。 (個人ではなくセキュリティグループをお勧めします)。

0
swasheck