2013-08-18 61 views
0

我在VMWare播放器上有一臺虛擬機:Linux Centos上的Oracle 11g。 因爲我沒有使用過了2年,我不記得了幾乎所有的東西,當我試圖啓動數據庫,它說監聽器,並當我嘗試啓動監聽器,它說:聽衆未能啓動

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 

我必須準確配置什麼?提前致謝。

編輯:

netstat -tulpn | grep的:1521

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

編輯:

LSNRCTL狀態

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 
+1

這表明聽者居然高達。或者至少在1521年有些事情正在聆聽,這很不尋常,因爲它是另一回事 - 'lsnrctl status'可能很有趣。什麼說它下降,什麼時候?也許你的客戶正在尋找一個不同的端口,或者你的'tnsnames.ora'有錯誤的端口(或地址),或者你的數據庫有'local_listener'設置爲別的。您的'listener.ora'是否可以配置多個偵聽器,但只有一個已啓動? –

+1

什麼過程花了1521? 'netstat -tulpn | grep:1521' –

+0

移植到dba.stackexchange.com –

回答

1

ORA-12162通常意味着你不必ORACLE_SID集 - 不這是錯誤的,但它沒有被設置,或者沒有被導出(取決於你的shell)。這不會告訴你任何有關數據庫是否啓動的信息,也不會暗示監聽器已關閉 - 所以不知道是否從不同的連接嘗試獲得了不同的信息。顯然,聽衆在1521端口上,從你添加到問題的細節。

如果你正在使用的東西伯恩-Y(SH,KSH,慶典等),你需要設置和導出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

+0

感謝它的工作,我只需要使用「export ORACLE_SID =」。 – phalanx