Oracle

Oracle 數據庫無法啟動,ORA-03113

  • August 20, 2021

在 CentOS 上執行 Oracle 11.2.0.4.0 並發現硬碟已滿,警報日誌中出現錯誤:

ORA-19815: WARNING: db_recovery_file_dest_size of 64424509440 bytes is 99.98% used, and has 10141696 remaining bytes available.

然後向數據庫發出關閉命令,警報日誌顯示:

ARCH: Error 19809 Creating archive log file to /home.../archivelog/...

Errors in file /home/.../trace/..._ora_24158.trc:
ORA-16038: log 3 sequence# 11493 cannot be archived
ORA-19809: limit exceeded for recovery files
ORA-00312: online log 3 thread 1: /home/.../redo03.log

USER (ospid: 24158): terminating the instance due to error 16038

System state dump requested by (instance=1, osid=24158), summary=[abnormal instance termination]

System State dumped to trace file /home/.../trace/..._diag_24124_20210819133650.trc

Dumping diagnostic data in directory=[cdmp_20210819133650], requested by (instance=1, osid=24158), summary=[abnormal instance termination].

Instance terminated by USER, pid = 24158

然後我清理了1.7G硬碟空間,嘗試啟動數據庫,顯示如下錯誤:

SQL> startup;
ORACLE instance started.

Total System Global Area 4927172608 bytes
Fixed Size          2261648 bytes
Variable Size         989859184 bytes
Database Buffers     3925868544 bytes
Redo Buffers            9183232 bytes
Database mounted.
ORA-03113: end-of-file on communication channel
Process ID: 24158
Session ID: 96 Serial number: 3

並且警報日誌顯示:

Errors in file /home/...trace/..._ora_17003.trc:
ORA-19815: WARNING: db_recovery_file_dest_size of 64424509440 bytes is 99.98% used, and has 10141696 remaining bytes available

ARCH: Error 19809 Creating archive log file to /home.../archivelog/2021_08_20/o1_mf_1_11493_%u_.arc

Errors in file /home.../trace/..._ora_17003.trc:
ORA-16038: log 3 sequence# 11493 cannot be archived
ORA-19809: limit exceeded for recovery files
ORA-00312: online log 3 thread 1: /home.../redo03.log

USER (ospid: 17003): terminating the instance due to error 16038

System state dump requested by (instance=1, osid=17003), summary=[abnormal instance termination].

System State dumped to trace file /home/.../trace/..._diag_16963_20210820081510.trc

Dumping diagnostic data in directory=[cdmp_20210820081510], requested by (instance=1, osid=17003), summary=[abnormal instance termination].

Instance terminated by USER, pid = 17003

我對 Oracle 不是很有經驗。誰能推荐一個解決方案?我的目標是啟動數據庫以使其正常工作,然後將所有內容複製到更大的硬碟驅動器(從 225G SSD 移動到 1000G HDD)。

即使您刪除了一些文件,FRA 的大小仍然限制為 60 GB,並且仍然是滿的,因此無法歸檔目前的線上重做日誌。

通常我會建議從 FRA 中刪除不必要的文件,但由於您只想啟動數據庫然後停止並將其移動到其他地方,只需增加足以儲存接下來幾個歸檔日誌的 FRA 的大小:

startup nomount
show parameter db_recovery_file_dest_size;
alter system set db_recovery_file_dest_size=61G;
show parameter db_recovery_file_dest_size;
alter database mount;
alter database open;

數據庫應該打開,之後您可以停止它並將文件移動到您想要的位置。

引用自:https://dba.stackexchange.com/questions/298333