Oracle RAC 11g Release 2 は複数のネットワークを経由するクライアント接続をサポートします。このリリースでは、接続されているネットワーク内でのクライアント接続の負荷分散やフェイルオーバーが可能です。IB ネットワーク上で着信する EECS 接続用のリスナーを追加するには、最初に、仮想 IP アドレスを持つ IB ネットワーク用のネットワークリソースを追加します。
これらの IP アドレスが使用されていないことを確認します。
例:
# Added for Listener over IB
192.168.10.21 ssc01db01-ibvip.mycompany.com ssc01db01-ibvip
192.168.10.22 ssc01db02-ibvip.mycompany.com ssc01db02-ibvip
# /u01/app/grid/product/11.2.0.2/bin/srvctl add network -k 2 -S 192.168.10.0/255.255.255.0/bondib0
# /u01/app/grid/product/11.2.0.2/bin/crsctl stat res -t | grep net
ora.net1.network
ora.net2.network -- 新しいネットワークリソースを示す出力
または
# /u01/app/grid/product/11.2.0.2/bin/srvctl config network -k 2
Network exists: 2/192.168.10.0/255.255.255.0/bondib0, type static -- Output indicating Network resource on the 192.168.10.0 subnet
srvctl add vip -n ssc01db01 -A ssc01db01-ibvip/255.255.255.0/bondib0 -k 2
srvctl add vip -n ssc01db02 -A ssc01db02-ibvip/255.255.255.0/bondib0 -k 2
srvctl add listener -l LISTENER_IB -k 2 -p TCP:1522,/SDP:1522
初期化パラメータに完全な tnsnames 構文を入力するか、$ORACLE_HOME/network/admin ディレクトリの tnsnames.ora にエントリを作成します。GRID_HOME に tnsnames.ora エントリが存在する必要があります。
次の例では、tnsnames.ora が最初に更新されます。データベースドメインの適切な IP アドレスを使用して、データベースドメインごとにこの手順を実行します。LISTENER_IBREMOTE には、クラスタ内にあるほかのすべてのデータベースドメインのリストを含めるようにしてください。DBM_IB には、クラスタ内のすべてのデータベースドメインのリストを含めるようにしてください。
(DESCRIPTION = DBM = (ADDRESS = (PROTOCOL = TCP)(HOST = ssc01-scan)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = dbm) )) DBM_IB = (DESCRIPTION = (LOAD_BALANCE=on) (ADDRESS = (PROTOCOL = TCP)(HOST = ssc01db01-ibvip)(PORT = 1522)) (ADDRESS = (PROTOCOL = TCP)(HOST = ssc01db02-ibvip)(PORT = 1522)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = dbm) )) LISTENER_IBREMOTE = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = ssc01db02-ibvip.mycompany.com)(PORT = 1522)) )) LISTENER_IBLOCAL = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = ssc01db01-ibvip.mycompany.com)(PORT = 1522)) (ADDRESS = (PROTOCOL = SDP)(HOST = ssc01db01-ibvip.mycompany.com)(PORT = 1522)) )) LISTENER_IPLOCAL = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = ssc0101-vip.mycompany.com)(PORT = 1521)) )) LISTENER_IPREMOTE = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = ssc01-scan.mycompany.com)(PORT = 1521)) ))
sysdba としてデータベースインスタンスに接続します。
SQLPLUS> alter system set listener_networks='((NAME=network2) (LOCAL_LISTENER=LISTENER_IBLOCAL)(REMOTE_LISTENER=LISTENER_IBREMOTE))', '((NAME=network1)(LOCAL_LISTENER=LISTENER_IPLOCAL)(REMOTE_LISTENER=LISTENER_IPREMOTE))' scope=both;
srvctl stop listener -l LISTENER_IB
srvctl start listener -l LISTENER_IB