我们都都知道在controlfile中记录着每一个archivelog的相关信息,当然们在OS下把这些物理文件delete掉后,在我们的
controlfile中仍然记录着这些archivelog的信息,在oracle的OEM管理器中有可视化的日志展现出,当我们手工清除archive目录下的文件后,这些记录并没有被我们从controlfile中清除掉,也就是oracle并不知道这些文件已经不存在了!这时候我们要做手工的清除的话,下面我经过实验,可以尝试这种方法:

以Oracle账户登录到数据库,执行以下命令:

1. 进入rman 
2. connect target /
3. crosscheck archivelog all;
4. delete expired archivelog all; 
5. DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';——这个是删除七天前的归档日志
    DELETE ARCHIVELOG FROM TIME 'SYSDATE-7'; 删除从7天前到现在的全部日志,慎用
6. crosscheck archivelog all;
7. delete expired archivelog all; 
8. 退出:exit 

Logo

更多推荐