システムの停止と障害はDBAにとっては苦痛ですが、顧客にとってはさらに苦痛です。今日のユーザーは、ほぼ100%の可用性を期待しており、運が良ければイライラし、運が悪ければ顧客を失う原因になります。
DBAの主な目標の1つは、SQL Serverインスタンスとデータベースが、障害または停止後にオンラインで機能し続けることを保証することです。可用性を強化する1つの方法は、SQLServerを使用してWindowsServerフェールオーバークラスターをセットアップすることです。
フェールオーバークラスターは、停止または障害が発生した場合にアプリケーションとサービスの可用性を維持するために連携して機能するサーバーのグループです。基本的に、フェールオーバークラスターは、SQL Serverインスタンスに格納されているすべてのデータを取得し、さまざまなサーバーからアクセスできる共有ストレージリポジトリ(通常はSAN)にインストールします。
高可用性への道を歩み始めるのに役立つように、データベースのダウンタイムを最小限に抑えることができるように、SQLServerフェールオーバークラスターをセットアップするための上位9つの推奨事項と禁止事項をまとめました。
1。クラスタの検証をスキップしないでください。
クラスタをインストールする前に、検証を実行して構成を確認する必要があります。これが新しいクラスターの場合は、すべてのテストを実行する必要があります。
クラスターがセットアップされ、SQL Serverインスタンスがクラスターに完全にインストールおよび構成されたら、変更を加えるたびに検証を実行します。 SQL Serverフェールオーバークラスターを稼働させる前に、検証結果が正しいことを確認することが重要です。これにより、見逃した問題を修正するためにダウンタイムをスケジュールする必要がなくなります。
2。クォーラムを適切に構成してください。
SQL Serverをオンラインに保ちたい場合は、フェールオーバークラスターでクォーラムが正しく構成されていることを確認してください。このMicrosoftのドキュメントには、これを実現する方法の詳細な手順が記載されていますが、ハイライトリールには次のベストプラクティスが含まれています。
- クラスター構成が変更されるたびにクォーラムを再評価します
- 証人を割り当てて、奇数票を獲得する
- 必要に応じて投票を削除する
- 「動的クォーラム」機能を使用して、ノードの投票を動的に調整します
クォーラムを構成する最も効果的な方法は、Windowsのバージョン、ノードの数、およびノード間のネットワーク通信の信頼性によって異なることに注意してください。
3。間違ったバージョンのWindowsまたはSQLServerを選択しないでください。
これは簡単なことのように聞こえますが、常に繰り返す必要があります。必ず最新バージョンのWindowsServerを選択し、エンタープライズバージョンまたはデータセンターバージョンを使用していることを確認してください。また、物事を単純にするために、SQLServerの1つのバージョンに固執します。これらの2つの方法に従うと、クラスターの管理とオンライン維持が容易になります。
4。正しいハードウェアを購入してください。
SQLServerクラスターのハードウェアのサイズを適切に設定するのは難しい場合があります。たとえば、メモリが多すぎるとお金を無駄にしたくないが、少なすぎるとパフォーマンスに影響を与える可能性があります。
SQL Serverクラスタを作成するための計画を立てるときは、ハードウェアのニーズが適切な量のメモリに対して満たされていること、ネットワークパスが冗長であること、SSDのニーズを正確に評価していることを確認してください。
5。 1つのクラスターに多くのノードを配置しないでください。
すべてのノードを1つのクラスターに配置したくなるかもしれませんが、クラスターごとに1つから2つのノードを使用することをお勧めします。パッチまたは更新をクラスターに適用するときはいつでも、各インスタンスが各ノードで引き続き機能することをテストする必要があることに注意してください。クラスタ内のノードが少ないほど、各ノードをフェイルオーバーするときの各インスタンスのダウンタイムが少なくなります。
6。ノードとインスタンスを計画してください。
フェールオーバークラスターは万能ではないため、ニーズを評価し、それに応じて計画する必要があります。開始するのに最適な場所は、これらの質問に答え、クラスターを適切に調整することです。
- クラスターノードはいくつ必要ですか?
- インストールするSQLServerインスタンスの数はいくつですか?
- ニーズと予算に合うWindowsフェールオーバークラスターはいくつありますか?
- どのような種類のストレージを使用しますか?
- ステージング環境はどのようになっていますか?
7。アプリケーションが正常にフェイルオーバーするとは限りません。
フェイルオーバーが発生する前のようにSQLServerインスタンスが実行されていることを決して信用しないでください。一部のアプリケーションは、後で自動的にオンラインに戻らない場合があります。アプリケーションによっては、気付くまでに時間がかかる場合があります。
フェールオーバークラスターへの移行ごとにアプリケーションテストを含めることを標準的な方法にします。
8。 SQLServerの構成設定を再評価してください。
SQL Serverフェールオーバークラスターの作成の計画フェーズを開始したら、構成設定をもう一度確認する良い機会です。たとえば、マルチインスタンスクラスタでのメモリ割り当てなどに最適な設定を使用していることを確認します。
9。命名規則を緩めないでください。
ここで時間をかけてクラスターコンポーネントに注意深く名前を付け、後でサーバーに接続しようとするときに大きな頭痛の種を避けてください。効果的な命名規則を確立するのに役立ついくつかのアイデアを次に示します。
- 名前がラベル付けするコンポーネントのタイプを識別していることを確認してください。クラスター、物理サーバー、SQL Serverインスタンス、または分散トランザクションコーディネーターですか?
- BGINFOをインストールして、クラスター内のすべてのサーバーのデスクトップにサーバー名を表示します。これにより、正しいデータベースを簡単に見つけることができます。
- ノードを追加したり、別のSQLServerインスタンスをクラスターにインストールしたりするときは一貫性を保ってください。命名規則に固執すれば、今のところ単純化されるだけでなく、後でサーバーを必要とする人にとってサーバーを見つけやすくなります。