web-dev-qa-db-ja.com

「SQLサーバースタンドアロン」と「SQLサーバーフェイルオーバーインスタンス」の違いをよく理解したい

これらの質問が尋ねるように:

"Always On Failover Cluster Instances"と "SQL Server Failover Clustering"は同じですか?

Windows Server Failover ClusteringはSQLServer Failover Clusteringをすでに処理していませんか?

クラスターについていくつか疑問があります。

私の最初の仕事で、4ノードのフェールオーバークラスタリングがあったことを覚えています。各ノードに3つのSQLサーバーインスタンスがあり、フェイルオーバー用の空のノードが1つありました。ノードに問題があった場合、その空のノードにフェイルオーバーし、SQLインスタンスがすでにあるノードでパフォーマンスの問題が発生することはありません。

質問:私が間違っていないのであれば、SHARED DISKフェールオーバークラスターがありました。したがって、すべてのデータベースは、すべてのノードで共有される単一のディスク内にありました。しかし、インスタンスが空のノードに変わるとどうなりますか?つまり、SQLのインストールはなく、インスタンスもありませんでしたが、フェイルオーバー後、インスタンスはすべてのジョブとともにそこにありました。これは、仮想マシンが空のノードに移動したことを意味しますか?

現在、私には新しい仕事があり、それでもクラスターの概念を完全に理解できません。 2つのノードを持つフェールオーバークラスターがあります。ここでは、Always on可用性グループ環境を作成しました。それはうまく機能します(唯一の問題は、まだクォーラムがないことですが、そこに到達します)。ここの環境は違います。各ノードに2つのSQL Serverインスタンスをインストールする必要がありました。そして、これは私が到達したい場所です。

これは、最初の仕事でsql server failover cluster installationがあったことを意味しますか?この新しいジョブでは、通常のstand-alone installationインスタンスを両方のノードにインストールしました。

(私は最初の仕事を始めたときはSQLの知識がなかったので、構成が何であったか本当に思い出せません)。

基本的に、sql server stand-alone installationと `sqlサーバーフェールオーバークラスターインストールの違いは何ですか。

そしてもう一つ質問。ほぼ毎週、フェイルオーバーが発生しています。 node1がnode2との接続を失っており、クォーラムが失われたと確信しています。クォーラムの概念は、node1がnode2との接続を失うと、クォーラムは言うことができます。

1
Racer SQL

まず、いくつかの用語を定義しましょう:

SQL Serverフェールオーバークラスター/ Always Onフェールオーバークラスターインスタンス

これらの用語は交換可能です。 Always Onフェールオーバークラスターは、SQL ServerフェールオーバークラスターまたはSQL FCIの現代用語です。 FCIは、共有ディスクを持つWindows Serverフェールオーバークラスター内の複数のノードで構成されます。

SQL Serverソフトウェアは各ノードにインストールされますが、インストールされるインスタンスは、クラスター化された特別なインスタンス(フェールオーバークラスターインスタンス)です。 WSFCサービスは、ノード間のSQLインスタンスと共有ディスクのフェイルオーバーを管理して、高可用性と災害復旧を提供します。そのインスタンスのSQL Serverサービスはすべてのノードに存在しますが、クラスターのアクティブノードでのみ開始および実行されます。

すべての意図と目的のために、インスタンスは1つだけであり、インスタンスはその基礎となる共有ディスクとともにノード間を移動します。ノード間のデータ同期は、基盤となる同じディスクを使用して行われるため、ノード間のデータ状態は同じです。

SQL Server Always On可用性グループ

SQL Server Always On可用性グループ(SQL AG)は、共有ディスクインフラストラクチャを必要としない、高可用性と障害回復のための最新のソリューションです(実際、一部のケースではWSFCクラスターも不要ですが、それは別のトピックです)。

フェイルオーバーと可用性を管理するために引き続きWSFCクラスターを利用しますが、ノード間のデータの同期は共有ディスクを利用してデータが最新であることを保証せず、代わりにメカニズムがSQL Server内で完全に使用されてノード間でデータのブロックを転送します、またはAGで呼び出されるレプリカ。

AGアーキテクチャの各レプリカは、独立したSQL Serverインスタンスです。基盤となるマシンはノードとしてWSFCクラスターに参加しており、各ノードのSQL ServerインスタンスではAlways On機能が有効になっています。

AGがこれらのレプリカ間で作成されると、データ移動メカニズムは、AGに結合されているデータベースのレプリカ間でデータの移動を開始します。これは、以前のバージョンのSQL Serverのデータベースミラーリングと非常によく似ており、同じテクノロジに基づいて構築されています。データの同期は、この「ミラーリング」テクノロジーを使用して実現されます。

スタンドアロンSQL Serverインスタンス

スタンドアロンSQL Serverインスタンスは、HADRテクノロジーを介してリンクまたは結合されていないSQL Serverインスタンスです。名前が示すように、このインスタンスは独立しています。

Always Onアーキテクチャは複数のスタンドアロンインスタンスを備えているように見えますが、サーバーは基盤となるWSFCクラスターを介して結合され、インスタンスは可用性グループを介して結合されるため、スタンドアロンインスタンスではありません。

クラスターvsクラスター

多くの場合、クラスター、SQLクラスター、およびAlways Onクラスターは、Always OnとFCIの間でほぼ同じ意味で使用されますが、重要な違いがあります-SQLクラスターはSQL Serverフェールオーバークラスターインスタンスであり、Always Onクラスターは実際には存在しません。 Always On可用性グループはそのように呼ばれるべきであり、「クラスター」は通常、FCIまたはAlways On Agが構築されている基盤となるWindows Serverフェールオーバークラスターを指します。

今あなたの質問に:

質問:私が間違っていないのであれば、SHARED DISKフェールオーバークラスターがありました。したがって、すべてのデータベースは、すべてのノードで共有される単一のディスク内にありました。しかし、インスタンスが空のノードに変わるとどうなりますか?

共有ディスクFCIの各ノードにはソフトウェアがインストールされていますが、インスタンスは必要に応じてノード間で移動されます。 masterデータベースが存在する場所とインスタンスを考えてください。 FCIがフェイルオーバーすると、共有ディスクホスティングマスターもフェイルオーバーするため、新しいノードでSQL Serverを起動すると、移動したマスターデータベースが起動し、インスタンスが起動します。

つまり、SQLのインストールはなく、インスタンスもありませんでしたが、フェイルオーバー後、インスタンスはすべてのジョブとともにそこにありました。これは、仮想マシンが空のノードに移動したことを意味しますか?

実際、SQL Serverはそのノードにインストールされています。 VMは移動しませんでした。ファイルをホストしているディスクが移動したときに、インスタンスとそのすべてのDB、ジョブなどが移動しました。ノード2のSQL Serverサービスは、フェイルオーバー後に起動し、インスタンスに再接続しましたファイル。

これは、最初のジョブでSQLサーバーフェールオーバークラスターがインストールされたことを意味しますか?この新しいジョブでは、両方のノードに通常のスタンドアロンインストールインスタンスをインストールしました。

新しい環境では、Always On可用性グループアーキテクチャがインストールされているようです。

もう一つ質問。ほぼ毎週、フェイルオーバーが発生しています。 node1がnode2との接続を失っており、クォーラムが失われたと確信しています。クォーラムの概念は、node1がnode2との接続を失うと、クォーラムは言うことができます。

クォーラムはタイブレーカーになるはずです。両方のノードが他のノードを見ることができないと投票した場合、それぞれがプライマリロール(FCIまたはAG)を引き継ぐことを望み、これによりスプリットブレインが発生します。 WSFCクラスターはこれを発生させず、代わりにクラスターをシャットダウンします。

ノードの数が偶数の場合、クォーラムは決定権を与えます。ノード1のクラスターサービスがノード2とは通信できないが、クォーラム監視(ファイル共有または共有ディスク)とは通信できる場合、投票は2つ(ノードから1つとクォーラム監視から1つ)であり、ノード2は一票。これは却下され、ノード1は稼働したままになります。 Node 2に2つの票がある場合、フェイルオーバーが開始されます。

常に奇数の票を持つことが重要です。 Windows Serverのそれ以降のバージョンでは、ノードの重みとノードの投票は動的に調整され、奇数の投票を試行して実施しますが、投票が2つしかないため、これを実施できません。

更新-

以下は、違いを説明するのに役立つMicrosoftの図です。

Always On Technologies

図からわかるように、可用性グループは、WSFCクラスターに参加しているサーバーにインストールされているSQL Serverの独立したインスタンス全体に構築されています。フェールオーバークラスターインスタンスは、共有ストレージを使用して、WSFCクラスター内の複数のノードにまたがるSQL Serverの単一インスタンスとしてインストールされます。

SQL Serverのバイナリと実行可能ファイルはFCIのすべてのノードにインストールされますが、インスタンス(システムデータベース、ユーザーデータベースなど)は共有ストレージにインストールされ、一度に1つのノードでのみアクティブになります。

AGでは、両方の独立したインスタンスが同時に稼働し、AGリスナー(仮想ネットワーク名)はプライマリレプリカでのみリッスンします。

この link は、AGやFCIを含む、SQL Serverのビジネス継続性に関する詳細情報を提供します。

1
HandyD