Sun Cluster 2.2 ソフトウェアのインストール

OPS と IP フェイルオーバー

Oracle SQL*Net は、OPS 環境でノード障害が発生した場合に、IP フェイルオーバー機能を使用することなく正常に動作している残りのサーバーに再接続するように構成できます。

OPS 環境では、複数の Oracle インスタンスが協力して、同じ共有データベースへのアクセスを可能にします。Oracle クライアントは、インスタンスのどれを使用しても、データベースにアクセスできます。つまり、インスタンスに問題が発生しても、クライアントは、残りのインスタンスに接続することによって、引き続きデータベースにアクセスできます。

残りのインスタンスに再接続する作業を行う方法は多数あります。

Oracle SQL*Net の高可用性機能

Oracle クライアントから見ると、モデルは単純です。サーバーがクラッシュしたとき、クライアントは接続が切断されたことを検出します。クライアントはサーバーに再接続し、トランザクションを再実行するように依頼します。Oracle SQL*Net には、同じサービスの下で複数のホストにまたがって動作する複数インスタンスを組み込む機能が用意されています。この機能により、再接続したとき、クライアントは自動的に残りのインスタンスを利用できます。この再接続は自動的ではありません。一般に、クライアントには、前回と同じサービスに再接続するコードを組み込みます。


注 -

ノードまたはインスタンス障害あると、残りのサーバーは障害が発生したインスタンスを最初に回復する必要があります。この回復中、クライアントは、インスタンスからの応答がないことを検出します。この回復処理は、Sun Cluster フレームワークとは何の関係もありません。この回復は、Oracle、トランザクションボリューム、OPS に対する回復機能に完全に依存します。


Oracle SQL*Net の構成

ここでは、TNSNAMES.ORA を使用して、クライアント上に Oracle SQL*Net を構成する 2 つの方法を示します。クライアントが生き残りインスタンスに接続する時間が、Oracle SQL*Net を構成するために使用する方法の影響を受けることはありません。

ora =
 (DESCRIPTION =
 		(ADDRESS_LIST =
 			(ADDRESS =
 					(PROTOCOL = TCP)
 					(HOST = erlan)
 					(PORT = 1526) <- instance 1
 			)
 			(CONNECT_DATA= (SID=ora))
 		)
 	(ADDRESS_LIST =
 			(ADDRESS =
 				(PROTOCOL = TCP)
 					(HOST = weibull)
 					(PORT = 1526) <- instance 2
 			)
 			(CONNECT_DATA= (SID=ora))
 	)
 )
ora =
 (DESCRIPTION_LIST =
 	(DESCRIPTION =
    			(ADDRESS_LIST =
 				(ADDRESS =
 						(PROTOCOL = TCP)
 						(HOST = erlang)
 						(PORT = 1526))
 				(CONNECT_DATA = (SID = ora)(GLOBAL_NAME = ora))
 	)
 	(DESCRIPTION =
   			(ADDRESS_LIST =
         				(ADDRESS =
 						(PROTOCOL = TCP)
 						(HOST = weibull)
 						(PORT = 1526))
   				(CONNECT_DATA = (SID = ora1)(GLOBAL_NAME = ora))
 	)
 )

この構成では、インスタンスごとにリスナーが動作します。