刚有同事问我,测试环境启动数据库报错 ORA-03113/ORA-16038/ORA-19809, 此数据库是归档模式
Database mounted.
ORA-03113: end-of-file on communication channel
Process ID: 19436
Session ID: 237 Serial number: 5
此时应首先查看alert文件,有报错如下
ARCH:
Error 19809 Creating archive log file to
'/home/oracle/product/flash_recovery_area/ORA11G/archivelog/2015_12_29/o1_mf_1_236_%u_.arc'
Errors in file /home/oracle/product/diag/rdbms/ora11g/ora11g/trace/ora11g_ora_23778.trc:
ORA-16038: log 2 sequence# 236 cannot be archived
ORA-19809: limit exceeded for recovery files
ORA-00312: online log 2 thread 1: '/home/oracle/product/oradata/ora11g/redo02.log'
看了一下
SQL> show parameter db_recovery_file_dest
NAME TYPE VALUE
-
db_recovery_file_dest string ${ORACLE_BASE}/flash_recovery_
area
db_recovery_file_dest_size big integer 10G
发现归档日志把空间占满了
SQL> select * from v$recovery_file_dest;
NAME
SPACE_LIMIT SPACE_USED SPACE_RECLAIMABLE NUMBER_OF_FILES
- - -
${ORACLE_BASE}/flash_recovery_area
1.0737E+10 1.0737E+10 0 10
于是用rman删除了过期的归档日志
rman target /
RMAN>delete expired archivelog all;
再查看
NAME
SPACE_LIMIT SPACE_USED SPACE_RECLAIMABLE NUMBER_OF_FILES
- - -
${ORACLE_BASE}/flash_recovery_area
1.0737E+10 439051776 0 10
然后重新startup就行了