0

I have a virtual Machine on VMWare Player: Oracle 11g on Linux Centos. Since I haven't used it for 2 years, I don't remember almost anything,and when I try to startup the db it says listener is down, and when I try to start listener it says:

TNSLSNR for Linux Version 11.2. 0.1.0 - Production
System Parameter file is /oracle/product/11gR2/network/admin/listener.ora
Log messages written to /oracle/diag/tnslsnr/srvlinux/listener/alert/log.xml
Error listening on: (ADRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
TNS-12542: TNS:address already in use
 TNS-12560: TNS:protocol adater error
  TNS-00512: Address already in use
   Linux Error: 98: Address already in use

What do I have to configure exactly? Thanks in advance.

EDIT:

netstat -tulpn | grep :1521

tcp 0 0 :::1521 :::* LIST 
EN 3369/tnslsnr

EDIT:

lsnrctl status

LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 11-DEC-2012 16:09:54

sqlplus / as sysdba

ERROR:
ORA-12162: TNS:net service name is incorrectly specified
4

1 回答 1

1

ORA-12162 通常意味着你没有ORACLE_SID设置 - 不是它错了,而是根本没有设置,或者没有被导出(取决于你的 shell)。这并不能告诉您有关数据库是否已启动的任何信息,也不意味着侦听器已关闭-因此不知道您是否从不同的连接尝试中收到了不同的消息。根据您添加到问题的详细信息,显然侦听器在端口 1521 上。

如果您使用的是 Bourne-y(sh、ksh、bash 等),您需要设置和导出ORACLE_SID

export ORACLE_SID=my_sid

如果你不记得 SID 你可以去grep -ef | grep ora_pmon_;如果显示任何内容,则 SID 是进程名称的结尾,并且数据库已启动。如果没有,则查看的输出lsnrctl status并查看是否注册了任何内容,或者查看$ORACLE_HOME/dbs- 那里的文件也可能在其名称中包含 SID。

如果你还没有,你可能还需export ORACLE_HOME要这样做,但听起来你有,可能来自你的.profile/.bashrc等。

于 2013-08-20T17:48:12.947 回答