Denali でちょっと変更があるので、今のうちに SQL Server 2008 R2 までの LooksAlive / IsAlive について簡単にまとめておきたいと思います。
# 基本的には 2008 R2 以前のバージョンは動作は同じです。
■LooksAlive / IsAliveについて
私は、どっちがどっちだったかよく忘れてしまうのですが…。
# ちなみに、REDO と UNDO もどっちがどっちかよく忘れます(汗)
クラスターのリソースの正常性検査のため、Windows のクラスターでは LooksAlive / IsAlive によるリソースの監視が行われています。
- LooksAlive
- サービスのステータスを短い間隔 (SQL Server のリソースの既定では 5 秒間隔) で確認
- IsAlive
- 起動しているサービスが正常に稼働しているかを LooksAlive より長い間隔 (SQL Server のリソースの既定では 60 秒間隔) で確認
LooksAlive でサービスが起動していることを確認し、IsAlive が起動しているサービスが正常に動作することを確認しています。
これにより、サービスは動いているけど SQL Server が機能していないという状態を防ぐことができるようになっています。
■IsAlive の確認内容
LooksAlive はサービスが起動しているかを確認しますが、IsAlive は起動しているサービスが正常に動作しているかを確認します。
そのためサービスの起動状況だけでは IsAlive による正常性検査は成立しないことになります。
SQL Server のリソースの IsAlive の内容は以下のようになっています。
ユーザー プローブとして SQL Server に接続し、単純なクエリを実行します。
これは [フェールオーバー クラスタリングをインストールする前に] に記載されている情報の引用になります。
SQL Server の IsAlive による正常性検査は SQL Server に接続をし単純なクエリが実行することが可能かを確認することにより実施されています。
さらに上記の技術情報を読むと以下の記載が。
MSCS では、IsAlive チェックを使用して、フェールオーバー クラスター インスタンスが実行されていることを確認できる必要があります。そのため、信頼関係接続を使用して、サーバーに接続する必要があります。既定では、クラスター サービスを実行するアカウントはクラスター内のノードの管理者として構成されていないため、BUILTINAdministrators グループには SQL Server にログインする権限がありません。これらの設定が変更されるのは、クラスター ノードで権限を変更する場合だけです。
IsAlive チェックを行えるように、Cluster Service を実行しているグループまたはアカウントが SQL Server にログインできるようにします。ログインできないと、IsAlive チェックが失敗します。定期的に SELECT @@servername を実行できるように、MSCS Cluster Service アカウントには、少なくとも SQL Server への public 権限が必要です。
SQL Server のクラスター環境では IsAlive の確認で、クラスターのサービスアカウントで信頼関係接続 (Windows 認証) を使用して定期的に [SELECT @@servername] を実行して、SQL Server のサービスが正常に稼働しているかを確認しています。
SQL Server Profiler を使用すると実際に実行されていることを確認することができます。
Windows Server 2008 以降はクラスターのサービスは [ローカル システム アカウント] で起動していますので、[NT AUTHORITYSYSTEM] で SQL Server に接続をしてクエリを実行します。
# Windows Server 2003 以前はクラスターサービスはドメインユーザーを使用して起動しています。
クラスターのサービスアカウントが SQL Server にログインできないように設定をしてしまうと、IsAlive が正常に動作しなくなり、SQL Server のサービスを起動できなくなってしまうので注意が必要です。
この IsAlive の仕組みですが、Denali ではかなり変わっています。
次の投稿で Denali の IsAlive についてまとめてみたいと思います。
[…] 前回は、クラスター環境の SQL Server 2008 R2の LooksAlive / IsAlive 投稿しました。 […]
クラスター環境の Denali の IsAlive について « SE の雑記
20 5月 11 at 22:29