当我尝试将远程服务器连接为-
sqlplus SYSTEM/oracle@192.168.0.171:1521/kannel
Run Code Online (Sandbox Code Playgroud)
它向我展示了这个错误-
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
Run Code Online (Sandbox Code Playgroud)
我检查了我的监听器,它正在运行
[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
Run Code Online (Sandbox Code Playgroud)
tnsnames.ora 文件包含 -
KANNEL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = kannel)
)
)
Run Code Online (Sandbox Code Playgroud)
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))
)
)
)
Run Code Online (Sandbox Code Playgroud)
sqlnet.ora 文件包含-
SQLNET.AUTHENTICATION_SERVICES= (ALL)
NAMES.DIRECTORY_PATH= (TNSNAMES,ONAMES,HOSTNAME)
Run Code Online (Sandbox Code Playgroud)
Oracle 主路径 -
$ORACLE_HOME=/opt/u01/app/product/11.2.0/dbname_1
Run Code Online (Sandbox Code Playgroud)
Oracle 基本路径 -
$ORACLE_BASE=/opt/u01/app
Run Code Online (Sandbox Code Playgroud)
我已经设置了环境变量
[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
Run Code Online (Sandbox Code Playgroud)
当我以本地主机身份访问数据库时 -
./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
Run Code Online (Sandbox Code Playgroud)
我不明白我错在哪里.....有人可以帮忙吗?
请以 oracle 用户身份登录并尝试这些步骤。
设置你的oracle环境
$ . oraenv # note the dot!
$ <input your SID>
Run Code Online (Sandbox Code Playgroud)
登录并启动。
$ sqlplus / as sysdba
SQL>startup
SQL>exit;
Run Code Online (Sandbox Code Playgroud)
启动监听器,确保数据库注册。
$ lsnrctl start
$ lsnrctl status
Run Code Online (Sandbox Code Playgroud)