今天在linux搭建的IPV6環境下重新啟動了一下oracle,在啟動listener時得到如下的輸出:
LSNRCTL> start
Starting /oracle/11g/bin/tnslsnr: please wait
TNSLSNR for Linux: Version 11.2.0.1.0 - Production
System parameter file is /oracle/11g/network/admin/listener.ora
Log messages written to /oracle/diag/tnslsnr/node2/listener/alert/log.xml
Trace information written to /oracle/diag/tnslsnr/node2/listener/trace/ora_8028_3086591680.trc
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=node2)(PORT=1521)))
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=node2)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 11.2.0.1.0 - Production
Start Date 06-JAN-2010 13:07:43
Uptime 0 days 0 hr. 0 min. 0 sec
Trace Level admin
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /oracle/11g/network/admin/listener.ora
Listener Log File /oracle/diag/tnslsnr/node2/listener/alert/log.xml
Listener Trace File /oracle/diag/tnslsnr/node2/listener/trace/ora_8028_3086591680.trc
Listening Endpoints Summary
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=node2)(PORT=1521)))
The listener supports no services
The command completed successfully
LSNRCTL> status
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=node2)(PORT=1521)))
TNS-12541: TNS:no listener
TNS-12560: TNS:protocol adapter error
TNS-00511: No listener
Linux Error: 111: Connection refused
根據提示listener在start后,顯示啟動成功,但是查看狀態時報錯,隨即分析了Listener的日志,并且將listener的trace level設定為了admin,也無法定位問題。
隨后,在google進行搜索,發現在linux下出現listener相關的問題,有很大部分是和/etc/hosts的配置有關,特別是其中一篇提到在/etc/hosts 中沒有設定 127.0.0.1,會產生錯誤,的確在這個IPV6的環境中,已經將127.0.0.1從/etc/hosts,替換為::1,在/etc/hosts恢復了127.0.0.1的配置,問題解決。不知這個問題是否oracle的一個缺陷?特別是啟動的提示太有誤導了,一點提示都找不到