oracle清理历史备份,oracle数据库备份删除操作

1、删除多余的归档日志

在ORACLE10G中,默认的归档路径为$ORACLE_BASE/flash_recovery_area。对于这个路径,ORACLE有一个限制,就是默认只能有2G的空间给归档日志使用,可以使用下面两个SQL语句去查看它的限制:

1. select * from v$recovery_file_dest;

2. show parameter db_recovery_file_dest(这个更友好直观一些)

当归档日志数量大于2G时,那么就会由于没有更多的空间去容纳更多的归档日志会报无法继续归档的错误。

如:“RA-19809: limit exceeded for recovery files

ORA-19804: cannot reclaim 10017792 bytes disk space from 2147483648 limit

ARC0: Error 19809 Creating archive log file to '/u01/app/oracle/flash_recovery_area/ORCL/archivelog/2007_04_30/o1_mf_1_220_0_.arc' ”这时我们可以修改它的默认限制,比如说将它增加到5G或更多,也可以将归档路径重新置到别的路径,就不会有这个限制了。

更改限制语句如下:

alter system set db_recovery_file_dest_size=5368709102  (这里为5G 5x1024x1024x1024=5G)

alter system set db_recovery_file_dest_size=10737418240

进入rman target username/password@database

执行下边的交叉校验

crosscheck archivelog all;

此时可能会提示校验失败,类似下边的提示:

RMAN> crosscheck archivelog all;

释放的通道: ORA_DISK_1

分配的通道: ORA_DISK_1

通道ORA_DISK_1: sid=14 devtype=DISK

对归档日志的验证失败

…………….

这时,需要执行exit退出rman。

在命令提示符窗口下执行下边的字符集设置

C:>set nls_lang=american_america.zhs16gbk

然后再进入rman,再执行crosscheck archivelog all;一般不会再出现这样的问题了。

在命令窗口里面执行

DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';

说明

SYSDATA-7,表明当前的系统时间7天前,before关键字表示在7天前的归档日志,如果使用了闪回功能,也会删除闪回的数据。

同样道理,也可以删除从7天前到现在的全部日志,不过这个命令要考虑清楚,做完这个删除,最好马上进行全备份数据库

DELETE ARCHIVELOG FROM TIME 'SYSDATE-7';

UNIX/LINUX

你可能感兴趣的:(oracle清理历史备份)