このガイドは、可用性グループの監視や、可用性グループでよくある問題のトラブルシューティングを始めるのに役立ちます。 オリジナルコンテンツと、他で公開されている有用な情報のランディングページを提供しています。 このガイドは、利用可能なグループが広範囲で起こりうるすべての問題を完全には説明できませんが、根本原因分析や問題解決の方向性を示す手がかりとなります。
可用性グループは統合された技術であるため、多くの問題はデータベースシステムの他の問題の症状である可能性があります。 一部の問題は、可用性グループ内の設定、例えば可用性データベースの停止が原因で発生します。 その他の問題としては、SQL Serverの設定、データベースファイルのデプロイ、可用性とは無関係なシステム的なパフォーマンス問題など、SQL Serverの他の側面の問題が挙げられます。 さらに、ネットワークI/O、TCP/IP、Active Directory、Windows Serverのフェイルオーバークラスタリング(WSFC)などの問題がSQL Server外にも存在する可能性があります。 多くの場合、可用性グループ、レプリカ、データベースで問題が発生すると、根本原因を特定するために複数の技術を試す必要があります。
トラブルシューティングシナリオ
以下の表には、可用性グループの一般的なトラブルシューティングシナリオへのリンクが含まれています。 これらは構成、クライアント接続、フェイルオーバー、パフォーマンスなどのシナリオタイプで分類されます。
| シナリオ | シナリオの種類 | Description |
|---|---|---|
| Always On Availability Groupsの設定(SQL Server)のトラブルシューティング | Configuration | 可用性グループのサーバーインスタンス設定における典型的な問題のトラブルシューティングに役立つ情報を提供します。 一般的な構成の問題は次のとおりです。 - 可用性グループが無効化されている - アカウントの設定が誤っている - データベースミラーリングエンドポイントが存在しない - エンドポイントがアクセス不能(SQL Serverエラー1418) - ネットワークアクセスが存在しない - join databaseコマンドが失敗する(SQL Serverエラー35250) |
| 失敗した追加ファイル操作のトラブルシューティング(常時稼働の可用性グループ) | Configuration | 追加ファイル操作によりセカンダリデータベースが停止され、非同期状態になりました。 |
| マルチサブネット環境で可用性グループリスナーに接続できません | クライアント接続 | 可用性グループリスナーを設定した後は、アプリケーションからリスナーにpingを行ったり接続したりすることができなくなります。 |
| 自動フェイルオーバー失敗のトラブルシューティング | フェールオーバー | 自動フェイルオーバーは成功しなかった。 |
| トラブルシューティング: 可用性グループ接続の超過 RTO | Performance | データ損失のない自動フェールオーバーまたは計画的な手動フェールオーバーの後で、フェールオーバー時間が RTO を超過します。 または、同期コミット セカンダリ レプリカのフェールオーバー時間を推定したとき (自動フェールオーバー パートナーなど)、RTO を超過していることが判明します。 |
| トラブルシューティング: 可用性グループが RPO を超えた | Performance | 強制的な手動フェールオーバーを実行した後で、データ損失が RPO より大きくなります。 または、非同期コミット セカンダリ レプリカのデータ損失の可能性を計算したとき、計算結果が RPO を超過していることが判明します。 |
| トラブルシューティング:プライマリ上の変更がセカンダリ レプリカに反映されない | Performance | クライアント アプリケーションはプライマリ レプリカの更新を正常に完了しますが、セカンダリ レプリカに対してクエリを実行すると、変更が反映されていないことが示されます。 |
| トラブルシューティング:常時稼働の可用性グループによる高HADR_SYNC_COMMIT待ち時間タイプ | Performance | HADR_SYNC_COMMIT異常に長い場合は、データ移動フローや二次レプリカのログ硬化にパフォーマンスの問題があります。 |
トラブルシューティングに役立つツール
可用性グループの設定や運用時に、さまざまなツールを使って異なる種類の問題を診断できます。 以下の表は、ツールに関する有用な情報へのリンクを示しています。
| Tool | Description |
|---|---|
| Always On ダッシュボードの使用 (SQL Server Management Studio) | ユーザーフレンドリーなインターフェースで、可用性グループの健康状態を一目で確認できます。 |
| Always Onポリシー | Always Onダッシュボードで使用。 |
| SQL Serverエラーログ(常時稼働の可用性グループ) | 可用性グループ、レプリカ、データベースの遷移イベントの状態、他のAlways Onコンポーネントの状態、Always Onエラーをログします。 |
| クラスター。LOG(常時稼働の可用性グループ) | クラスタイベントをログに記録し、可用性グループリソースの状態遷移やSQL ServerリソースDLLからのイベントやエラーも記録します。 |
| 常にオンの健康診断ログ | ログSQL Server WSFCクラスター(SQL ServerリソースDLL)に報告された健康診断のログは、sp_server_diagnostics(Transact-SQL)によって報告されます。 |
| 動的管理ビューおよびシステムカタログビュー(常時稼働可用性グループ) | 構成、健康状態、パフォーマンス指標などの可用性グループに関する情報を報告します。 |
| Always On 拡張イベント | 利用可能なグループの詳細な診断を提供し、根本原因分析に役立ちます。 |
| 常に待機型 | 可用性グループごとの待機統計を提供し、パフォーマンス調整に役立ちます。 |
| Always Onのパフォーマンスカウンター | 可用性グループの活動を監視し、システムモニターに反映され、パフォーマンスチューニングに役立ちます。 詳細については、SQL Server, Availability Replica オブジェクトおよび SQL Server, Database Replica オブジェクトをご覧ください。 |
| 常時オンリングバッファ | SQL Serverシステム内で内部診断用のアラートを記録し、可用性グループに関連する問題のデバッグにも利用できます。 |
監視可用性グループ
可用性グループをトラブルシューティングする理想的な時期は、問題が発生する前に、自動または手動のフェイルオーバーが必要になる前です。 これは、可用性グループのパフォーマンス指標を監視し、可用性レプリカがサービスレベルアグリーメント(SLA)の範囲外で動作している場合にアラートを送信することで実現できます。 例えば、同期セカンダリカレプリカにパフォーマンスの問題が発生し、推定フェイルオーバー時間が長くなった場合、自動フェイルオーバーが起きてフェイルオーバー時間が目標回復時間を超えているのを待たないようにしましょう。
可用性グループは高可用性および災害復旧のソリューションであるため、最も重要なパフォーマンス指標は推定フェイルオーバー時間であり、これは復旧時間目標(RTO)に影響を与えます。また、災害時のデータ損失の可能性は復旧ポイント目標(RPO)に影響を与えます。 これらの指標は、SQL Serverがその時点で公開するデータから収集できるため、実際の故障イベントが発生する前にシステムの高可用性および災害復旧(HADR)機能に問題があることを警告できます。 したがって、可用性グループのデータ同期プロセスに慣れ、それに応じて指標を集めることが重要です。
以下の表は、可用性グループの健全性を監視するのに役立つ記事を紹介します。
| [アーティクル] | Description |
|---|---|
| 常時稼働の可用性グループのパフォーマンスを監視 | 可用性グループのデータ同期プロセス、フロー制御ゲート、可用性グループを監視する際の有用な指標を記述します。また、RTOやRPO指標の収集方法も示しています。 |
| 可用性グループの監視(SQL Server) | 可用性グループを監視するためのツールに関する情報を提供します。 |
| Always Onヘルスモデル パート1:ヘルスモデルアーキテクチャ | Always Onの健康モデルの概要を提供します。 |
| Always On健康モデル、パート2:健康モデルの拡張 | Always Onの健康モデルのカスタマイズ方法と、Always Onダッシュボードの追加情報表示のカスタマイズ方法を示しています。 |
| PowerShellでの常時健康状態監視、パート1:基本コマンドレットの概要 | 可用性グループの健全性を監視するために使用できるAlways OnのPowerShellコマンドレットの基本的な概要を提供します。 |
| PowerShellでの常時健康状態監視、パート2:高度なコマンドレットの使用 | 可用性グループの健全性を監視するためのAlways On PowerShellコマンドレットの高度な使用情報を提供します。 |
| PowerShellによる常時健康監視、パート3:シンプルなモニタリングアプリケーション | アプリケーションで可用性グループを自動的に監視する方法を示しています。 |
| PowerShellによる常時オンの健康状態監視、パート4:SQL Server エージェントとの統合 | SQL Server エージェントと可用性グループ監視の統合方法や、問題発生時に適切な関係者への通知設定方法に関する情報を提供します。 |