sqlplus登入是報錯,ORA-12570: TNS: 包閱讀程式失敗
1、先定位問題是不是Oracle 監聽器日誌 listener.log檔案過大
路徑一般:C:\app\Administrator\diag\tnslsnr\主機名\listener\trace下面的 listener.log
db版本:11.2.0.1
os版本:windows2008
現象:
應用異常,無法連線資料庫。登陸資料庫伺服器,檢視監聽已經斷掉。嘗試重啟監聽,重啟失敗。檢視監聽日誌listener.log的大小已經超過4G。
解決方法:
1、關閉監聽
2、刪除listener.log(刪除前可以先做備份)
3、然後重啟監聽,監聽重啟後會自動建立一個新的日誌檔案
<----------------------------------------------------以上為windows傻瓜式操作,下面可以用於linux----------------------------------------------->
補充:
在監聽程序執行時,無法對listener.log做刪除或者重新命名操作。
如果不想重啟監聽,刪除監聽日誌。可以按如下操作:
1.>lsnrctl set log_status off # 先把日誌狀態停掉,這樣就不會寫監聽器日誌
2. 備份或者刪除監聽日誌
3.>lsnrctl set log_status on # 重新開啟日誌,開始記錄監聽器日誌。該檔案會自動建立
4.>lsnrctl status #檢查監聽狀態
Linux下不要直接 cat /dev/null > listener.log 除非在監聽器關閉的情況下。否則,即便檔案已經被清空,監聽器還是無法執行寫入日誌的。
參考資料:
Bug 9497965 - Win: Listener Startup Fails Due to listener.log Size is Greater Than 4GB [ID 9497965.8]