現象:
Oracle數據庫中,使用lsnrctl開啟、關閉監聽或查看監聽狀態時,非常慢,可以通過斷網的方式使動作馬上完成。
在客戶端使用plsql等方式連接數據庫時,也是非常慢,同樣也可以通過切換網絡狀態的方法使其馬上完成。
分兩個層面:
1. 監聽本身有問題
關閉監聽日志,清理監聽日志
A. 關閉監聽日志
shell命令行登錄至oracle用戶,輸入lsnrctl進入監聽命令行。
show log_status 查看監聽日志狀態,“set to on”表示開啟,“set to off”表示關閉
set log_status off 關閉監聽日志
save_config 保存配置
B. 清理監聽日志
監聽日志(名稱中帶有log字樣)可能位於以下位置,建議備份后清理或重命名。
/u01/app/oracle/diag/tnslsnr/distance/listener/alert
/u01/app/oracle/diag/tnslsnr/distance/listener/trace
/u01/app/oracle/diag/rdbms/orcl/orcl/alert
(具體位置可能由於安裝時的差異而不同,請根據實際情況查找自己機器的相應目錄)
參考:https://zhidao.baidu.com/question/616289319368834692.html (停止監聽)
https://blog.csdn.net/onebigday/article/details/10195493 (監聽日志位置)
2. 服務器網絡配置問題
可能是DNS解析文件有問題,修改數據庫服務器的/etc/resolv.conf,將其中的“nameserver xxx.xxx.xxx.xxx”這一行注釋掉
問題排查與結論參考自 http://www.itpub.net/thread-1784287-1-1.html
解決上述問題過程中,有一個小插曲,因為自己的centOS搭建太久了忘記了root密碼,參考https://www.linuxidc.com/Linux/2018-01/150211.htm修改了centOS密碼。
CentOS6修改root密碼,親測有效,當然,改之前記得給虛擬機拍一下快照。