一次ORA-00130: invalid listener address錯誤,ora-00130listener
登入資料庫,提示:
ora11g>sqlplus dcsopen/dcsopen1SQL*Plus: Release 11.2.0.1.0 Production on Mon Jan 5 18:49:31 2015
Copyright (c) 1982, 2009, Oracle. All rights reserved.
ERROR:
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
Linux-x86_64 Error: 2: No such file or directory
Process ID: 0
Session ID: 0 Serial number: 0
看樣子是沒有啟動,那就啟動資料庫:
ora11g>sqlplus / as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on Mon Jan 5 18:50:29 2015
Copyright (c) 1982, 2009, Oracle. All rights reserved.
Connected to an idle instance.
SQL> startup
ORA-00119: invalid specification for system parameter LOCAL_LISTENER
ORA-00130: invalid listener address '(ADDRESS=(PROTOCOL=TCP)(HOST=dcsopen2Node)(PORT=1521))'報的是如上的錯誤,看到其中監聽資訊是HOST=dcsopen2Node,第一反應是監聽檔案有問題,查看了下listener.ora檔案:# listener.ora Network Configuration File: /opt/app/ora11g/product/11.2.0/dcsopen/network/admin/listener.ora
# Generated by Oracle configuration tools.
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
)
ADR_BASE_LISTENER = /opt/app/ora11g沒有HOST=dcsopen2Node的配置。
查看機器名:ora11g>hostname
dcsopen2Node發現本機名稱是dcsopen2Node。參看一些文章,說是有可能oracle啟動的時候會同時註冊一個和hostname相同名稱的監聽,所以此處報錯提示的是(ADDRESS=(PROTOCOL=TCP)(HOST=dcsopen2Node)(PORT=1521))這個監聽,提示無效地址,再查看/etc/hosts檔案:127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6發現根本沒有hostname對應項,由此推測,
可能是Oracle註冊和hostname同名監聽,但/etc/hosts中又沒有定義hostname-IP對應項,因此認為此監聽地址無效。
解決方案:/etc/hosts中添加項:172.27.19.57 dcsopen2Node重啟服務:ora11g>sqlplus / as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on Mon Jan 5 20:33:32 2015
Copyright (c) 1982, 2009, Oracle. All rights reserved.
Connected to an idle instance.
SQL> startup
ORACLE instance started.
Total System Global Area 3290345472 bytes
Fixed Size 2217832 bytes
Variable Size 2533361816 bytes
Database Buffers 738197504 bytes
Redo Buffers 16568320 bytes
Database mounted.
Database opened.一切又恢複了平靜。