ORA-00130: invalid listener address

space6212發表於2019-02-13

今天再重啟測試庫的時候,發現有這麼一個報錯資訊:

ORA-00130: invalid listener address (ADDRESS=(PROTOCOL=TCP)(HOST=test2)(PORT=1521))


開始懷疑是監聽得設定有問題,開啟監聽檔案,內容如下:

LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.107)(PORT = 1521))
)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
)
)
)

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /opt/oracle/product/9.2.0)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = sc2test)
(ORACLE_HOME = /opt/oracle/product/9.2.0)
(SID_NAME = sc2test)
)
)

奇怪的是在監聽中並沒有發現HOST=test2的資訊,再檢視/etc/hosts

admin]$ more /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 localhost.localdomain localhost
192.168.0.201 test

也沒有發現test2的資訊

最後檢查hostname
[oracle@test2 admin]$ hostname
test2

終於發現test2的蹤跡了,但為什麼會監聽test2呢?
這是一個多IP伺服器,同時存在著3個IP。
我估計是oracle在啟動的時候會同時註冊一個與hostname相關的listener,但由於調整了/etc/hosts,hostname並不是伺服器的名字,所以導致了錯誤。
修正這個錯誤很簡單,執行

hostname test

把hostname修改為與/etc/hosts中本機IP對應的hostname相同即可。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/231499/viewspace-63735/,如需轉載,請註明出處,否則將追究法律責任。

相關文章