この記事では、次の常時接続のMSSQL®サーバーフェイルオーバークラスター構成に関するガイダンスを提供します。
- フェールオーバークラスターの名前を変更します
- SQLサーバーリソースに依存関係を追加する
- クォーラムNodeWeight設定を構成する
- フェールオーバークラスターインスタンスのIPアドレスを変更する
- HealthCheckTimeoutを構成する
- FailureConditionLevelの構成
SQLServerフェールオーバークラスターインスタンスの名前を変更します
SQL Serverは、レプリケーションでのログ配布を再利用している場合にのみ、レプリケーションに関係するサーバーの名前変更をサポートします 。プライマリが完全に失われた場合は、セカンダリサーバーの名前を変更できます。
レプリケーションに関連するサーバーの名前を変更する場合は、仮想サーバーの名前を変更する前に、レプリケーションをオフにする必要があります。次に、新しい仮想サーバー名でミラーリングを再確立します。また、データベースミラーリングのメタデータを手動で更新して、新しい仮想サーバー名を反映させます。
-
Cluster Administratorを使用して、SQLネットワーク名を新しい名前に変更します。
-
ネットワーク名リソースをオフラインにします。これにより、SQLServerリソースとその他の依存リソースもオフラインになります。
-
SQLServerリソースをオンラインに戻します。
名前変更操作を確認するには、 @@ servernameから情報を選択できます。 またはsys.servers 、SQLServerを他のノードにフェイルオーバーすることも試みてください。
注: クラスタ内の他のノードは、ほぼすぐに新しい名前を使用できます。ただし、クライアントコンピュータは、新しい名前が表示される前にネットワークの伝播を待たなければならない場合があります。伝播時間を最小限に抑えるには、ノードで次のコマンドを実行します。
ipconfig /flushdns
ipconfig /registerdns
nbtstat -RR
SQLサーバーリソースに依存関係を追加する
SQL Serverグループに他のリソースを追加する場合、それらは常に独自のSQLnetwork名リソースと独自のSQLIPアドレスリソースを持っている必要があります。 SQLServer以外の目的で既存のSQLnetwork名前リソースとSQLIPアドレスリソースを使用しないでください。
複数のディスクドライブがあるリソースグループにMSSQLをインストールし、そのうちの1つにデータを配置することを選択すると、SQLServerリソースはそのドライブのみに依存するように設定されます。データまたはログを別のディスクに配置する前に、追加のディスクのSQLServerリソースに依存関係を追加する必要があります。
-
フェールオーバークラスターマネージャーを開きます スナップイン。
-
依存させたい該当するSQLServerリソースを含むグループを見つけます。
-
ディスクのリソースがすでにこのグループに含まれている場合は、手順4に進みます。それ以外の場合は、ディスクを含むグループを見つけます。同じノードがそのグループとSQLServerを含むグループの両方を所有していない場合は、ディスクのリソースを含むグループをSQLServerグループを所有するノードに移動します。
-
SQL Serverリソースを選択し、プロパティを開きます ダイアログボックスをクリックし、依存関係を使用します タブを使用して、SQLServerの依存関係のセットにディスクを追加します。
ユーザーは、ドメインユーザーであり、クラスターの各ノードのローカルAdministratorsグループのメンバーである必要があります。
- PowerShell®から、管理者として次のコマンドを実行します。
Import-Module FailoverClusters
$node = "<Node's Name>"
(Get-ClusterNode $node).NodeWeight = <Desired integer value (use 0 to remove the node's quorum
vote)>
You can use the commands below to review the NodeWeight settings for all nodes in the cluster:
$cluster = (Get-ClusterNode $node).Cluster
$nodes = Get-ClusterNode -Cluster $cluster
$nodes | Format-Table -property NodeName, State, NodeWeight
フェールオーバークラスターインスタンスを維持または更新するには、すべてのノードでサービスとしてログオンする権限を持つローカル管理者である必要があります。
-
フェールオーバークラスターマネージャーを開きます スナップイン。
-
+をクリックします サービスとアプリケーションの横 左側のペインで、フェールオーバーClusterInstanceをクリックします。
-
右側のペインのサーバー名の下 カテゴリをクリックし、SQL Serverインスタンスを右クリックして、プロパティをクリックします。 。
-
プロパティ 一般のダイアログボックス タブで、IPアドレスリソースを変更します。
-
OKをクリックします ダイアログボックスを閉じます。
-
右側のペインで、SQL IPアドレス1(インスタンス名)を右クリックし、オフラインにするを選択します。 。
-
右側のペインで、 SQL Serverを右クリックします オンラインにするを選択します 。
-
フェールオーバークラスターマネージャースナップインを閉じます。
HealthCheckTimeoutを構成します プロパティペッティング
ALTER SETTINGS
が必要です およびVIEW SERVER STATE
この構成を実行するための権限。
このプロパティの値はミリ秒単位で、デフォルト値は30,000(30秒)、最小値は15,000(15秒)です。
PowerShell®から、管理者として次のコマンドを実行します。
Import-Module FailoverClusters
$instance = "SQL Server (INST1)"
Get-ClusterResource $instance | Set-ClusterParameter HealthCheckTimeout <Desired Tim Out Time (in
milliseconds)>
FailureConditionLevelを構成します プロパティ設定
ALTER SETTINGS
が必要です およびVIEW SERVER STATE
この構成を実行するための権限。
この構成は、PowerShell、フェールオーバーCLuster Manager、またはTransactSQLを使用して実行できます。
PowerShell®から、管理者として次のコマンドを実行します。
Import-Module FailoverClusters
$instance = "SQL Server (instance name)"
Get-ClusterResource $instance | Set-ClusterParameter FailureConditionLevel 3
-
フェールオーバークラスターマネージャーを開きます スナップイン。
-
サービスとアプリケーションの横にあるプラス記号をクリックします フェールオーバークラスターインスタンスを選択します 。
-
その他のリソースの下にあるSQLサーバーリソースを右クリックします>プロパティ メニューにあります。
-
プロパティを選択します タブで、
FaliureConditionLevel
に必要な値を入力します プロパティをクリックし、[ OK ]をクリックします 変更を適用します。
Transact-SQLを使用
次のコマンドを入力します:
ALTER SERVER CONFIGURATION SET FAILOVER CLUSTER PROPERTY FailureConditionLevel = <desired level (0-5)>;
レベル | 状態 | 説明 |
---|---|---|
0 | 自動フェイルオーバーまたは再起動なし | フェイルオーバーまたは再起動が自動的にトリガーされないことを示します |
1 | サーバーのフェイルオーバーまたは再起動 | 次の条件が発生した場合にサーバーの再起動またはフェイルオーバーがトリガーされることを示します:SQLServerサービスがダウンしています。 |
2 | サーバーが応答しない場合のフェイルオーバーまたは再起動 | 次のいずれかの条件が発生した場合にサーバーの再起動またはフェイルオーバーがトリガーされることを示します:SQL Serverサービスがダウンしている、SQL Serverインスタンスが応答していない(リソースDLLはHealthCheckTimeout設定内のsp_server_diagnosticsからデータを受信できません)。 |
3 * | 重大なサーバーエラーでフェイルオーバーまたは再起動 | 次のいずれかの条件が発生した場合にサーバーの再起動またはフェイルオーバーがトリガーされることを示します:SQL Serverサービスがダウンしている、SQL Serverインスタンスが応答しない(リソースDLLがHealthCheckTimeout設定内のsp_server_diagnosticsからデータを受信できない)、システムストアドプロシージャsp_server_diagnostics 'システムエラー'を返します。 |
4 | 中程度のサーバーエラーでフェイルオーバーまたは再起動 | 次のいずれかの条件が発生した場合にサーバーの再起動またはフェイルオーバーがトリガーされることを示します:SQL Serverサービスがダウンしている、SQL Serverインスタンスが応答しない(リソースDLLがHealthCheckTimeout設定内のsp_server_diagnosticsからデータを受信できない)、システムストアドプロシージャsp_server_diagnostics 「システムエラー」を返し、システムストアドプロシージャsp_server_diagnosticsは「リソースエラー」を返します。 |
5 | 適切な障害状態でのフェイルオーバーまたは再起動 | 次のいずれかの条件が発生した場合にサーバーの再起動またはフェイルオーバーがトリガーされることを示します:SQL Serverサービスがダウンしている、SQL Serverインスタンスが応答しない(リソースDLLがHealthCheckTimeout設定内のsp_server_diagnosticsからデータを受信できない)、システムストアドプロシージャsp_server_diagnostics 「システムエラー」を返し、システムストアドプロシージャsp_server_diagnosticsは「リソースエラー」を返し、システムストアドプロシージャsp_server_diagnosticsは「query_processingエラー」を返します。 |
*デフォルト値