Oracle RACが動作可能な環境を作成するために、Oracle側の設定を行ってください。
Oracle側の設定は、ロードバランスの使用有無で異なります。
ロードバランスを使用しない場合
アプリケーション(JDBCデータソース)ごとにデフォルトの接続先ノードを決めておき、故障が発生した場合だけに他のノードに接続します。Oracleのサーバ側のlistener.oraに、以下の例のように設定してください。
例
Oracleサーバ1のlistener.ora の例
LISTENER = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = server1)(PORT = 1521)) ) SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = smpl) (SID_NAME = smpl1) (ORACLE_HOME = /opt/app/oracle/product/9.2.0) ) )
ociドライバを使用する場合
ociドライバを使用する場合は、Oracleクライアント(Interstage)側のtnsnames.oraに、以下の例のように設定してください。thinドライバを使用する場合は不要です。
例
クライアント(Interstage)側のtnsnames.oraの例
SAMPLE.WORLD = (DESCRIPTION = (ENABLE = BROKEN) (FAILOVER = ON) (ADDRESS = (PROTOCOL = TCP)(HOST = server1)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = server2)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = server3)(PORT = 1521)) (CONNECT_DATA = (SERVICE_NAME = smpl)) )
ロードバランスを使用する場合
ロードバランス機能により、通常運用時から負荷分散を行います。ロードバランスには、“クライアント・ロード・バランス”と“リスナー・ロード・バランス”があります。
アプリケーション側から、Oracleのリスナーへの振り分けを行います。
リスナーから、Oracleインスタンスへの振り分けを行います。
例
“クライアント・ロード・バランス”および“リスナー・ロード・バランス”を使用した設定例を示します。以下の例のように設定してください。
Oracleサーバ1の初期化パラメータの例
注) 以下の例では関係する部分を抜粋しています。
local_listener = "(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(Host = server1)(Port = 1521)))"
remote_listener = "(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(Host = server2)(Port = 1521)) (ADDRESS = (PROTOCOL = TCP)(Host = server3)(Port = 1521)))"
Oracleサーバ1のlistener.ora の例
LISTENER = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(Host = server1)(Port = 1521)) )
ociドライバを使用する場合
ociドライバを使用する場合は、Oracleクライアント(Interstage)側のtnsnames.oraに、以下の例のように設定してください。thinドライバを使用する場合は不要です。
例
クライアント(Interstage)側のtnsnames.oraの例
SAMPLE.WORLD = (DESCRIPTION = (ENABLE = BROKEN) (LOAD_BALANCE = ON) (FAILOVER = ON) (ADDRESS = (PROTOCOL = TCP)(HOST = server1)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = server2)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = server3)(PORT = 1521)) (CONNECT_DATA = (SERVICE_NAME = smpl)) )