0

私はオラクルの新人なので、おそらく些細な、またはばかげた質問で申し訳ありません。このようなデータベース リンクを介して 2 つの Oracle データベース (12g と 11g) を相互接続する必要があります。

CREATE SHARED DATABASE LINK SYSEL AUTHENTICATED BY scot IDENTIFIED BY ********* USING 'SYSEL'

私の tnsnames.ora:

or# tnsnames.ora Network Configuration File: C:\app\Administrator\product\12.1.0\dbhome_1\network\admin\tnsnames.ora
Generated by Oracle configuration tools.

LISTENER_ORCL =
(ADDRESS = (PROTOCOL = TCP)(HOST = Panoramix)(PORT = 1524))


ORACLR_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
  (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1524))
)
(CONNECT_DATA =
  (SID = CLRExtProc)
  (PRESENTATION = RO)
)
 )

ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = Panoramix)(PORT = 1524))
(CONNECT_DATA =
  (SERVER = DEDICATED)
  (SERVICE_NAME = orcl)
)
)


SYSEL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = Panoramix)(PORT = 1521))
(CONNECT_DATA =
  (SERVER = DEDICATED)
  (SERVICE_NAME = studuk)
  )
)

しかし、クエリを実行すると (たとえばselect * from dual@sysel)、常に次のエラーが発生します。実行されていません。*処置: 指定された宛先アドレスがリスナーによって使用されるアドレスの1つと一致することを確認してください。TNSNAMES.ORAエントリを適切なLISTENER.ORAファイル(または、接続が交換を経由する場合はTNSNAV.ORA)と比較してください。リモート マシンでリスナーを起動します。行のエラー: 1 列: 20

私の LISTENER.ORA:

 SID_LIST_LISTENER =
 (SID_LIST =
(SID_DESC =
  (SID_NAME = CLRExtProc)
  (ORACLE_HOME = C:\app\Administrator\product\12.1.0\dbhome_1)
  (PROGRAM = extproc)
  (ENVS = "EXTPROC_DLLS=ONLY:C:\app\Administrator\product\12.1.0\dbhome_1\bin\oraclr12.dll")
 )
 )

LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
  (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1524))
  (ADDRESS = (PROTOCOL = TCP)(HOST = Panoramix)(PORT = 1524))
 )
)

私は panoramix に stunnel を持っています (そしてそれは完全に機能しています。私は sql 開発者を介して studuk に接続することができ、studuk を tnsping することもできます。しかし、データベース リンクは機能しません。何らかの方法で変更する必要があると思います。 listener.ora ですが、方法がわかりません... 何が問題なのですか? Pls, help. 最高の Josef K.


リスナーはポート 1521 でリッスンしますが、select * from dual@sysel としてクエリを実行しようとすると、残念ながら次のエラーが発生します。

    ORA-12514: TNS:proces listener v současnosti nezná službu požadovanou v deskriptoru připojení
   12514. 00000 -  "TNS:listener does not currently know of service requested in connect    descriptor"
  *Cause:    The listener received a request to establish a connection to a
       database or other service. The connect descriptor received by the listener
       specified a service name for a service (usually a database service)
         that either has not yet dynamically registered with the listener or has
       not been statically configured for the listener.  This may be a temporary
       condition such as after the listener has started, but before the database
       instance has registered with the listener.
 *Action:   
       - Wait a moment and try to connect a second time.
       - Check which services are currently known by the listener by executing:
       lsnrctl services <listener name>
       - Check that the SERVICE_NAME parameter in the connect descriptor of the
       net service name used specifies a service known by the listener.
       - If an easy connect naming connect identifier was used, check that
       the service name specified is a service known by the listener.
       - Check for an event in the listener.log file.

行のエラー: 1 列: 20

サービス sysel がリスナーに登録されるように、すでに listener.ora を変更しようとしましたが、成功しませんでした:

SID_LIST_listener=
 (SID_LIST=
(SID_DESC=
(GLOBAL_DBNAME=SYSEL)
(SID_NAME=studuk)
(ORACLE_HOME=C:\app\Administrator\product\12.1.0\dbhome_1)))

どうやら、私の Oracle インスタンスはサービス SYSEL をリスナーに登録できません。ALTER SYSTEM REGISTER も試しましたが、成功しませんでした。

スクリプト

select value from v$parameter where name='service_names' 

デフォルトの「ORCL」のみを返します

サービス SYSEL をリスナーに登録するにはどうすればよいですか? ジョセフ K さん、ありがとうございます。

4

0 に答える 0