2つのサーバー間で複数のログ配布シナリオを実行中に作成および削除されたデータベースの複数の赤いアラートが表示されるSSMSのトランザクションログ配布レポートで、かなり奇妙な問題に直面しています。
次の投稿を使用しました: プライマリが利用できなくなったときに、セカンダリサーバーのログ配布構成を削除します これらのアラートをクリアするのに役立ちますが、これで何も成功しませんでした。時々私は次のエラーを受け取ります:
メッセージ32011、レベル16、状態1、プロシージャsp_delete_log_shipping_primary_database、行51プライマリデータベースMyFirstDBには、アクティブなログ配布セカンダリデータベースがあります。最初にセカンダリデータベースを削除します
データベースはプライマリサーバー、セカンダリサーバー、および3つのログ配布ジョブで既に削除されているため、これは正しくありません。
この状態で孤立したデータベースが40以上あります。これは、前述のすべてのデータベースについて、以下のエラーでSQLサーバーログを飽和させています。
日付19/08/2017 08:30:00 SQL Serverログ(アーカイブ#3-2017年8月19日08:31:00)
ソースspid53
メッセージ
ログ配布セカンダリデータベースSQLTEST.MyFirstDBの復元しきい値は30分で、同期が取れていません。 449177分間リストアは実行されませんでした。復元された待ち時間は2分です。チェックエージェント
システムデータベース/テーブルがこれらのレコードを保持している場所からこれらのエントリをクリアしてください。
本当に助かります!
ログ配布に関連するデータベースに関する情報は、msdbデータベースのいくつかのシステムテーブルに含まれています。これらの表を確認すると、ログ配布を適切に再構成したかどうかを識別するのに役立ちます。
この最初のクエリは、プライマリとして構成されているデータベースを示しています。このデータベースはSQL Serverインスタンスに存在しません。
SELECT lspd.primary_database
, lspd.last_backup_date
FROM msdb.dbo.log_shipping_primary_databases lspd
WHERE NOT EXISTS (
SELECT 1
FROM master.sys.databases d
WHERE d.name = lspd.primary_database
);
このクエリは、上記で識別されたデータベースのセカンダリを表示します。
SELECT lsps.secondary_server
, lsps.secondary_database
FROM msdb.dbo.log_shipping_primary_secondaries lsps
INNER JOIN (
SELECT lspd.primary_id
FROM msdb.dbo.log_shipping_primary_databases lspd
WHERE NOT EXISTS (
SELECT 1
FROM master.sys.databases d
WHERE d.name = lspd.primary_database
)
) p ON p.primary_id = lsps.primary_id;
sys.sp_delete_log_shipping_primary_secondary
を使用して、ログ配布構成からプライマリデータベースを削除します。
必要に応じて sys.sp_delete_log_shipping_secondary_database
を使用して影響を受けるセカンダリを削除し、表示されているアラートを停止します。
ログ配布の監視に関するMicrosoft Docsページ は、監視プロセスで使用される次のテーブルを含む、いくつかの有用な詳細を示しています。
log_shipping_monitor_alert-アラートジョブIDを格納します。
log_shipping_monitor_error_detail-ログ配布ジョブのエラー詳細を格納します。このテーブルをクエリして、エージェントセッションのエラーを確認できます。オプションで、それぞれがログに記録された日時でエラーをソートできます。各エラーは例外のシーケンスとしてログに記録され、エージェントセッションごとに複数のエラー(シーケンス)が発生する可能性があります。
log_shipping_monitor_history_detail-ログ配布エージェントの履歴の詳細が含まれます。このテーブルをクエリして、エージェントセッションの履歴の詳細を確認できます。
log_shipping_monitor_primary-監視に役立つ最新のバックアップファイルと最後に復元されたファイルに関する情報を含む、各ログ配布構成のプライマリデータベースの1つの監視レコードを格納します。
log_shipping_monitor_secondary-監視に役立つ最後のバックアップファイルと最後に復元されたファイルに関する情報を含む、セカンダリデータベースごとに1つのモニターレコードを格納します。
これらのテーブルの内容をクエリすると、アラートのソースを絞り込むのに役立ちます。上記のページには、テーブルのクエリに使用できるいくつかの監視ストアドプロシージャの詳細も含まれています。
「トランザクションログ配布ステータス」レポートは、sp_help_log_shipping_monitor
ストアドプロシージャを呼び出して詳細を取得します。そのストアドプロシージャのT-SQL定義を確認すると、問題の場所を解決するのに役立つ場合があります。