- - PR -
tns経由での接続でORA-12154が出る
1
| 投稿者 | 投稿内容 | ||||
|---|---|---|---|---|---|
|
投稿日時: 2007-06-19 17:47
どなたか教えてください。
クライアントからsqlplusで接続しようとすると ORA-12154: TNS:could not resolve the connect identifier specified のエラーが出て接続できません。 クライアントからのコマンド: sqlplus hoge/hoge@AAA 同クライアントからtnspingを実施すると正常に返ってきます。 またNetCAやNetmgrで確認すると接続できます。 サーバ上でsqlplusを実行しても接続できます。 サーバ上でのコマンド: sqlplus hoge/hoge@AAA @AAAをはずしても接続はできます。 どなたか心当たりのある方ご教示願えませんでしょうか・ | ||||
|
投稿日時: 2007-06-19 17:53
補足説明です。
サーバはLinux REDHAT 9で、オラクルは10.1.0.2.0です。 クライアントはWindows XP SP2でオラクルは10.2.0.1.0です。 ちなみにサーバはクライアント機のVirtualPC上で動作しており、 お互いにpingも通っております。 | ||||
|
投稿日時: 2007-06-19 18:05
で、クライアントの tnsnames.ora とサーバの listener.ora と tnsping の結果は?
_________________ もしもし@RMAN 友の会 | ||||
|
投稿日時: 2007-06-19 18:18
早速のお返事ありがとうございます。
クライアントのTNSNAMES.ORAの記述は以下です。 hoge = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = SVNAME)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = db01.domain.co.jp) ) ) サーバのLISTENER.ORAの記述は以下です。 SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = PLSExtProc) (ORACLE_HOME = /home/oracle/R100/app/oracle/product/10.1.0.2) (PROGRAM = extproc) ) (SID_DESC = (SID_NAME = db01 (ORACLE_HOME = /home/oracle/R100/app/oracle/product/10.1.0.2) (GLOBAL_DBNAME = domain.co.jp ) ) ) LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC)) ) (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = SVNAME)(PORT = 1521)) ) ) ) サーバからのtnspingは正常に返ってきます。 | ||||
|
投稿日時: 2007-06-19 18:32
ヒント:SERVICE_NAME と GLOBAL_DBNAME
で、
どんな結果になったんでしょうか? # ま、"could not resolve the connect identifier specified" って # あるとおり問題は connect_data の書き方の問題だし、tnsping は # connect_data の内容は見ないですから結果は直接関係しないんですが # 情報として出すときのお約束として。 _________________ もしもし@RMAN 友の会 | ||||
|
投稿日時: 2007-06-19 18:41
tnspingの結果(サーバ)
パラメータ・ファイルを使用しました: /home/oracle/R100/app/oracle/product/10.1.0.2/network/admin/sqlnet.ora エイリアスを解決するためにTNSNAMESアダプタを使用しました。 Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = SVNAME )(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = db01.domain.co.jp))) OK (580ミリ秒) ちなみにクライアントからのtnspingの結果は以下となります。 d:\oracle\product\10.2.0\client_1\network\admin\sqlnet.ora エイリアスを解決するためにTNSNAMESアダプタを使用しました。 Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP) (HOST = SVNAME)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = db01.domain.co.jp))) OK (10ミリ秒) また、クライアントのsqlnet.oraの記述は以下となります。 SQLNET.AUTHENTICATION_SERVICES= (NONE) TRACE_LEVEL_CLIENT = SUPPORT NAMES.DIRECTORY_PATH= (TNSNAMES) TRACE_LEVEL_SERVER = SUPPORT TRACE_DIRECTORY_CLIENT = D:\oracle\product\10.2.0\client_1\NETWORK\ADMIN TRACE_FILE_CLIENT = trace.log LOG_FILE_CLIENT = tns.log LOG_DIRECTORY_CLIENT = D:\oracle\product\10.2.0\client_1\NETWORK\ADMIN | ||||
|
投稿日時: 2007-06-20 15:58
どーなったのかな...。
とりあえず、クライアントから接続要求には "db01.domain.co.jp" というサービス名のインスタンスに接続しようとしていますが、リスナーには "domain.co.jp" という名前でデータベースを登録しているような感じですが。 # データベース自身も local_listener の初期化パラメータか # デフォルトの 1521 をリスニングしているリスナーがあればそいつに # 自分の SID とグローバルデータベース名を登録しに行くから、 # リモートからデータベースを停止・起動することがなければ # いっそのこと動的登録だけにしちゃうってのも手かと。 _________________ もしもし@RMAN 友の会 | ||||
|
投稿日時: 2007-06-27 21:56
>もしもしさん
どうも、ご無沙汰しております。 最近こちらの作業ができなかったのですが、 VirtualPCでもう一台クライアントとなるLinuxを用意して 接続したところ、正常に接続ができました。 TNSの記述はまったく同じなのに・・・ ということで先ほどWindowsのオラクルクライアントモジュールを 再インストールしたところ無事に接続ができるのが 確認できました。 バイナリが正常に落ちていなかったみたいです・・・。 いろいろとありがとうございました。>もしもしさん | ||||
1
