ORA-00257:archiver error问题处理

1、故障现象:
        执行了一个批量脚本挂死,连接数据库报错ORA-00257:archiver error
2、解决办法:
    通过sys登录查看闪回区的使用情况,发现已经满了
      SQL>select * fromV$FLASH_RECOVERY_AREA_USAGE;
162028hzewhf9tf79iuzsw.jpg
查看闪回区域占用的空间大小 flash recovery area
SQL> selectsum(percent_space_used)*3/100 from v$flash_recovery_area_usage;
执行结果如下图,数据库安装默认下来就是这么大,对于数据量大的批量操作无法满足。
162129kk6pkk65z4jwkwpp.jpg
在root用户下查看磁盘空间使用情况,如果宽裕可以直接扩大闪回区的大小
此次错误出现的情况是执行2千8百多万的数据的批量插入,出错的时候插入的数据大概是700万左右,占用了3g空间
估算2800万数据大概占用空间12g左右,所以扩大闪回区域大小到20g.
SQL> ALTER SYSTEM SET DB_RECOVERY_FILE_DEST_SIZE=20g;
如果数据库的数据不是日志老业务库,是刚新建的数据库,没有业务数据,可以将归档删除
     查询日志目录位置
     show parameter recover;
     删除归档日志,picpsh是数据库实例名
      1. 进入rman   
      简便进入方法:  rman target/
      2. connect target /
      3. crosscheck archivelog all;
      4. delete expired archivelogall;     
      SQL>  connect /as sysdba
      SQL> select * fromV$FLASH_RECOVERY_AREA_USAGE;
162221otuufkt0sn4fu5rx.jpg
数据批量插入执行完毕,查看生成了大概13g的归档日志

162254cp95mpizgwvf4w4w.jpg
3、原因分析
在oracle 10g后,若flashback开启,后台归档程序进行(ARCn)将会自动在闪回恢复区中创建每个归档重做日志的一个副本,而flashback区域有大小限制:
1.查看快速恢复区的参数信息
SQL>show parameter db_recovery_file_dest;
2.修改快速恢复区的大小
SQL>alter system set db_recovery_file_dest_size=20g;
3.可以通过数据字典v$recovery_file_dest来查看款速恢复区的空间使用情况。
SQL>col name for a30
SQL>set line 100
SQL>select name,space_limit,space_used,number_of_files from v$recovery_file_dest;
4.解决快速恢复区空间不足的问题
1)重新设置快速恢复区的大小
SQL>alter system set db_recovery_file_dest_size=20g;
2)使用CROSSCHECK和DELETE OBSOLETE指令删除不需要的文件,或者使用DELETE EXPIRED 指令删除那些不需要的备份文件。或者使用RMAN的BACKUP RECOVERY AREA指令将恢复区中的文件复制到磁带中。
3)删除当前的恢复区,重新设置。
SQL>alter system set db_recovery_file_dest='/u01/backup/newflasharea';

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29535374/viewspace-2128741/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29535374/viewspace-2128741/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值