文档详情

如何正确删除Oracle归档日志..doc

发布:2016-12-30约6.82千字共8页下载文档
文本预览下载声明
如何正确删除Oracle归档日志 归档日志的存储空间在启动数据库后检查告警日志时提示该容量已使用81%,分析了一下,找到了原因,记录如下: 在controlfile中记录着每个archivelog的相关信息,当我们在OS下把这些归档文件delete掉以后,这些信息并未从controlfile中清除,所以oracle并不知道这些文件已经不存在,所以相应的在容量上也并未调整,此时,需要我们做手工调整,使得controlfile中的记录与实际存在的归档日志文件保持一致。 可以尝试以下方法: 1. 进入rman 2. connect target / 或者 connect target/@db_name 3. crosscheck archivelog all; 4. delete expired archivelog all; 以上语句的解释说明: (1)crosscheck archivelog all:检查控制文件和实际物理文件的差别 (2)delete expired archivelog all:同步控制文件的信息和实际物理文件的信息 如果单独执行 crosscheck 而不执行 delete 那么操作还是失败的,因为并未达到同步控制文件和实际物理文件的目的。 这时候我们再去OEM中看就一定看不到,如果你的从来没有做过这个动作的话,我们可以比较从这个动作前的controlfile后动作后的controlfile的大小! ORACLE正确删除归档并回收空间的方法 一个ORACLE归档日志经常满,表现为/oraarchive 这个文件空间占用100%大家一定抱怨ORACLE为何没有归档维护工具,很多人直接删除了事,错了,ORACLE有,而且很智能,可以正确的删除归档和FLASHBACK,不过切记,ORACLE归档日志对于ORACLE的数据恢复和备份非常重要,不到万不得已不要删除归档日志。 删除归档日志的过程: 以ORACLE用户身份登录到数据库服务器主机或通过网络连接 进入ORACLE数据备份工具 rman target/或rman target/@orcl 在命令窗口里面执行 DELETE ARCHIVELOG ALL COMPLETED BEFORE SYSDATE-7; 说明: SYSDATA-7,表明当前的系统时间7天前,before关键字表示在7天前的归档日志,如果使用了闪回功能,也会删除闪回的数据。 同样道理,也可以删除从7天前到现在的全部日志,不过这个命令要考虑清楚,做完这个删除,最好马上进行全备份数据库 DELETE ARCHIVELOG FROM TIME SYSDATE-7; UNIX/LINUX下也可以通过FIND找到7天前的归档数据,使用EXEC子操作删除 find /oraarchive -xdev -mtime +7 -name *.dbf -exec rm -f {} ; 这样做仍然会在RMAN里留下未管理的归档文件 仍需要在RMAN里执行下面2条命令 crosscheck archivelog all; delete expired archivelog all; 所以还不如上面的方法好用,不过用FIND的好处就是,可以在条件上,和EXEC子项上做很多操作,实现更复杂的功能 简要介绍一下report obsolete命令 使用report obsolete命令报告过期备份 RMAN report obsolete; RMAN retention policy will be applied to the command RMAN retention policy is set to redundancy 1 Report of obsolete backups and copies Type Key Completion Time Filename/Handle -------------------- ------ ------------------ -------------------- Backup Set 125 01-NOV-04 Backup Piece 125 01-NOV-04 /data1/oracle/orabak/full_1_541045804 Backup Set 131 04-NOV-04 Backup Piece 131
显示全部
相似文档