共計 1567 個字符,預計需要花費 4 分鐘才能閱讀完成。
這篇文章主要介紹了 oracle 中出現 ORA-12520 錯誤怎么辦,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓丸趣 TV 小編帶著大家一起了解一下。
ORA-12520: TNS: 監聽程序無法為請求的服務器類型找到可用的處理程序
監聽日志太大;內存耗盡;os 進程耗盡;CPU 過忙;連接風暴;共享池內存收縮 … 都會導致這種情況
根據網上資料:
當你碰到 ORA-12520 錯誤時,如下所示:
英文:
ORA-12520: TNS:listener could not find available handler for requested type of server
中文:
ORA-12520: TNS: 監聽程序無法為請求的服務器類型找到可用的處理程序
一般你應該從下面兩個方面考慮:
1:數據庫是專用服務器,但是在 tnsname.ora 配置文件中設置的連接方式是 shared,這種情況需要修改 tnsname.ora 配置文件,這種錯誤情況一般發生在第一次連接數據庫服務器。
如下所示,將數據庫服務器關閉共享服務器配置后,然后用 PL/SQL Developer 連接數據庫,就會出現 ORA-12520 錯誤。
alter system set shared_servers=0 scope=both;
System altered.
2:運行正常的數據庫服務器,突然報 ORA-12520 錯誤,一般是因為 process 不夠引起的。需要增大 processes 參數的值。
然而進過檢查服務器、客戶端都是 dedicated 模式,且 process 參數足夠。。
接著查看監聽日志發現達到 4g, 現象是從 1 號開始的,而監聽日志不寫東西是從上個月 31 號,現象基本符合,可能是由于監聽日志過大引起的
解決:
oracle 監聽器日志文件過大導致該文件無法更新
解決操作步驟:
lsnrctl set log_status off ### 先把日志狀態停掉,這樣就不會寫監聽器日志
現在就可以把 監聽器日志文件備份 mv 或是 刪掉 rm
lsnrctl set log_status on ### 重新打開日志,開始記錄監聽器日志。該文件會自動創建
可以執行 lsnrctl status,檢查監聽器日志文件
切記:不能直接 cat /dev/null listener_testdb1.log 除非在監聽器關閉的情況下。
否則,即便文件已經被清空,監聽器還是無法執行寫入日志的。
另外也可以指定監聽器日志文件的名字,而不需要系統生成的文件名:
==========================
如何確定 oracle 數據庫的連接模式是專用,還是共享模式
這個問題既與參數 shared_servers、dispatchers 有關,還與服務器、客戶端的 TNSname.ora 文件有關系。
在 DB 端的 shared_servers 參數控制 server 是否能接受 share server 連接, 但是,client 可以通過在 TNSname.ora 來設置強制使用 DEDICATED
如下,4 種情況:
DB shared_servers = 0 , TNSname.ora server=shared 或者不設置 == DEDICATED 連接
DB shared_servers = 0 , TNSname.ora server=DEDICATED == DEDICATED 連接
DB shared_servers 0 , TNSname.ora server=DEDICATED == DEDICATED 連接
DB shared_servers 0 , TNSname.ora server=shared 或者不設置 == Shared 連接
感謝你能夠認真閱讀完這篇文章,希望丸趣 TV 小編分享的“oracle 中出現 ORA-12520 錯誤怎么辦”這篇文章對大家有幫助,同時也希望大家多多支持丸趣 TV,關注丸趣 TV 行業資訊頻道,更多相關知識等著你來學習!