Oracle RACは一部のサーバがダウンした場合、動作を続けているサーバがあれば稼動し続けることができます。
もしこのようなケースのときに、残りのサーバの動作状況を手作業で確認し、さらに接続定義を変更する必要があったとしたら、可用性があるとはいえるでしょうか。確かに継続した作業はできますが、運用上においては非常に手間がかかる作業であると思います。
しかしOracle RACの場合は、どのサーバが稼動しているかを意識せずに使用することができます。厳密にはOracle RAC自体の機能ではなく、Oracle Net Servicesの「接続時フェイルオーバー」で提供されているものです。複数のサーバで構成されたクラスタシステム全体を1つのサーバとみなして稼動させるこの機能はOracle RACと同時に使用されることが多いので、ここで紹介します。
この機能を使用するには、Oracleクライアント側のローカルネーミングパラメータファイル(tnsnames.ora)で設定を行います。例えば、以下の例のように定義する場合、デフォルトで「接続時フェイルオーバー」機能が有効化されます。
ローカルネーミングパラメータの設定
(画像をクリックすると別ウィンドウに拡大図を表示します)
ここで、サーバ「pe26501」の電源ボタンを押して強制停止させ、接続を実行してみました。次の実行例では「Copyright (c) 1982, 2005, Oracle. All Rights Reserved.」が出力された状態で少し待たされますが、問題なく接続できることを確認できました。
この環境では、SQL*Plusのプロンプトにインスタンス名を表示するように設定しており、動き続けているサーバ「pe26502」にあるインスタンス「ThinkIT2」に接続できたことが確認できます。
サーバ片系ダウン時の接続
D:\>sqlplus takemura/takemura@ThinkIT
SQL*Plus: Release 10.2.0.2.0 - Production on 土 5月 27 12:19:51 2006
Copyright (c) 1982, 2005, Oracle. All Rights Reserved.
※ここで少し待たされる
Oracle Database 10g Enterprise Edition Release 10.2.0.2.0 - Production
With the Partitioning, Real Application Clusters, OLAP and Data Mining options
に接続されました。
ThinkIT2>
|