概述
我们在用rman做数据库备份的时候经常会用到这么两个命令:crosscheck archivelog all; 和 delete expired archivelog all;那么这两个命令是在做什么事情,原理是什么呢?下面简单说明一下。
![d19c608e931f21fccd0c8867e78e5f84.png](https://i-blog.csdnimg.cn/blog_migrate/0a8d8a91145bae827e3ef07a19cad814.jpeg)
crosscheck archivelog all & delete expired archivelog all
在controlfile中记录着每一个archivelog的相关信息,当我们在OS下把这些物理文件delete掉或异常变动后,在controlfile中仍然记录着这些archivelog的信息,当我们手工清除archive目录下的文件后,这些记录并没有被我们从controlfile中清除掉,也就是oracle并不知道这些文件已经不存在了!这时候我们要做手工的清除。
crosscheck archivelog all;的作用就是检查控制文件和实际物理文件的差别。
delete expired archivelog all;就是同步控制文件的信息和实际物理文件的信息。
![06cfe92534d14075e668c8838bf50e44.png](https://i-blog.csdnimg.cn/blog_migrate/3a86fcd4444b9f0ba25b9fe8bc0d40ba.jpeg)