删除Oracle归档日志

有时候Oracle在正常使用一段时间后,连接数据库,报错:ORA-00257

原因:空间不足错误解决:检查数据文件和日志文件的存储空间,进行添加相应数据文件或者对归档日志重新设置归档路径在10g及其以上版本中,可能是闪回日志文件不足。我们可以增加其flash_recovery_area(10g以前需要关闭数据库实例,以后不需要)大小或者删除归档日志。

方法一

增加闪回空间

1 增加sql 

alter system set db_recovery_file_dest_size=21474836480;           设置使用空间大小(20*1024*1024*1024),20GB

查看sql  select * fromv$recovery_file_dest;


方法二

删除归档日志

1查看一下位置

select * from v$recovery_file_dest


删除Oracle归档日志_第1张图片

2查看占用了多少空间  如下2g多了

select sum(percent_space_used)*3/100 fromv$flash_recovery_area_usage;


删除Oracle归档日志_第2张图片

3 查看闪回区使用率 已经77%了

select * from v$flash_recovery_area_usage;


删除Oracle归档日志_第3张图片


4 把闪回区的归档日志cp到备份文件夹,然后rman target /


5 检查一些无用的archivelog

crosscheckarchivelog all

6 删除过期的归档

delete expiredarchivelog all

删除当天-1的归档

delete archiveloguntil time 'sysdate-1'


7 文件删除后空间会释放,别忘进入到闪回区把空文件夹删除,rman 会删除归档并不会删除文件夹。


方法三 把归档日志放到其他路径

alter system setlog_archive_dest_1='location=D:\oracle\archive';


注意 一定要有location

切换日志

alter system switchlogfile;

查看是否切换成功

Select recid,name,first_timefrom v$archived_log;


删除Oracle归档日志_第4张图片

Log_archive_dest_n 可以设置多个归档日志路径,用n区分

当有多个归档日志的时候如果不用某个路径归档日志,设置它等于空就可以了。

比较好的文章:http://blog.itpub.net/31397003/viewspace-2126503/

你可能感兴趣的:(删除Oracle归档日志)