Oracle錯誤——ORA-03113:通訊通道的檔案結尾 解決辦法,oracleora-03113
由來
今天跟往常一樣,登陸PL/SQL,確登陸失敗,出現一個錯誤“ORA-01034”和“ORA-27101”
然後就就通過命令提示字元去登陸Oracle,去查看怎麼回事,然後問題進一步出現,錯誤“ORA-03113:通訊通道的檔案結尾進程 ID:6320 回話 ID :191序號:3”。
問題根源
Oracle出現錯誤,於是去錯誤記錄檔裡去找問題根源:在e:\app\kang\diag\rdbms\oracle\oracle\trace\檔案夾下找到oracle_ora_6320.trc檔案,開啟顯示錯誤記錄檔:
Trace filee:\app\kang\diag\rdbms\oracle\oracle\trace\oracle_ora_6320.trcOracle Database 11gEnterprise Edition Release 11.2.0.1.0 - 64bit ProductionWith thePartitioning, OLAP, Data Mining and Real Application Testing optionsWindows NT VersionV6.1 Service Pack 1CPU : 4 - type 8664, 2 PhysicalCoresProcess Affinity : 0x0x0000000000000000Memory (Avail/Total):Ph:2805M/6087M, Ph+PgF:6761M/12173MInstance name: oracleRedo thread mountedby this instance: 1Oracle processnumber: 19Windows thread id:6320, image: ORACLE.EXE (SHAD) *** 2014-08-1608:18:55.461*** SESSIONID:(191.3) 2014-08-16 08:18:55.461*** CLIENT ID:()2014-08-16 08:18:55.461*** SERVICE NAME:()2014-08-16 08:18:55.461*** MODULENAME:(sqlplus.exe) 2014-08-16 08:18:55.461*** ACTION NAME:()2014-08-16 08:18:55.461 ORA-19815: 警告:db_recovery_file_dest_size 位元組 (共 4102029312 位元組) 已使用 100.00%, 尚有 0 位元組可用。************************************************************************You have followingchoices to free up space from recovery area:1. Consider changingRMAN RETENTION POLICY. If you are using Data Guard, then consider changing RMAN ARCHIVELOGDELETION POLICY.2. Back up files totertiary device such as tape using RMAN BACKUP RECOVERY AREA command.3. Add disk space andincrease db_recovery_file_dest_size parameter to reflect the new space.4. Delete unnecessaryfiles using RMAN DELETE command. If an operating system command was used to delete files,then use RMAN CROSSCHECK and DELETE EXPIRED commands.************************************************************************ORA-19809:超出了恢複檔案數的限制ORA-19804: 無法回收33961984 位元組磁碟空間 (從 4102029312 限制中)*** 2014-08-1608:18:55.502 4132 krsh.cARCH: Error 19809Creating archive log file to'E:\APP\KANG\FLASH_RECOVERY_AREA\ORACLE\ARCHIVELOG\2014_08_16\O1_MF_1_159_%U_.ARC'*** 2014-08-1608:18:55.502 2747 krsi.ckrsi_dst_fail: dest:1err:19809 force:0 blast:1DDE: Problem Key 'ORA312' was flood controlled (0x1) (no incident)ORA-00312: 聯機日誌 3 線程1: 'E:\APP\KANG\ORADATA\ORACLE\REDO03.LOG'ORA-16038: 日誌 3sequence# 159 無法歸檔ORA-19809:超出了恢複檔案數的限制ORA-00312: 聯機日誌 3 線程1: 'E:\APP\KANG\ORADATA\ORACLE\REDO03.LOG' *** 2014-08-1608:18:55.565USER (ospid: 6320):terminating the instance due to error 16038
從這裡我們發現了問題的根源:“
ORA-19815: 警告: db_recovery_file_dest_size 位元組 (共 4102029312 位元組) 已使用100.00%, 尚有 0 位元組可用。”是db_recovery_file_dest_size也叫歸檔日誌空間不足導致的,既然找到問題的根源,那解決起來也就容易了。
解決途徑
空間小,那擺在我們面前辦法就是,一個是將空間設定大點,另一個就是將多餘的檔案刪除掉即可,那麼我們就將這兩個辦法都使用一下。
通過命令視窗:
--------設定歸檔日誌空間的大小
sqlplus / as sysdbashutdown abort ----關閉進程startup mount ---- 裝載資料庫select * from v$recovery_file_dest; ---查詢歸檔日誌db_recovery_file_dest_size=10737418240; --設定歸檔日誌空間為10GExit ---到這裡空間大小已經設定完成
--------刪除歸檔日誌
rmantarget / -----進入rman工具視窗RMAN>crosscheckarchivelog all; --運行這個命令可以把無效的expired的archivelog標出來。RMAN>deletenoprompt archivelog until time "sysdate -3"; -- -即刪除3天前的歸檔日誌
到這裡就徹底ok了。接下來重新開啟資料庫:正常使用。
在刪除歸檔檔案中有一點要注意,通過命令視窗顯示顯示歸檔檔案都在E:\app\kang\flash_recovery_area\oracle\ARCHIVELOG 下,但是我們不能手工在作業系統中直接把這些檔案刪除掉,這是因為在controlfile中記錄著每一個archivelog的相關資訊,當我們在OS中刪除這些檔案後,我們的controlfile中仍然記錄著這些archivelog的資訊,因此在Oracle的OEM管理器中還會存在這些日誌。因為當我們手工清除archive目錄下的檔案後,這些記錄並沒有被我們從controlfile中清除掉,也就是oracle並不知道這些檔案已經不存在了。所以還是要通過命令視窗去執行刪除這些檔案的命令。
後記
歸檔日誌其實是為了方便我們在恢複資料庫時使用的,但是有時候這些歸檔日誌有時確實會給我們帶來一點點的小麻煩,所以這些歸檔日誌還是需要我們去注意的。
Oracle資料庫,startup時顯示錯誤“ora-03113,通訊通道的檔案結尾”,協助如可以解決,追加財富值
1。請說一下環境,作業系統? oracle版本
2. 請貼出alert中對應時間的日誌
3. 這個有可能是bug,有可能是參數問題
4. 僅說ora-03113報錯,很難診斷呀~
Oracle資料庫連接問題:ORA-03113: 通訊通道的檔案結尾 進程 ID: 5272 會話 ID: 191 序號: 3
提供的資訊不夠給出建議
資料庫是什麼版本?
startup mount
show parameter background_dump_dest
如果是10g以上的版本
select name ,value from v$diag_info where name='Diag Trace';
從上一步取得的目錄中找到alert_SID.log
開啟記錄檔,把最後20行貼上來.