13.4 プライマリおよびセカンダリ・インスタンス構成のインスタンス・ロールの指定
INSTANCE_ROLE
パラメータは、接続記述子のCONNECT_DATA
セクションのオプションのパラメータです。これを使用すると、Oracle RAC構成のプライマリまたはセカンダリ・インスタンスへの接続を指定できます。
-
プライマリまたはセカンダリ・インスタンスに明示的に接続する場合。デフォルトはプライマリ・インスタンスです。
-
TAFを使用してセカンダリ・インスタンスに事前に接続する場合。
表13-5に、INSTANCE_ROLEパラメータを説明します。
表13-5 INSTANCE_ROLEパラメータ
INSTANCE_ROLEのパラメータ | 説明 |
---|---|
PRIMARY |
プライマリ・インスタンスへの接続を指定します。 |
SECONDARY |
セカンダリ・インスタンスへの接続を指定します。 |
ANY |
プライマリ・インスタンス・ロールかセカンダリ・インスタンス・ロールかにかかわらず、ロード量が最小のインスタンスへの接続を指定します。 |
インスタンス・ロール・タイプへの接続
次のtnsnames.ora
ファイルの例では、ネットワーク・サービス名sales_primary
がプライマリ・インスタンスへの接続を使用可能にし、ネットワーク・サービス名sales_secondary
がセカンダリ・インスタンスへの接続を使用可能にします。
sales_primary= (DESCRIPTION= (ADDRESS_LIST= (ADDRESS= (PROTOCOL=tcp) (HOST=sales1-server) (PORT=1521)) (ADDRESS= (PROTOCOL=tcp) (HOST=sales2-server) (PORT=1521))) (CONNECT_DATA= (SERVICE_NAME=sales.us.example.com) (INSTANCE_ROLE=primary))) sales_secondary= (DESCRIPTION= (ADDRESS_LIST= (ADDRESS= (PROTOCOL=tcp) (HOST=sales1-server) (PORT=1521)) (ADDRESS= (PROTOCOL=tcp) (HOST=sales2-server) (PORT=1521))) (CONNECT_DATA= (SERVICE_NAME=sales.us.example.com) (INSTANCE_ROLE=secondary)))
特定のインスタンスへの接続
Oracle Enterprise Manager Cloud Controlおよびその他のシステム管理製品が、管理タスクを実行するロールにかかわらず、特定のインスタンスに接続する必要がある場合があります。このような接続の場合は、(INSTANCE_NAME=
instance_name
)および(
INSTANCE_ROLE=any
)を構成して、ロールにかかわらずインスタンスに接続します。
次の例では、ネットワーク・サービス名sales1
によってsales1-server
のインスタンスへの接続が可能になり、sales2
によってsales2-server
のインスタンスへの接続が可能になります。(SERVER=dedicated)
は、専用サーバー接続を強制するために指定します。
sales1= (DESCRIPTION= (ADDRESS= (PROTOCOL=tcp) (HOST=sales1-server) (PORT=1521)) (CONNECT_DATA= (SERVICE_NAME=sales.us.example.com) (INSTANCE_ROLE=any) (INSTANCE_NAME=sales1)(SERVER=dedicated)
)) sales2= (DESCRIPTION= (ADDRESS= (PROTOCOL=tcp) (HOST=sales2-server) (PORT=1521)) (CONNECT_DATA= (SERVICE_NAME=sales.us.example.com) (INSTANCE_ROLE=any) (INSTANCE_NAME=sales2)(SERVER=dedicated)
))
ノート:
フェイルオーバーは前の設定と互換性がありません。
接続事前確立のTAF
TAFが構成された場合、セカンダリ・インスタンスにバックアップ接続を事前に確立できます。初期接続およびバックアップ接続は明示的に指定する必要があります。次の例では、Oracle Netがsales1-server
のリスナーに接続し、セカンダリ・インスタンスのsales2-server
に事前に接続します。接続後にsales1-server
に障害が発生した場合は、TAFアプリケーションがセカンダリ・インスタンスのsales2-server
にフェイルオーバーし、実行中のSELECT
文があればその文を保持します。
sales1.example.com= (DESCRIPTION= (ADDRESS= (PROTOCOL=tcp) (HOST=sales1-server) (PORT=1521)) (CONNECT_DATA= (SERVICE_NAME=sales.us.example.com) (INSTANCE_ROLE=primary)(FAILOVER_MODE=
(BACKUP=sales2.example.com)
(TYPE=select)
(METHOD=preconnect))
)) sales2.example.com= (DESCRIPTION= (ADDRESS= (PROTOCOL=tcp) (HOST=sales2-server) (PORT=1521)) (CONNECT_DATA= (SERVICE_NAME=sales.us.example.com) (INSTANCE_ROLE=secondary)))
親トピック: Oracle Net Servicesの拡張機能の使用