web-dev-qa-db-ja.com

ORA-12541をスローするOracleクライアント:TNS:リスナーなし

私がリモートサーバーを接続しようとしたとき-

sqlplus SYSTEM/[email protected]:1521/kannel

それは私にこのエラーを示しています

SQL*Plus: Release 11.2.0.2.0 Production on Fri Nov 15 15:36:52 2013
copyright (c) 1982, 2010, Oracle.  All rights reserved.

ERROR:
ORA-12541: TNS:no listener

リスナーを確認しました。実行中です

[root@roracle bin]# ./lsnrctl status

 LSNRCTL for Linux: Version 11.2.0.3.0 - Production on 15-NOV-2013 15:42:24

 Copyright (c) 1991, 2011, Oracle.  All rights reserved.

 Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
 TNS-12541: TNS:no listener
 TNS-12560: TNS:protocol adapter error
 TNS-00511: No listener
 Linux Error: 111: Connection refused
 Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=localhost)(PORT=1521)))
 TNS-12541: TNS:no listener
 TNS-12560: TNS:protocol adapter error
 TNS-00511: No listener
 Linux Error: 111: Connection refused

tnsnames.oraファイルに含まれる-

KANNEL =
 (DESCRIPTION =
   (ADDRESS = (PROTOCOL = TCP)(Host = localhost)(PORT = 1521))
     (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = kannel)
     )
 )

listener.oraファイルには

SID_LIST_LISTENER =
(SID_LIST =
 (SID_DESC =
   (GLOBAL_DBNAME = kannel)
   (Oracle_HOME = /opt/u01/app/product/11.2.0/dbhome_1)
   (SID_NAME = kannel)
 )
)

LISTENER=
 (DESCRIPTION_LIST =
  (DESCRIPTION =
   (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
  )
   (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(Host = localhost)(PORT = 1521))
   )
  )
 )

sqlnet.oraファイルには

SQLNET.AUTHENTICATION_SERVICES= (ALL)

NAMES.DIRECTORY_PATH= (TNSNAMES,ONAMES,HOSTNAME)

Oracleホームパス-

$Oracle_HOME=/opt/u01/app/product/11.2.0/dbname_1

Oracleベースパス-

$Oracle_BASE=/opt/u01/app

環境変数を設定しました

[root@roracle bin]# env | sort

}
_=/bin/env
CVS_RSH=ssh
G_BROKEN_FILENAMES=1
HISTCONTROL=ignoredups
HISTSIZE=1000
HOME=/root
HOSTNAME=roracle
LANG=en_IN
LESSOPEN=|/usr/bin/lesspipe.sh %s
LOADEDMODULES=
LOGNAME=root
LS_COLORS=rs=<......something........>:
MAIL=/var/spool/mail/root
module=() {  eval `/usr/bin/modulecmd bash $*`
MODULEPATH=/usr/share/Modules/modulefiles:/etc/modulefiles
MODULESHOME=/usr/share/Modules
OLDPWD=/root
Oracle_BASE=/opt/u01/app/
Oracle_HOME=/opt/u01/app/product/11.2.0/dbhome_1
Oracle_SID=kannel
PATH=/usr/lib64/qt-3.3/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
PWD=/opt/u01/app/product/11.2.0/dbhome_1/bin
QTDIR=/usr/lib64/qt-3.3
QTINC=/usr/lib64/qt-3.3/include
QTLIB=/usr/lib64/qt-3.3/lib
Shell=/bin/bash
SHLVL=1
SSH_CLIENT=192.168.0.83 35604 22
SSH_CONNECTION=192.168.0.83 35604 192.168.0.171 22
SSH_TTY=/dev/pts/0
TERM=xterm
USER=root

ローカルホストとしてデータベースにアクセスすると-

./sqlplus / as sysdba[Oracle@roracle bin]$ ./sqlplus / as sysdba

 SQL*Plus: Release 11.2.0.3.0 Production on Fri Nov 15 16:04:02 2013

 Copyright (c) 1982, 2011, Oracle.  All rights reserved.

 Connected to an idle instance.

 SQL> select v$database;
 select v$database
 *
 ERROR at line 1:
 ORA-01034: Oracle not available
 Process ID: 0
 Session ID: 0 Serial number: 0

私はどこを間違えているのか理解できません.....誰か助けてもらえますか?

5
Saagar

Rootとしてリスナープロセスを開始した可能性がありますか? lsnrctlステータスをユーザーrootとして試行していることがわかります。リスナープロセスをOracleユーザーとして開始し、データベースを(Oracleユーザーとしても)開始してください。

また、「アイドルインスタンスに接続しました」というメッセージが表示された場合は、実行していないインスタンスに接続している、または接続したいインスタンスに接続するための環境設定が間違っていることを意味します。

/u01/app/Oracle/product/11.0/dbhome_1/binなどのパスにOracleソフトウェアディレクトリがあることを確認します。

oracle_SIDはデータベースインスタンス名に設定されます。

Oracleユーザーとしてログインし、以下の手順を試してください。

Oracle環境を設定する

$ . oraenv # note the dot!
$ <input your SID>

ログインして起動します。

$ sqlplus / as sysdba 
SQL>startup
SQL>exit;

リスナーを起動し、データベースが登録されていることを確認します。

$ lsnrctl start
$ lsnrctl status
3
Bjarte Brandt

のために

ORA-12541:TNS:リスナーがありません:

リスナーはlocalhostにのみバインドするように設定されていますが、192.168.0.171を使用してアクセスしようとしているため、listener.oraにこのインターフェイスを追加する必要があります。

(アドレス=(プロトコル= TCP)(ホスト= 192.168.0.171)(ポート= 1521))

のために

アイドル状態のインスタンスに接続されています。 ... ORA-01034:Oracleは利用できません

データベースインスタンスが開始されていません。最初にstartup;コマンドを発行し、出力を確認してください。

2
Dieter DHoker