web-dev-qa-db-ja.com

TNSにフェイルオーバーがあるデータベースへのDBリンクを作成する方法

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.
1
panda_avi

参照されているMOSは、単に次のように述べています:

  • DblinksはTAFをサポートしていません。これはFAILOVERではなくFAILOVER_MODEパラメータを参照します。最初のパラメーターはTAFに関するもので、2番目は接続時フェイルオーバーに関するものです。
  • RACの場合、dblinksにSCANアドレスを使用することはお勧めしません。 SCANアドレスの代わりに、VIPアドレスを使用します。

FAILOVERパラメータを削除しても何も変更されません。デフォルトのパラメータはONです。

[〜#〜]フェイルオーバー[〜#〜]

接続時フェイルオーバーパラメータを削除する必要はありません。

0
Balazs Papp