web-dev-qa-db-ja.com

SQL Server 2012フェールオーバークラスターノードがクラスターサービスを開始しない

この環境には、2ノードのSQLサーバーフェールオーバークラスターがセットアップされています。

Node2 SQLサーバーマシンがシャットダウンしました。

電源を入れて、フェールオーバークラスターに接続し直しました。

接続に成功しましたが、node1クラスタサービスを起動しても起動しません。

フェールオーバークラスターのネットワーク接続では、SQLイーサネットは使用できません。 node1でIPconfigを実行しようとすると、マシンのIPアドレスしか表示されません。node2では、WindowsクラスターIPとSQLクラスターIPが表示されます。私はクラスター検証レポートを実行しましたが、これは目立ったものです:

Node SQL-01.ourserver.com is not reachable from node SQL-02.ourserver.com. It is necessary that each cluster node can communicate each other cluster node by a minimum of one network path (though multiple paths are recommended to avoid a single point of failure). Please verify that existing networks are configured properly or add additional networks. node2も同じエラーが発生し、node2がnode1から到達できないことを通知します。

Node1でクラスターサービスを再開するにはどうすればよいですか?

この情報が役立つかどうかはわかりませんが、このウィンドウとSQLクラスターが作成された後、マシンの名前を変更しました enter image description here

3
Keith Rivera

herehere および here で説明されているまったく同じではないが類似の問題がありました。

Node1でクラスターサービスを再開するにはどうすればよいですか?

ノードがWindowsサーバーのクラスター設定でaloneと感じると、クォーラムが失われます。

次に、クォーラムなしでWindowsクラスターフェールオーバーサービスを開始するには、開始するためにforceする必要があります。

これは非常に重要です。通常、次のようなものになるからです。

windowsクラスター名-すべてのアプリケーションが接続を試みる名前:これはthe_serverと呼ばれていますが、実際にはthe_serverと呼ばれています存在しない、存在するものはnode1およびnode2(さらに、クォーラムディスクまたはクォーラム目的の共有ストレージ)-soノードが1つしか残っていない場合でも、すべてのアプリケーションがthe_serverを見つけられるように、Windowsクラスターフェイルオーバーサービスを実行する必要があります。

私がそうする方法は、powershellを使用することです:

Import-Module FailoverClusters  

$node = "Always OnSrv02"  
Stop-ClusterNode -Name $node  
Start-ClusterNode -Name $node -FixQuorum  

(Get-ClusterNode $node).NodeWeight = 1  

$nodes = Get-ClusterNode -Cluster $node  
$nodes | Format-Table -property NodeName, State, NodeWeight

これはここで詳しく説明されています:

クォーラムなしでWindowsサーバーフェールオーバークラスターを強制的に起動する

クォーラムなしでクラスターを強制的に起動するには:

  1. 管理者として実行を使用して、管理者特権のWindows PowerShellを起動します。
  2. FailoverClustersモジュールをインポートして、クラスターコマンドレットを有効にします。
  3. Stop-ClusterNodeを使用して、クラスターサービスが停止していることを確認します。
  4. Start-ClusterNodeを-FixQuorumと共に使用して、クラスターサービスを強制的に開始します。
  5. -Propery NodeWieght = 1でGet-ClusterNodeを使用して、ノードがクォーラムの投票メンバーであることを保証する値を設定します。
  6. クラスターノードのプロパティを読み取り可能な形式で出力します。

まず、フェールオーバークラスターマネージャーアプリケーションを入手して、取得した内容を見てみましょう。

enter image description here

これは次のようになります。

enter image description here

ノード内のサーバーを確認します。 enter image description here

これは、クラスタリングサービスを管理する通常の方法です。

ただし、クォーラムがない場合は、サービスを強制的に開始する必要があります。そのためには このリンク に従う必要があります。

wayを実行してpowershellを実行することを忘れないでください:

enter image description here

enter image description here

このスクリプトを実行する方法は、コマンドごとです最初にこれ:

Import-Module FailoverClusters  

その後

$node = "SQLPROD2"  
#Stop-ClusterNode -Name $node  
Start-ClusterNode -Name $node -FixQuorum  

(Get-ClusterNode $node).NodeWeight = 1  

$nodes = Get-ClusterNode -Cluster $node  
$nodes | Format-Table -property NodeName, State, NodeWeight   

そして、すべてが良い-ノードが1つだけ稼働している状態で-新しいノードを追加するまで(ただし、ダウンタイムはなく、アプリケーションは混乱せず、the_serverに接続していません):

enter image description here

1