本連載は、「Microsoft SQL Server」で発生するトラブルを「どんな方法で」「どのように」解決していくか、正しい対処のためのノウハウを紹介します。今回は「FCI構成におけるフェイルオーバー関連トラブルの対処方法」を解説します。
本連載では、「Microsoft SQL Server(以下、SQL Server)」で発生するトラブルについて、「なぜ起こったか」の理由とともに具体的な対処方法を紹介していきます。
「Windows Server 2012 R2」で構成したWSFC(Windows Server Failover Clustering)上に「SQL Server 2016 RTM」をFCI(Failover Cluster Instance:フェイルオーバークラスタインスタンス)としてインストールした環境を想定して解説します。
トラブルの実例:前任の担当者から引き継いだ2ノードのFCI構成とするSQL Serverシステムが稼働して、5年ほどが経過する。これまでシステムはトラブルもなく、正常に動作していた。
そろそろハードウェアの更新を見据えて計画を立てなければならないと思っていたところ、突然アプリケーションの接続エラーが発生し、サービスが瞬断した。大規模なトラブルには陥らなかったが、「なぜ停止したのか」原因追及と「次に発生させない」ための根本解決策を求められている。
トラブル例のシステムは、2ノードのFCIで構成されています。「フェールオーバー クラスター マネージャー」で各サーバの状態を、「イベントビューアー」でトラブル当時のイベントログを確認したところ、やはり1号機の動作が停止していました。しかし、もう1つのノードである2号機へSQL Serverのリソースが移る=正常にフェイルオーバーして、1号機の障害直後から2号機でサービスが正常に継続されていることを確認できました(図24-1)。
また、停止した1号機の起動をリモートで試みたところ、電源が入らず正常に起動しないことから、やはり1号機に何らかの理由で障害が発生し、停止したことがフェイルオーバーの理由であることが分かりました。
今回は、Always On フェイルオーバークラスタリング構成としてサービスを止めないための対策をしていたことが功を奏した、正しい動作です。今後対策すべきことは、再度発生させない/再度発生したときに再度正しく対処するために、「なぜ1号機にトラブルが発生したのか」に関する原因と対策をきちんと探っておくことになります。
Copyright © ITmedia, Inc. All Rights Reserved.