1. 程式人生 > >ORACLE啟動報錯ORA-03113: end-of-file on communication channel

ORACLE啟動報錯ORA-03113: end-of-file on communication channel

使用過程中發現oracle執行很慢(其實應該先關注空間問題),就準備關機重啟一下,關不掉就強制關閉,然後啟動就報錯了。

1.SQL> startup

ORACLE instance started.

Total System Global Area 6614106112 bytes
Fixed Size                  2213896 bytes
Variable Size            3154118648 bytes
Database Buffers         3422552064 bytes
Redo Buffers               35221504 bytes
Database mounted.
ORA-03113: end-of-file on communication channel
Process ID: 5982
Session ID: 96 Serial number: 3

 

網上去檢視ORA-03113: end-of-file on communication channel這個錯誤,發現大家說的可能性很多,講的也很全面,但自己的究竟是哪個呢。其實大家找尋問題,最重要的是要看日誌。這裡我們就去檢視alert日誌。

通過日誌在alert日誌中發現了問題的根源,alert中報錯資訊為

ORA-19815: WARNING: db_recovery_file_dest_size of 4070572032 bytes is 100.00% used, and has 0 remaining bytes available.

直接了當的反映了由於db_recovery_file_dest_size的空間已經被使用滿了,所以導致無法啟動。

解決起來就很容易了,先將資料庫啟動到mount狀態(因為已經無法開啟了嘛)

SQL>  startup mount

接下來,檢視一下我們預先配置的db_recovery_file_dest_size究竟有多大。

SQL>  show parameter db_recovery_file_dest_size;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest_size           big integer 3882M

只有4個G不到,立刻查看了一下,其他幾臺生產環境的資料庫引數。

SQL> show parameter db_recovery_file_dest_size;

NAME         TYPE  VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest_size      big integer 4000G

立刻震驚,好吧。真闊綽。4T。修改一下吧。

SQL> ALTER SYSTEM SET db_recovery_file_dest_size=4000G scope=both;

好了。接下來。就可以把庫啟動起來了。

 

 針對這種空間問題有幾種解決辦法,以上是其中一種。

解決辦法有三個,如下:
     1> 設定新的歸檔路徑,操作語句為 SQL> alter system set log_archive_dest=new_location;
     2> 轉儲或刪除閃回恢復區裡的歸檔日誌;
     3> 增大閃回恢復區,操作語句為 SQL> alter system set db_recovery_file_dest_size=new_size;
如下采用刪除過舊歸檔備份進行處理。
4. RMAN方式登入,手動刪除不需要的歸檔日誌(eg:刪除三天以前的歸檔記錄)
[[email protected] trace]$ rman target /

Recovery Manager: Release 11.2.0.4.0 - Production on Wed Apr 20 15:49:22 2016

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

connected to target database: HBANG (DBID=1821727253, not open)

RMAN>delete archivelog all completed before 'sysdate - 3';
......
Do you really want to delete the above objects (enter YES or NO)?YES
......
RMAN> quit
5. 重新開啟資料庫驗證
SQL> alter database open;

Database altered.

ps:

alert日誌具體的路徑

/ORACLE_HOME/diag/rdbms/ora9i/ora9i/trace/alert_ora9i.log我們這邊是9i版本,其他的稍微有些區別,具體是

Oracle 10G :/ORACLE_HOME/oracle/admin/oracle155/bdump

Oracle 11G:/ORACLE_HOME/diag/rdbms/ora11g/ora11g/alert

同時可以通過:SQL> select * from v$diag_info where name ='Diag Alert';

查詢alert 檔案位置

2.