Oracle錯誤——ORA-03113:通訊通道的文件結尾

請參考:http://blog.csdn.net/zwk626542417/article/details/39667999sql

今天跟往常同樣,登錄PL/SQL,確登錄失敗,出現一個錯誤「ORA-01034」和「ORA-27101」如圖:數據庫


而後就就經過命令提示符去登錄Oracle,去查看怎麼回事,而後問題進一步出現,錯誤「ORA-03113:通訊通道的文件結尾 進程 ID:6320 回話 ID :191 序列號:3」。oracle


 

問題根源

Oracle出現錯誤,因而去錯誤日誌裏去找問題根源:在 e:\app\kang\diag\rdbms\oracle\oracle\trace\文件夾下找到oracle_ora_6320.trc文件,打開顯示錯誤日誌:app

 

[plain] view plain copy
  1. Trace filee:\app\kang\diag\rdbms\oracle\oracle\trace\oracle_ora_6320.trc  
  2. Oracle Database 11gEnterprise Edition Release 11.2.0.1.0 - 64bit Production  
  3. With thePartitioning, OLAP, Data Mining and Real Application Testing options  
  4. Windows NT VersionV6.1 Service Pack 1  
  5. CPU                 : 4 - type 8664, 2 PhysicalCores  
  6. Process Affinity    : 0x0x0000000000000000  
  7. Memory (Avail/Total):Ph:2805M/6087M, Ph+PgF:6761M/12173M  
  8. Instance name: oracle  
  9. Redo thread mountedby this instance: 1  
  10. Oracle processnumber: 19  
  11. Windows thread id:6320, image: ORACLE.EXE (SHAD)  
  12.    
  13.    
  14. *** 2014-08-1608:18:55.461  
  15. *** SESSIONID:(191.3) 2014-08-16 08:18:55.461  
  16. *** CLIENT ID:()2014-08-16 08:18:55.461  
  17. *** SERVICE NAME:()2014-08-16 08:18:55.461  
  18. *** MODULENAME:(sqlplus.exe) 2014-08-16 08:18:55.461  
  19. *** ACTION NAME:()2014-08-16 08:18:55.461  
  20.    
  21. ORA-19815: 警告:db_recovery_file_dest_size 字節 (共 4102029312 字節) 已使用 100.00%, 尚有 0 字節可用。  
  22. ************************************************************************  
  23. You have followingchoices to free up space from recovery area:  
  24. 1. Consider changingRMAN RETENTION POLICY. If you are using Data Guard,  
  25.    then consider changing RMAN ARCHIVELOGDELETION POLICY.  
  26. 2. Back up files totertiary device such as tape using RMAN  
  27.    BACKUP RECOVERY AREA command.  
  28. 3. Add disk space andincrease db_recovery_file_dest_size parameter to  
  29.    reflect the new space.  
  30. 4. Delete unnecessaryfiles using RMAN DELETE command. If an operating  
  31.    system command was used to delete files,then use RMAN CROSSCHECK and  
  32.    DELETE EXPIRED commands.  
  33. ************************************************************************  
  34. ORA-19809:超出了恢復文件數的限制  
  35. ORA-19804: 沒法回收33961984 字節磁盤空間 (從 4102029312 限制中)  
  36. *** 2014-08-1608:18:55.502 4132 krsh.c  
  37. ARCH: Error 19809Creating archive log file to'E:\APP\KANG\FLASH_RECOVERY_AREA\ORACLE\ARCHIVELOG\2014_08_16\O1_MF_1_159_%U_.ARC'  
  38. *** 2014-08-1608:18:55.502 2747 krsi.c  
  39. krsi_dst_fail: dest:1err:19809 force:0 blast:1  
  40. DDE: Problem Key 'ORA312' was flood controlled (0x1) (no incident)  
  41. ORA-00312: 聯機日誌 3 線程1: 'E:\APP\KANG\ORADATA\ORACLE\REDO03.LOG'  
  42. ORA-16038: 日誌 3sequence# 159 沒法歸檔  
  43. ORA-19809:超出了恢復文件數的限制  
  44. ORA-00312: 聯機日誌 3 線程1: 'E:\APP\KANG\ORADATA\ORACLE\REDO03.LOG'  
  45.    
  46. *** 2014-08-1608:18:55.565  
  47. USER (ospid: 6320):terminating the instance due to error 16038  


 

 

從這裏咱們發現了問題的根源:「ide

ORA-19815: 警告: db_recovery_file_dest_size 字節 (共 4102029312 字節) 已使用100.00%, 尚有 0 字節可用。 db_recovery_file_dest_size也叫歸檔日誌空間不足致使的,既然找到問題的根源,那解決起來也就容易了。工具

解決途徑

空間小,那擺在咱們面前辦法就是,一個是將空間設置大點,另外一個就是將多餘的文件刪除掉便可,那麼咱們就將這兩個辦法都使用一下。this

 

經過命令窗口:spa

--------設置歸檔日誌空間的大小操作系統

  1. sqlplus / as sysdba  
  2. shutdown abort     ----關閉進程  
  3. startup mount       ---- 裝載數據庫  
  4. select * from v$recovery_file_dest; ---查詢歸檔日誌  
  5. db_recovery_file_dest_size=10737418240; --設置歸檔日誌空間爲10G  
  6. Exit ---到這裏空間大小已經設置完成  

 

--------刪除歸檔日誌.net

  1. rmantarget /   -----進入rman工具窗口  
  2. RMAN>crosscheckarchivelog all;  --運行這個命令能夠把無效的expired的archivelog標出來。  
  3. 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並不知道這些文件已經不存在了。因此仍是要經過命令窗口去執行刪除這些文件的命令。

後記

歸檔日誌實際上是爲了方便咱們在恢復數據庫時使用的,可是有時候這些歸檔日誌有時確實會給咱們帶來一點點的小麻煩,因此這些歸檔日誌仍是須要咱們去注意的。

相關文章
相關標籤/搜索