SE の雑記

SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿

AlwaysOn Availability Groups のリスナーについて

leave a comment

Denali CTP3 の AlwaysOn Availability Groups では設定時にリスナーを作成する必要があります。

image

クライアントはこのリスナーに対して接続を行うことで、どのサーバーがプライマリとして設定されているかを意識することなく、更新可能なデータベースを透過的に使用することが可能となります。

今回はこのリスナーについて簡単ではありますがまとめてみたいと思います。

■クライアントからの接続方法


AlwaysOn Availability Groups は SQL Server 2005 から実装されているデータベースミラーリングと似たような構成となっています。
# 自動フェールオーバー可能な同期モード / 手動フェールオーバーの同期モード / 非同期モードといった構成はミラーリングと基本的な考えは変わらないようです。

一つのインスタンスが更新可能なプライマリ (ミラーリングのプリンシパル) となり、それ以外のインスタンスが読み取り可能なセカンダリ (ミラーリングのミラー) となります。

ミラーリングでは一つのミラーしか設定ができなかったのですが、AlwaysOn Availability Groups では複数のセカンダリが設定できるのが大きな違いですね。
また、ミラーリングのウィットネス (監視サーバー) が AlwaysOn では不要になっています。
詳しくは調べられていないのですが、AlwaysOn Availability Groups ではクラスターの [SQL Server Availability Group] リソースがウィットネス相当の役割をしているのではと思っています。
image

さて、話は戻りましてクライアントの接続方法についてみていきたいと思います。

ミラーリングの場合、接続文字列に [Failover Partner 属性] を指定することで、ミラーのサーバーを指定していました。
データベース ミラーリング セッションへの最初の接続

image

AlwaysOn Availability Groups の場合は、接続先をリスナーの情報とすることで透過的に更新可能なインスタンス (プリンシパル) に接続を行います。
Client Connectivity and Application Failover (AlwaysOn Availability Groups)

現在は、[WIN-EMRGS5VITLTINSTANCE1] がプライマリとなっているのですが、SQL Server を使用しているクライアントではこのインスタンスがプライマリと意識して接続するのは大変ですよね。

image

そのためリスナーに対して接続をすることで透過的にプライマリに接続することが可能となります。
image

SSMS で接続をする場合はこのような形ですね。
リスナーはデフォルトで TCP 1433 で設定がされているので、インスタンス名の修飾をしなくても接続ができます。
image

プライマリのサーバーに透過的に接続ができました。
image

プライマリとなっている [WIN-EMRGS5VITLTINSTANCE1] に接続がされていますね。
image

それでは、手動でフェールオーバーをしてみたいと思います。
image
image

フェールオーバーしてプライマリが [WIN-RRRE0S7ECLJINSTAHCE1] に設定されているのが確認できますね。
image

リスナー対して接続してクエリを実行して、サーバーが切り替わっているのが確認できます。
image

AlwaysOn Availability Groups を使う場合はリスナーに対して接続をすることで透過的にプライマリを使用するのが確認できました。

リスナーに使われているコンピューター名 / IP アドレスですが、クラスターのクライアントアクセスポイントのリソースとして作成されるので、AD 上にコンピューターアカウントが作成されます。
image
image

AlwaysOn Availability Groups を使用する場合、このあたりの管理も考慮する必要が出てきますね。
# コンピューターアカウントの作成上限もありますので。

Written by masayuki.ozawa

7月 18th, 2011 at 2:32 pm

Posted in SQL Server

Tagged with , ,

Leave a Reply

*