建立 /var/tmp/.oracle 并授权给oracle,重起监听。问题解决!
补充一下 我的环境是 RHEL3 U2 + oracle9204
原文来自:
十萬火急!!!! listener啟不啟來!!!
$ lsnrctl start
LSNRCTL for Solaris: Version 8.1.7.0.0 - Production on 29-APR-2004 13:43:52
(c) Copyright 1998 Oracle Corporation. All rights reserved.
Starting /export/home/oracle/bin/tnslsnr: please wait...
TNSLSNR for Solaris: Version 8.1.7.0.0 - Production
System parameter file is /export/home/oracle/network/admin/listener.ora
Log messages written to /export/home/oracle/network/log/listener.log
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle)(PORT=1521)))
Attempted to listen on: (ADDRESS=(PROTOCOL=ipc)(PARTIAL=yes)(QUEUESIZE=1))
No longer listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle)(PORT=1521)))
TNS-12541: TNS:no listener
TNS-12560: TNS:protocol adapter error
TNS-00511: No listener
Solaris Error: 2: No such file or directory
$
![]() 貼出你的listener.ora文件! |
![]() $ more list* # LISTENER.ORA Network Configuration File: /export/home/oracle/network/admin/lis tener.ora # Generated by Oracle configuration tools. LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = oracle)(PORT = 1521)) ) (ADDRESS_LIST = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC)) ) ) ) SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = PLSExtProc) (ORACLE_HOME = /export/home/oracle) (PROGRAM = extproc) ) ) $ |
![]() listener.ora應該沒有問題的吧, 不知道"Solaris Error: 2: No such file or directory" 是指那個文件啊,log裡面又什麼也看不到, |
![]() 你最近清/tmp目錄了? |
![]() 如果我在多用戶的使用的時候刪除了tmp下的東西的話, 應該不用報我這中錯誤的, 請教!! |
![]() /tmp/.oracle/目錄,記錄了socket number,這個目錄如果被刪就會出現你上面的情況 |
![]() 那我現在可以如何補救, 請教!! |
![]() To re-create the socket files, stop and re-start the Listener. 重建這個目錄,並賦權給oracle |
![]() --> socket files,文件名是什麼, 文件內容怎樣, 請教!! 另外我查到如下內容: * 監聽程序啟動失敗: 如果是TCP監聽失敗,請檢查/etc/listener.ora中的對應TCP的參數如IP地址和PORT端口; 如果是IPC監聽失敗,請先刪除/tmp/.oracle/sXXX,其中XXX是/etc/listener.ora中IPC監聽的KEY值; 不知可是, 但我試試無用, 我的為817, |
![]() 感謝txfy, 我的問題已經解決了, 也許817 for solaris ,lsnrctl的臨時文件是在/var/tmp/.oracle, 我chmod了/var/tmp, 不管使用tcp還是ipc都listener可以起來 另外如果ipc的話,可以好像要servicename |
![]() 不過/var/tmp的屬性應該本然就不給oracle的 不知道,以前listener怎麼起來的 |
![]() 你在/tmp下建立.oracle目錄,把這個目錄授權,而不是整個tmp目錄授權,這種方式試了嗎? |
![]() |
![]() o,可能是我寫錯了目錄! |
![]() The socket files are deleted by someone or by a 3rd party application. Common directories where socket files are created vary by operating system and include: /tmp/.oracle /tmp/o /var/tmp/.oracle 後面兩個沒寫出來,呵呵! |
![]() 學問...... 先學著`` |