前提・実現したいこと
少し必要がでたので、Oracleを勉強する事にしました。
Windows Server 2016のテスト環境に、Oracle 12cのリリース1をインストールし、名称は、orcl12c としました。
2016上のsqlplus SCOTT/tigerでは接続できる事を確認しています。
sqlplusでSQLを投入できたので、ODBC経由で、EXCELやACCESSからの接続を試してみたいのですが、問題が起きました。
発生している問題・エラーメッセージ
同じLAN上にあるWindows10のパソコンに、ネットをいろいろ調べて
instantclientをインストールしました。12_2を選択しています。
これで、windows10からsqlplus SCOTT/tiger@orcl12c で繋ごうとしたところ
ORA-12154: TNS:could not resolve the connect identifier specified
が出て接続できませんでした。
windows Server2016は、1521ポートを受信可にしてあります。
さらにネットを調べると、そういうときはリスナーが怪しいとの事なのでlsnrctl statusで調べてみたところ
C:\Windows\system32>lsnrctl status LSNRCTL for 64-bit Windows: Version 12.1.0.2.0 - Production on 12-4月 -2020 13:43:53 Copyright (c) 1991, 2014, Oracle. All rights reserved. (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.30)(PORT=1521)))に接続中 リスナーのステータス ------------------------ 別名 LISTENER バージョン TNSLSNR for 64-bit Windows: Version 12.1.0.2.0 - Production 開始日 12-4月 -2020 13:19:14 稼働時間 0 日 0 時間 24 分 46 秒 トレース・レベル off セキュリティ ON: Local OS Authentication SNMP OFF パラメータ・ファイル C:\app\oraclehome\product\12.1.0\dbhome_1\network\admin\listener.ora ログ・ファイル C:\app\oraclehome\diag\tnslsnr\WIN-I7ECUTL0FAE\listener\alert\log.xml リスニング・エンドポイントのサマリー... (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.30)(PORT=1521))) サービスのサマリー... サービス"CLRExtProc"には、1件のインスタンスがあります。 インスタンス"CLRExtProc"、状態UNKNOWNには、このサービスに対する1件のハンドラがあります... コマンドは正常に終了しました。
となっていて、インストール時に設定したはずのorcl12cという名前がありません。
サーバー上では sqlplus SCOTT/tigerでは接続できるのですが、sqlplus SCOTT/tiger@orcl12c では
C:\Windows\system32>sqlplus SCOTT/tiger@orcl12c SQL*Plus: Release 12.1.0.2.0 Production on 日 4月 12 14:50:46 2020 Copyright (c) 1982, 2014, Oracle. All rights reserved. ERROR: ORA-12514: TNS: リスナーは接続記述子でリクエストされたサービスを現在認識していません
となってしまいます。
サーバーのtnsnames.oraには、ORCL12Cの記述があります。
※ちなみにインストールしてから一度もtnsnames.oraは修正していません。
# tnsnames.ora Network Configuration File: C:\app\oraclehome\product\12.1.0\dbhome_1\network\admin\tnsnames.ora # Generated by Oracle configuration tools. ORACLR_CONNECTION_DATA = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) (CONNECT_DATA = (SID = CLRExtProc) (PRESENTATION = RO) ) ) ORCL12C = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.30)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl12c) ) )
googleで調べても限界なので、ご相談する事にしました。
Windows10のsqlplusから、サーバーに繋いでSQL実行したり、ODBC経由で接続するのに、なにかインストールだけではない設定変更が必要でしょうか?
よろしくお願いいたします。
追記します。
KOZ6.0さんのご指摘で、listener.oraを調べたところ
# listener.ora Network Configuration File: C:\app\oraclehome\product\12.1.0\dbhome_1\network\admin\listener.ora # Generated by Oracle configuration tools. SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = CLRExtProc) (ORACLE_HOME = C:\app\oraclehome\product\12.1.0\dbhome_1) (PROGRAM = extproc) (ENVS = "EXTPROC_DLLS=ONLY:C:\app\oraclehome\product\12.1.0\dbhome_1\bin\oraclr12.dll") ) ) LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.30)(PORT = 1521)) ) )
という状態になっていたため、listener.ora.sample を参考に
# listener.ora Network Configuration File: C:\app\oraclehome\product\12.1.0\dbhome_1\network\admin\listener.ora # Generated by Oracle configuration tools. SID_LIST_LISTENER = (SID_LIST = (SID_DESC = # (SID_NAME = CLRExtProc) (SID_NAME = orcl12c) (ORACLE_HOME = C:\app\oraclehome\product\12.1.0\dbhome_1) (PROGRAM = orcl12c) # (PROGRAM = extproc) # (ENVS = "EXTPROC_DLLS=ONLY:C:\app\oraclehome\product\12.1.0\dbhome_1\bin\oraclr12.dll") ) ) LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.30)(PORT = 1521)) ) )
に直したところ、Windows10のクライアント機からの>sqlplus SCOTT/tiger@orcl12cが
ERROR: ORA-12518: TNS:listener could not hand off client connection
に変化しました。
googleで調べると、サービスが起動していないのでは?
という記事がみつかりましたが、WindowsServer2016上でぇあ、OracleServiceORCL12Cは自動で起動されています。
回答1件
あなたの回答
tips
プレビュー