oracle之 監聽器無法啟動的幾個原因總結

張衝andy發表於2017-09-19

1)防火牆沒關

2)/etc/hosts配置問題,有可能誤刪了127.0.0.1的預設記錄,新增預設記錄

[root@rac02 ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

3)/var/tmp/.oracle許可權問題或盲目清理。一般出現permission denied都是許可權不足導致,修改使用者許可權或者切換使用者均可解決。有些情況下,清理/var/tmp/.oracle中的內容,RAC例項會直接宕掉或者出現ASM異常。

說明:
[root@rac02 var]# pwd
/var
[root@rac02 var]# ll
drwxrwxrwt. 3 root root 4096 Apr 12 17:04 tmp > 如果許可權不對,則賦權chmod 777 tmp

[root@rac02 ~]# ll /var/tmp/.oracle
total 4
srwxr-xr-x 1 grid oinstall 0 Sep 18 10:53 mdnsd
-rw-r--r-- 1 grid oinstall 7 Sep 18 10:53 mdnsd.pid
prw-r--r--. 1 root root 0 Apr 12 17:05 npohasd
srwxrwxrwx 1 grid oinstall 0 Sep 18 10:53 ora_gipc_gipcd_rac02
-rw-r--r-- 1 grid oinstall 0 Sep 18 10:53 ora_gipc_gipcd_rac02_lock
srwxrwxrwx 1 grid oinstall 0 Sep 18 10:53 ora_gipc_GPNPD_rac02
-rw-r--r-- 1 grid oinstall 0 Sep 18 10:53 ora_gipc_GPNPD_rac02_lock
srwxrwxrwx 1 root root 0 Sep 18 10:53 ora_gipc_srac02gridrac-clusterCRFM_CLIIPC
-rw-r--r-- 1 root root 0 Sep 18 10:53 ora_gipc_srac02gridrac-clusterCRFM_CLIIPC_lock
srwxrwxrwx 1 root root 0 Sep 18 10:53 ora_gipc_srac02gridrac-clusterCRFM_SIPC
-rw-r--r-- 1 root root 0 Sep 18 10:53 ora_gipc_srac02gridrac-clusterCRFM_SIPC_lock
srwxrwxrwx 1 grid oinstall 0 Sep 19 10:18 s#122017.1
srwxrwxrwx 1 grid oinstall 0 Sep 19 10:18 s#122017.2

這些socket 文被用作 本地客戶端使用程式間通訊協議(ipc)和不同的oracle的程式通訊,而這些程式包括:tns 監聽,css ,crs,evm 守護程式;甚至資料庫和asm 例項。這些socket 由‘主動監聽’的程式建立。在這裡oracle tns listener 建立這些socket 檔案主要使用用作pmon 和 tnslsnr 通訊。

如果RAC或者HAS下:

3.1,在Linux平臺上,Network Socket File在/var/tmp/.oracle/目錄下。在其他平臺,可能的目錄有:/tmp/.oracle/*, /tmp/.oracle 或者 /usr/tmp/.oracle
3.2,如果CRS或者HAS沒有啟動,刪除oracle臨時檔案(Network Socket File),在CRS重啟後會自動重新建立,沒有不良影響。
3.3,如果CRS或者HAS已經啟動並正常執行中,刪除oracle臨時檔案,不影響資料庫執行,但是資料庫不能正常關閉(可以abort,但是不能啟動
3.4,如果出現了上面的情況3,CRS不能關閉(包括使用-f選項),只能手工清理共享記憶體段和kill 程式。在HAS中,kill ocssd.bin程式不會造成主機重啟。但是在RAC環境下kill ocssd.bin程式會造成主機重啟。
3.5,如果完成了上面的情況4,只需要重啟CRS或者HAS就可以了。

4)listener.ora配置問題,注意空格。

5)系統資源不足,可考慮調大limits設定等。

案例: 客戶端TNS-12543的錯誤。用tnsping給幾個資料庫環境做連線驗證,客戶端的一個庫總是報TNS-12543的錯誤,能夠ping通,但是直連就報錯,很有可能就是防火牆或者其他網路配置的問題,可以去檢視一下是否防火牆對某個埠的限制。(strace 伺服器與客戶端做對比)

使用tnsping解析連線串時,無法控制超時的情況,預設是取作業系統級的設定1分鐘,如果有大批次的連線串需要檢測IP和埠,可以考慮nc來設定超時,參考命令:

nc -w 2 -v192.168.97.17 1521|grep succ

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

相關文章