ORA-19815归档日志磁盘空间占满

客户端连接失败,提示ORA-19815,alert.log有以下提示:
Errors in file /u01/app/oracle/admin/orcl/bdump/orcl_arc0_2734.trc:
ORA-19815: WARNING: db_recovery_file_dest_size of 2147483648 bytes is 100.00% used, and has 0 remaining bytes available.
Wed Jun 24 09:02:21 2020


You have following choices to free up space from flash recovery area:

  1. Consider changing RMAN RETENTION POLICY. If you are using Data Guard,
    then consider changing RMAN ARCHIVELOG DELETION POLICY.
  2. Back up files to tertiary device such as tape using RMAN
    BACKUP RECOVERY AREA command.
  3. Add disk space and increase db_recovery_file_dest_size parameter to
    reflect the new space.
  4. Delete unnecessary files using RMAN DELETE command. If an operating
    system command was used to delete files, then use RMAN CROSSCHECK and
    DELETE EXPIRED commands.

查看磁盘空间还有很多剩余空间,是因为默认的归档目标设置为USE_DB_RECOVERY_FILE_DEST,并且flash_recovery_area的最大尺寸设置为了2GB(db_recovery_file_dest_size= 2147483648),可以有多种方法来解决此问题,通过设置RMAN归档保持策略来自动删除过期的日志文件。也可以使用RMAN DELETE来删除日志文件。
比如删除系统时间1天以前的归档日志

1
RMAN>delete archivelog all completed before 'sysdate-1';

如果使用操作系统命令直接删除归档文件,并不能真正释放空间,还需要执行:

1
2
3
$ rman target /
rman> crosscheck archivelog all;
rman> delete expired archivelog all;