Oracle監(jiān)聽啟動時由“監(jiān)聽程序不支持服務(wù)”遇到的一系列問題
Oracle監(jiān)聽啟動時由“監(jiān)聽程序不支持服務(wù)”
昨晚突然斷電導(dǎo)致局域網(wǎng)內(nèi)數(shù)據(jù)庫服務(wù)器非正常停機(jī),今天用數(shù)據(jù)庫時按往常操作啟動數(shù)據(jù)庫就出問題了,使用xshell遠(yuǎn)程連接的服務(wù)器,首先啟動監(jiān)聽lsnrctl start啟動日志總感覺和以前的不一樣:

當(dāng)時也沒特別在意,就直接登陸空閑例程裝載數(shù)據(jù)庫了:

看似也是很正常的,也沒報ORA的異常。啟動完成之后在本地用PL/SQL連接就出問題了,一直提示我“無監(jiān)聽程序”,這就詭異了哈。
一切正常怎么會沒有監(jiān)聽程序呢,監(jiān)聽都啟動了的,在服務(wù)器上用sqlplus直接登錄木有任何問題,但是遠(yuǎn)程連接就是不行。
這樣問題就有思路了,應(yīng)該就是遠(yuǎn)程連接的問題,之前都解決過遠(yuǎn)程連接的問題,就是在listerner.ora文件中配置的,把HOST地址改成IP就可以了,但是從監(jiān)聽啟動日志里看到是IP沒錯,難道是服務(wù)器重啟時IP被分配成其他的了?檢查一遍并沒有,問題越發(fā)詭異了。
剛才啟動的時候就感覺不太正常,說明感覺是對的啟動的時候就是有問題的,然后就看到了“監(jiān)聽程序不支持服務(wù)”這行字,隱約記得以前啟動監(jiān)聽后應(yīng)該是有一堆信息的,現(xiàn)在就剩一句話代替了,問題應(yīng)該就出現(xiàn)在這兒。
先找找alert日志
嘿還真是有一個WARNING:

現(xiàn)在倒好,看這個錯看得一臉懵逼,去網(wǎng)上扒扒全是什么修改host、pfile什么的,根據(jù)以前的經(jīng)驗根本不信這一套,還是按照自己思路來吧,問題應(yīng)該就出現(xiàn)在listerner.ora中,打開listerner.ora看看確實少了些什么,不經(jīng)意間看到listerner.ora的修改記錄,MD被誰修改過,我也是醉了也不知道哪個有毛病的去修改這個文件。
要知道數(shù)據(jù)庫的配置文件修改之后不重啟是不生效的,不知道哪個小白修改了就不管了,偶然間的重啟搞這么多問題。
應(yīng)該是少了一段參數(shù)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(ORACLE_HOME =/opt/oracle/product/11.2.0)
(SID_NAME = orcl)
)
)
簡單寫上能用就行ORACLE_HOME就不說了,在listerner.ora文件目錄下pwd一下截出來就是了,下邊SID_NAME就是數(shù)據(jù)庫的實例名,如果存在多個系統(tǒng)的話可能會有多個實例名,加多個就可以了看到上邊的SID_LIST了嗎?
就是為多個實例準(zhǔn)備的 復(fù)制
(SID_DESC = (ORACLE_HOME =/opt/oracle/product/11.2.0) (SID_NAME = orcl) )
這一段修改SID_NAME 就可以了。
不過需要注意一點(diǎn):實例名區(qū)分大小寫!區(qū)分大小寫!區(qū)分大小寫!
我寫成了ORCL之后雖然啟動正常了,但是用PL/SQL連的時候又給我報了個錯**
ERROR: ORA-01034:ORACLE not available ORA-27101:shared memory realm does not exit
** 無語啊,這個錯不明顯又跟SGA扯上關(guān)系了又讓我找了好一會差點(diǎn)把數(shù)據(jù)庫的內(nèi)存管理模式給改了,僅僅就是個大小寫的問題而已。
修改完成后重啟監(jiān)聽這次日志就正常了:

我只配了一個orcl實例所以就啟動一個實例打了一條日志,配多個就會啟動多個了

再啟動數(shù)據(jù)庫

一切就都正常了,PL/SQL也可以正常連接了。
總結(jié)
步步都是坑啊,說多了都是淚(´Д`)y-~
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Oracle性能究極優(yōu)化(Oracle 性能優(yōu)化)
Linux Journal 發(fā)表了一篇優(yōu)化 Oracle 數(shù)據(jù)庫的文章,感覺十分的有用。簡要介紹其摘要和大家共同分享 Linux 在企業(yè)級數(shù)據(jù)庫上應(yīng)用2007-03-03
Oracle刪除數(shù)據(jù)報ORA 02292錯誤的巧妙解決方法
這篇文章主要介紹了Oracle刪除數(shù)據(jù)報ORA 02292錯誤的巧妙解決方法,需要的朋友可以參考下2017-07-07
oracle 取某個時間段的數(shù)據(jù)(每周幾的上午幾點(diǎn)到幾點(diǎn))
這篇文章主要介紹了oracle 取某個時間的數(shù)據(jù)(每周幾的上午幾點(diǎn)到幾點(diǎn)),本文通過實例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2020-01-01
Oracle數(shù)據(jù)庫中對null值的排序及mull與空字符串的區(qū)別
這篇文章主要介紹了Oracle數(shù)據(jù)庫中對Null值的排序及Null與空字符串的區(qū)別,講解了在order by排序中如何定義null值項的位置及其與字符串' '的不同,需要的朋友可以參考下2016-03-03

