前提
お世話になります。
タイトルの通りになります。
Oracleのバージョンは19cで、個人利用PCにオラクルクライアントからインストールして少し利用した状態です。
コンテナ・プラガブル構成をしており、プラガブルDBの名前は 'ORCLPDB'になります。
'sqlplus ユーザ名/パスワード@サービス名(orclpdb)'だと接続できず、
'sqlplus sys/manager as sysdba'だと接続できます。
エラーは下記になります。
ERROR:
ORA-12154: TNS: 指定された接続識別子を解決できませんでした
追記
なぜかsqldeveloperだと下記のような設定で接続できます。
実現したいこと
- リスナーを使い、データベース接続したい。
リスナーの構成ファイル3点
listener.ora
1SID_LIST_LISTENER = 2 (SID_LIST = 3 (SID_DESC = 4 (SID_NAME = CLRExtProc) 5 (ORACLE_HOME = C:\app\oracle\product\19c\WINDOWS.X64_193000_db_home) 6 (PROGRAM = extproc) 7 (ENVS = "EXTPROC_DLLS=ONLY:C:\app\oracle\product\19c\WINDOWS.X64_193000_db_home\bin\oraclr19.dll") 8 ) 9 ) 10 11LISTENER_ORCL = 12 (DESCRIPTION_LIST = 13 (DESCRIPTION = 14 (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) 15 (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) 16 ) 17 ) 18
sqlnet.ora
1SQLNET.AUTHENTICATION_SERVICES= (NTS) 2NAMES.DIRECTORY_PATH= (TNSNAMES)
tnsnames.ora
1LISTENER_ORCL = 2 (DESCRIPTION = 3 (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) 4 (CONNECT_DATA = 5 (SERVER = DEDICATED) 6 (SERVICE_NAME = orclpdb) 7 ) 8 )
パラメータ等
- instance_name from v$instance = orcl
- global_name from global_name = ORCL
lsnrctl status
lsnrctl_status
1C:\WINDOWS\system32>lsnrctl status 2 3LSNRCTL for 64-bit Windows: Version 19.0.0.0.0 - Production on 10-8月 -2022 14:30:12 4 5Copyright (c) 1991, 2019, Oracle. All rights reserved. 6 7(ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))に接続中 8リスナーのステータス 9------------------------ 10別名 LISTENER 11バージョン TNSLSNR for 64-bit Windows: Version 19.0.0.0.0 - Production 12開始日 10-8月 -2022 14:28:55 13稼働時間 0 日 0 時間 1 分 21 秒 14トレース・レベル off 15セキュリティ ON: Local OS Authentication 16SNMP OFF 17パラメータ・ファイル C:\app\oracle\product\19c\WINDOWS.X64_193000_db_home\network\admin\listener.ora 18ログ・ファイル C:\app\oracle\diag\tnslsnr\DESKTOP-29OC3QV\listener\alert\log.xml 19リスニング・エンドポイントのサマリー... 20 (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=DESKTOP-29OC3QV)(PORT=1521))) 21サービスのサマリー... 22サービス"CLRExtProc"には、1件のインスタンスがあります。 23 インスタンス"CLRExtProc"、状態UNKNOWNには、このサービスに対する1件のハンドラがあります... 24サービス"ORCL"には、1件のインスタンスがあります。 25 インスタンス"orcl"、状態READYには、このサービスに対する1件のハンドラがあります... 26サービス"ORCLXDB"には、1件のインスタンスがあります。 27 インスタンス"orcl"、状態READYには、このサービスに対する1件のハンドラがあります... 28サービス"b1baa6789447444ba67b62d2c618796a"には、1件のインスタンスがあります。 29 インスタンス"orcl"、状態READYには、このサービスに対する1件のハンドラがあります... 30サービス"orclpdb"には、1件のインスタンスがあります。 31 インスタンス"orcl"、状態READYには、このサービスに対する1件のハンドラがあります... 32コマンドは正常に終了しました。
ベストアンサー選択時の最終的な構成ファイルの状態を示します。
listener.ora
1SID_LIST_LISTENER_ORCL = 2 (SID_LIST = 3 (SID_DESC = 4 (SID_NAME = CLRExtProc) 5 (ORACLE_HOME = C:\app\oracle\product\19c\WINDOWS.X64_193000_db_home) 6 (PROGRAM = extproc) 7 (ENVS = "EXTPROC_DLLS=ONLY:C:\app\oracle\product\19c\WINDOWS.X64_193000_db_home\bin\oraclr19.dll") 8 ) 9 (SID_DESC = 10 (SID_NAME = ORCL) 11 (ORACLE_HOME = C:\app\oracle\product\19c\WINDOWS.X64_193000_db_home) 12 (GLOBAL_DBNAME=ORCL) 13 ) 14 (SID_DESC = 15 (SID_NAME = ORCL) 16 (ORACLE_HOME = C:\app\oracle\product\19c\WINDOWS.X64_193000_db_home) 17 (GLOBAL_DBNAME=ORCLPDB) 18 ) 19 ) 20 21LISTENER_ORCL = 22 (DESCRIPTION_LIST = 23 (DESCRIPTION = 24 (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) 25 (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) 26 ) 27 )
sqlnet.ora
1SQLNET.AUTHENTICATION_SERVICES= (NTS) 2NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
tnsnames.ora
1ORCLPDB = 2 (DESCRIPTION = 3 (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) 4 (CONNECT_DATA = 5 (SERVER = DEDICATED) 6 (SERVICE_NAME = ORCLPDB) 7 ) 8 )
何卒宜しくお願い致します。
sqlplus ユーザ名/パスワード@localhost/orclpdb
で繋がらないですか?
繋がらないですね...( ;∀;)
エラーメッセージも変わりませんでした。
sqlnet.ora の NAMES.DIRECTORY_PATH のところを
NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
に変えてもダメでしょうか?
変えてみましたが、エラーが発生し続けてしまっています。
sqldeveloper が繋がるのだから EZCONNECT 形式で繋がりそうなものですが・・・
tnsping localhost/orclpdb は通りますか?
すみません、返信遅くなりました。
tnsping localhost/orclpdbを行った結果ですが、下記のようになりました。
エイリアスを解決するためにEZCONNECTアダプタを使用しました。
(DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=orclpdb))(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)))に接続の試行中
OK (10ミリ秒)
これがOKなら
sqlplus ユーザ名/パスワード@localhost/orclpdb
が繋がらないはずはないのですが・・
回答1件
あなたの回答
tips
プレビュー