Tnsエントリにフェイルオーバーオプションがあるデータベース(RAC env、Oracle 12c)と私のDB LINK作成sqlがどのように見えるかを理解するのを手伝っていただけませんか?
Oracleから以下の投稿を読みました Oracleサポートのメンバーシップを持っていないため、URLの下のビューにアクセスできません)
フェイルオーバー用に構成されたTNS接続文字列を使用してDBLinkを作成しないでください。 #データベースリンクはTAFまたはフェイルオーバーをサポートしていません。以下を参照してください:データベースリンク:TAFまたはSCAN TNS接続文字列を使用したDBLink作成(ドキュメントID 399453.1)---(https://support.Oracle.com/knowledge/Oracle%20Database%20Products/399453_1.html
これは、フェイルオーバーを削除し、tnsエントリからオプションなどを接続してから、dbリンクを作成する必要があることを意味しますか?私のTNSエントリは以下にあります(単なるサンプル)
panda.Host.com=
(DESCRIPTION =(FAILOVER=ON)(LOAD_BALANCE=OFF)
(CONNECT_TIMEOUT=3)(RETRY_COUNT=10)(RETRY_DELAY=1)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP )(Host = panda.Host.com )(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP )(Host = panda-sb.Host.com )(PORT = 1521)))
(CONNECT_DATA = (SERVICE_NAME = panda_app.Host.com ))))
私は現在、このデータベースを指す別のデータベースにDBリンクを作成しようとしています。そのため、上記の事実に基づいて、以下のSQLのうちどれが正しく、機能しますか? 「using」句では、tnsnames.oraを変更することが許可されていないため、接続記述子を提供しています。
1.
CREATE DATABASE LINK TEST_LINK connect to REMOTE_SCHEMA identified by "MyPass" using
'(DESCRIPTION =(FAILOVER=ON)(LOAD_BALANCE=OFF)
(CONNECT_TIMEOUT=3)(RETRY_COUNT=10)(RETRY_DELAY=1)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP )(Host = panda.Host.com )(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP )(Host = panda-sb.Host.com )(PORT = 1521)))
(CONNECT_DATA = (SERVICE_NAME = panda_app.Host.com ))))';
2.
CREATE DATABASE LINK TEST_LINK connect to REMOTE_SCHEMA identified by "MyPass" using
'(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP )(Host = panda.Host.com )(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP )(Host = panda-sb.Host.com )(PORT = 1521)))
(CONNECT_DATA = (SERVICE_NAME = panda_app.Host.com ))))';
//failover and connect options are removed.
参照されているMOSは、単に次のように述べています:
FAILOVER
ではなくFAILOVER_MODE
パラメータを参照します。最初のパラメーターはTAFに関するもので、2番目は接続時フェイルオーバーに関するものです。FAILOVER
パラメータを削除しても何も変更されません。デフォルトのパラメータはON
です。
接続時フェイルオーバーパラメータを削除する必要はありません。