1

2つのSQLServer2005標準エディションの間にミラーリングが設定されています。次のように設定されたミラーリングアラートもあります。DBミラーリング(ミラーが失われた接続)DBミラーリング(プリンシパルが失われた接続)DBミラーリング(プリンシパル実行中の公開)DBミラーリング(同期ミラー)DBミラーリング(同期プリンシパル)ミラーコミットオーバーヘッドがしきい値(MIRROR)最も古い未送信のトランザクションがしきい値を超えています(PRINCIPAL)復元されていないログがしきい値を超えています(MIRROR)未送信のログがしきい値を超えています(PRINCIPAL)

「最も古い未送信のトランザクションがしきい値を超えています」というアラートが、過去数日間に何度も生成されました。しかし、このアラートは特にデータベース向けではありませんでした。ただの平均値でした。

この情報はテーブルにあるべきだと思いましたが、msdb.dbo.dbm_monitor_dataテーブルであることがわかりました。log_flush_rate、send_queue_size、send_rate、redo_queue_size、redo_rate、transaction_delay、transactions_per_secなどのデータとデータベース名を保持します。次に、このテーブルはどのように設定されているのでしょうか。このため、SQLサーバーが作成するミラーリング監視ジョブ「データベースミラーリング監視ジョブ」は、ミラーリングperfmonカウンターからこのテーブルにデータを入力するspsp_dbmmonitorupdateを実行することがわかりました。このジョブは毎分実行されます。

アラートは、たとえば11:23:52に生成されました。ジョブは1分に1回しか実行されませんが、それでも11:23:00にデータをキャプチャし、11:23:52(アラートが生成されたとき)に1分に2回データをキャプチャすることができました。

アラートが生成されると、このストアドプロシージャも実行されるのではないかと思いました。テーブルが更新された場合は、selectステートメントを実行できます。しかし、どうすれば確信できますか?

問題:このテーブルがスケジュールなしで更新された理由をどのように知ることができますか?何がその人口を引き起こしたのですか?どのテーブルがアラート履歴データを保持しているか知っている人はいますか?

注:インデックスの再構築ジョブは実行されておらず、ミラーリングのしきい値は次のスクリーンショットのように設定されています。 代替テキスト

誰か助けてもらえますか?

前もって感謝します

4

1 に答える 1

0

回答:sp_dbmmonitorupdateはエラーを発生させ、それがアラートを発生させ、テーブルにデータを入力します。これを見つけるために、すべてのミラーリングストアドプロシージャとテーブルを調べました。:-)

于 2010-08-26T22:19:09.780 に答える