web-dev-qa-db-ja.com

SQLフェールオーバークラスタークライアントがDNSを更新しない

2つのWindows2012R2ノードで実行されているマルチサブネットSQLServer2012フェールオーバークラスターがあります。クラスターは、NODE Aでは192.168.1.10に、NODE Bで実行している場合は192.168.5.10にあります。ドメインでDNSを見ると、2つのAレコードが表示されます。

SQLCLUSTER-192.168.1.10

SQLCLUSTER-192.168.5.10

同じ名前のAレコードが2つあるときに読んだところによると、Windowsクライアントは10秒以内にライブIPを判別できるほど賢いはずですが、それがわかりません。クラスタをNODEAからNODEBにフェイルオーバーすると、多くのクライアントマシン(WebおよびSSRS)が新しいIPアドレスを取得しません。

したがって、たとえば、SSRSマシンを使用してSQLCLUSTERにpingを実行すると、192.168.1.10からの応答が表示されます。クラスターをNODEBにフェイルオーバーして再度pingを実行しても、.5.10ではなく192.168.1.10にpingを実行しようとしています。

正しく機能することを確認する唯一の方法は、オフラインノードのDNSレコードを削除してから、クライアントでflushdns/registerdnsを実行することです。ここで見逃したことがあるのでしょうか? DNSサーバーが192.168.1.xサブネット上にあり、それが.1.xアドレスを優先する可能性があるという問題ですか?

イベントビューアを見ると、DNSレコードの書き込みや読み取りに関するエラーは見られないため、何かが正しく構成されていない可能性があると思われます。

2
edgesrazor

わかりました。回避策を見つけたと思います。正確にはきれいではありませんが、機能します。

ここにある情報から: https://blogs.msdn.Microsoft.com/sambetts/2014/02/04/multi-subnet-clustered-sql-registerallprovidersip-sharepoint-2013/

RegisterAllProvidersIPを0に設定してから、HostRecordTTLを300に設定し、再起動しました役割。

これにより、クラスターはDNSに1つのアドレスのみを登録し、デフォルトでそのTTLを5分にします。

2
edgesrazor