串連Oracle時出現 ORA-12514錯誤 解決方案
最近在測試用的windows環境下的Oracle 11g,用一段時間後就出現
ORA-12514:TNS:監聽程式當前無法識別串連描述符中請求的服務
網上搜尋了一圈,發現大多是說listener.ora設定檔的事,但是我的系統是一直正常啟動並執行啊,不應該突然出現這個情況。後來偶然發現,在Windows環境下的Oracle 11g會有這麼一個問題。Oracle 11g會預設寫審計日誌,會寫到作業系統的“應用程式”日誌裡面去。當應用程式記錄檔被寫滿後。相當於使用者登入審計沒辦法記錄,機會出現登陸不了,而報ORA-12514這個錯誤。
Linux-6-64下安裝Oracle 12C筆記
在CentOS 6.4下安裝Oracle 11gR2(x64)
Oracle 11gR2 在VMWare虛擬機器中安裝步驟
Debian 下 安裝 Oracle 11g XE R2
臨時解決辦法,清除日誌
控制台 -> 管理工具 -> 事件檢視器 -> 應用程式 -> 右鍵 -> 清除所有事件
這樣就可以正常登陸oracle了
另外的解決辦法就是關閉oracle的審計
1、用oracle使用者登入到資料庫伺服器,執行:
sqlplus / as sysdba
2、取消audit,將初始化參數audit_trail設定為NONE
alter system set audit_trail=none scope=spfile;
3、然後重啟資料庫.
shutdown immediate;
sqlplus / as sysdba
startup;
4、刪除簽權資料,oracle使用者登入到資料庫伺服器:
sqlplus / as sysdba
truncate table SYS.AUD$;
後來,經過測試發現,正常的日誌寫滿,導致不能登陸的提示應該是這樣的:
ERROR:
ORA-28056: 未能將審計記錄寫入 Windows 事件記錄
OSD-748745664: Message 748745664 not found; product=RDBMS; facility=SOSD
O/S-Error: (OS 1502) 事件記錄檔案已滿。
ORA-02002: 寫入審計線索時出錯
ORA-28056: 未能將審計記錄寫入 Windows 事件記錄
OSD-748746736: Message 748746736 not found; product=RDBMS; facility=SOSD
O/S-Error: (OS 1502) 事件記錄檔案已滿。
如果是出現這樣的提示,問題的原因就很明確了。按照上面的方式就可以處理了