今回はEclipseのプラグインのDB Viewerを利用して、別サーバ上のOracleDBにJDBCアクセスしようとしたらできなかった件です。アクセスしようとすると「The Network Adapter could not establish the connection」というエラーが表示されます。
これが無事解決したので、以下にその対処法を記載しておく。
インスタンスが起動してない
そもそも、DBのインスタンスが起動していなければ、ローカルからもアクセスできない。この場合、sqlplusにはログインできるけど、select文を打ったらエラーになった。
# su - oracle $ sqlplus /NOLOG SQL*Plus: Release 11.2.0.1.0 Production on Thu Jan 9 19:54:23 2014 Copyright (c) 1982, 2009, Oracle. All rights reserved. SQL> CONNECT AS SYSDBA Enter user-name: (ユーザ名) Enter password: (パスワード) Connected to an idle instance. SQL> SQL> select * from user_tables; select * from user_tables * ERROR at line 1: ORA-01034: ORACLE not available Process ID: 0 Session ID: 0 Serial number: 0
このパターンの場合は、sqlplusでログイン後、インスタンスを立ち上げてあげればOK!
# su - oracle $ sqlplus /NOLOG SQL*Plus: Release 11.2.0.1.0 Production on Thu Jan 9 19:54:23 2014 Copyright (c) 1982, 2009, Oracle. All rights reserved. SQL> CONNECT AS SYSDBA Enter user-name: (ユーザ名) Enter password: (パスワード) Connected to an idle instance. SQL> SQL> startup ORACLE instance started.
リスナーが起動してない
ローカルからは接続できるのに、外部から接続できない場合は、リスナーが起動していない可能性がある。
# su - oracle $ lsnrctl LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 10-JAN-2014 01:07:48 Copyright (c) 1991, 2009, Oracle. All rights reserved. Welcome to LSNRCTL, type "help" for information. LSNRCTL> start Starting /opt/oracle/product/11.2.0/dbhome_1/bin/tnslsnr: please wait... (以下略)
おしまい
今回の問題はあまりに初歩的でちょっとショックでした。でも、解決できて良かったです。DBはいろんなのをいじっているとどれがどんな操作が必要だったか忘れますよね。(という言い訳)