ORA-19815: db_recovery_file_dest_size of 21474836480 bytes is 100.00% (转贴自 mahanso http://space.it...

ORA-19815: db_recovery_file_dest_size of 21474836480 bytes is 100.00% (转贴自 mahanso http://space.itpub.net/12272958/viewspace-692484 )

今天早上有一个朋友数据库报ORA-19815,追着我要详细操作步骤,真好也总结一下:

我的解决办法:

1、调整db_recovery_file_dest_size参数

alter system set db_recovery_file_dest_size=4G scope=both;

2、清除你认为过期的归档日志(物理文件)

rm 归档路径+文件名

3、 rman登陆(清除控制文件中存的归档日志的信息)

e.g:

步骤一:rman target /

步骤二:crosscheck archivelog all;

步骤三:delete expired archivelog all;

补充知识:

crosscheck archivelog all

用RMAN的备份中(Veritas等备份软件由于归档日志的异常导致归档日志备份失败)是经常碰到的,解决方法也是非常解单,就是执行2条RMAN的命令:

1. 进入rman

2. connect target /

3. crosscheck archivelog all;

4. delete expired archivelog all;

===========================

这2条命令做什么事情,原理是什么。下面说明一下:

在controlfile中记录着每一个archivelog的相关信息,当我们在OS下把这些物理文件delete掉或异常变动后,在controlfile中仍然记录着这些archivelog的信息,当我们手工清除archive目录下的文件后,这些记录并没有被我们从controlfile中清除掉,也就是oracle并不知道这些文件已经不存在了!这时候我们要做手工的清除。

crosscheck archivelog all;的作用就是检查控制文件和实际物理文件的差别。

delete expired archivelog all;就是同步控制文件的信息和实际物理文件的信息。

如果单独执行crosscheck而没有执行delete那么备份还是失败的,原因是那些控制文件的信息和实际的信息还是不同。

crosscheck backupset

crosscheck backupset 是检查备份集和实际的文件

1、 备份集有两种状态A(Available,RMAN认为该项存在于备份介质上)X(Expired,备份存在于控制文件或恢复目录中,但

是并没有物理存在于备份介质上)

2、 crosscheck 的目的是检查RMAN 的目录以及物理文件,如果物理文件不存在于介质上,将标记为Expired。如果物理文件

存在,将维持Available。如果原先标记为Expired的备份集再次存在于备份介质上(如恢复了损坏的磁盘驱动器后),

crosscheck将把状态重新从Expired标记回Available。

3、 crosscheck 输出分两部分。第一部分列出确定存在于备份介质上的所有备份集片,第二部分列出不存在于备份介质上的备份集片,并将其标记为Expired。当设置备份保存策略后,一个备份过期,crosscheck之后标记为丢弃的备份状态依旧为availabel,要删除丢弃备份delete obsolete

[@more@]

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

转载于:http://blog.itpub.net/25191105/viewspace-1055718/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值