如何处理fast_recovery_area无剩余空间

如何处理fast_recovery_area无剩余空间


  一、打开数据库报错


  [oracle@DB1 ~]$ sqlplus / as sysdba


  SQL*Plus: Release 12.1.0.2.0 Production on Tue May 23 21:45:21 2017


    Copyright (c) 1982, 2014, Oracle.  All rights reserved.


    Connected to:
    Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
    With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options




  SQL> startup nomount


  ***********系统信息***********


  SQL> alter database mount;


  Database altered.


  SQL> alter database open;


  alter database open


  *


  ERROR at line 1:


  ORA-03113: end-of-file on communication channel


  Process ID: 13248


  Session ID: 96 Serial number: 1


  二、错误信息


  1.alert日志内容


  ***********系统信息***********


  2.trace文件信息(oracle_ora_13248.trc)


  ***********系统信息***********


  ----- End of Abridged Call Stack Trace -----


  错误显示:因为数据库归档日志放置在fast_recovery_area中,而空间已满,导致联机日志不能被归档,数据库无法工作


  三、修改db_recovery_file_dest_size,打开数据库


  SQL>  alter system set db_recovery_file_dest_size=20G scope=both;


  System altered.


  SQL> alter database open;


  Database altered.


  设置较大db_recovery_file_dest_size,先打开数据库,再解决问题。


  四、删除历史归档日志


  从日志信息中很明显看出来,数据库进行了resetlogs打开,所以前面的归档日志,在原则上已经无效(不再使用原始备份集恢复),因为数据库的控制文件中,无原归档日志信息,所以无法使用rman删除归档日志。那只能使用os命令先删除掉历史归档日志,然后再使用rman处理


  [root@DB1 archivelog]# find ./ -mtime +1| xargs rm -rf


  [root@DB1 archivelog]# ll


  ***********系统信息***********


  RMAN> crosscheck archivelog all;


  ***********系统信息***********


  Crosschecked 136 objects


  RMAN> DELETE EXPIRED archivelog all;


  ***********系统信息***********


  Deleted 124 EXPIRED objects


  五、概述


  1.使用os命令删除fast_recovery_area内容后,需要使用crosscheck检测
      crosscheck archivelog all;
 crosscheck backup;


  2.然后使用 DELETE EXPIRED命令删除
      DELETE EXPIRED archivelog all;
 DELETE EXPIRED backup;
 DELETE backupset;


  3.fast_recovery_area设置合适大小+合适的策略
      alter system set db_recovery_file_dest_size=20G scope=both; 
 (scope=spfile 仅仅更改spfile里面的记载,不更改内存,也就是不立即生效,而是等下次数据库启动生效。有一些参数只允许用这种方法更改。
  scope=memory 仅仅更改内存,不改spfile。也就是下次启动就失效了。
  scope=both 内存和spfile都更改。不指定scope参数,等同于scope=both)


  4.resetlogs打开数据库后,做好备份


  5.fast_recovery_area无剩余空间处理思路


    5.1)如果数据库不能登录:重启至mount,增大fast_recovery_area,open数据库,然后使用rman删除历史垃圾数据(备份集,日志,闪回日志等)


    5.2)如果数据库可以使用sys登录,增大fast_recovery_area(使其数据库可以正常工作),然后使用rman处理垃圾数据
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值