高可用性は低コストなデータベースミラーリングで:SQL Server 2005を使いこなそう(8)(3/3 ページ)
5年ぶりのメジャーバージョンアップとなったSQL Server 2005。本連載では、SQL Server 2005への移行を検討しているデータベース管理者に向け、新規に実装されたさまざまな機能の詳細を紹介していく。(編集局)
クライアントからの透過的な接続
データベースミラーリング環境へSQL Native ClientまたはADO.NETを利用して接続する場合、データベースミラーリングによるフェールオーバー発生時にクライアントを自動リダイレクトさせることが可能です。
データベースミラーリングは動作モードの変更やサーバの入れ替えなどを柔軟に行うことが可能であるため、クライアントからの接続も、その柔軟性に対応できるよう2つの接続方法を持っています。
キャッシュ接続
データベースへの接続文字列は従来の
"server=A; database=AdventureWorks"
といった形で、クライアントのコードはこれまでと一切変わりません。クライアントはプリンシパルであるAサーバに接続したとき、Aサーバよりミラー先サーバの名前をダウンロードしキャッシュすることにより、フェールオーバーが発生した場合のBサーバへのリダイレクトを実現します。
ただし、この動作モードは一点だけ問題があります。Aサーバがダウンしているときに、新たなクライアントがAサーバへ接続しようと試みた場合、ミラー先の名前をダウンロードできないため、ミラーサーバにリダイレクトすることができません(図3)。
正常稼働時にサーバAに接続していたクライアント1はミラーサーバ名をキャッシュしていたため、フェールオーバー発生時には正常にリダイレクト。障害発生後にサーバAへ接続を試みたクライアント2はミラーサーバ名をキャッシュしていないため、接続をリダイレクトできない。
フェールオーバーパートナー指定接続
データベースへの接続文字列に第1接続先となるイニシャルパートナーと、フェールオーバー発生時に接続先となるフェールオーバーパートナーを指定します。接続文字列は次のような形になります。
"server=A; failover partner=B; database=AdventureWorks"
ミラーサーバ名を指定している場合、キャッシュ接続で発生したような問題は発生せず、フェールオーバー発生後に接続を試みたクライアントも、正常に接続先をリダイレクトすることが可能です。
フェールオーバーパートナーの指定により、フェールオーバー発生時にも各クライアントは正常にリダイレクトできる。
フェールオーバーパートナーを指定した場合でも、イニシャルパートナーへの接続に成功した場合は、プリンシパルより最新のミラーサーバ名をダウンロードしキャッシュします。この動作によって、ミラーリング構成の変更などにも柔軟に対応します。
状況 | プリンシパル | ミラー | クライアントの動作 |
---|---|---|---|
当初のミラーリング構成 | A | B | クライアントはイニシャルパートナーとしてAに接続を試み、失敗した場合はBへ接続を試みる。Aに接続した場合はミラーサーバ名をキャッシュし、接続文字列で指定したフェールオーバーパートナーは無視される。 |
フェールオーバー発生 | B | − | フェールオーバーパートナー名を利用して現在のプリンシパルサーバであるBへ接続する。 |
サーバの入れ替え1(ミラー構成を解除し、Cをミラー化) | B | C | サーバの入れ替え時にクライアントは切断される。再接続時、フェールオーバーパートナー名を利用してBに接続する。このとき、ミラーサーバ名としてCをキャッシュし、新たなフェールオーバーへ備える。 |
サーバの入れ替え2(強制的にCへフェールオーバー) | C | B | まずAに接続しようとして失敗する。続いてBに接続しようとするが、Bはミラーサーバのままであるため、この接続も失敗し、クライアントはデータベースへ接続することができない。 |
表3 ミラーリング構成の変更に対する対応 |
以上のように、データベースミラーリングはフェールオーバーが発生した場合でも、クライアントのコードを書き換えることなく対応することが可能です。
まとめ
データベースミラーリングはコストや手軽さの面で、中小規模のシステムに最適な高可用性を実現するソリューションです。追加のライセンスが必要ない点や、一般的なサーバマシンで構成可能な点はコスト面で大きな魅力です。また障害発生時の自動フェールオーバーも数秒で実現されるため、ECサイトなど24時間365日の稼働が求められるシステムが増加の一途をたどっている昨今では、特に求められるソリューションでしょう。
予算などの問題から、単純なバックアップやディスクのRAID化でとどまっていたシステムもデータベースミラーリングを利用することにより、コストを抑えながら高可用性を実現することが可能となるはずです。
次回は、データベースミラーリングの構成方法をお届けする予定です。お楽しみに!(次回へ続く)
著者紹介
石橋潤一
株式会社システムインテグレータ勤務。Web+DBの業務アプリをメインに開発に携わる。@IT連載記事「SQL Server 2005 CTPレビュー」執筆のほか、著書に『DBマガジン別冊 SQL Server 2005徹底活用ガイド』(翔泳社刊/共著)、『ASP.NET+SQL Server ゼロからはじめるWebアプリケーション』(ソフトバンクパブリッシング刊/共著)。
Copyright © ITmedia, Inc. All Rights Reserved.