解决方案 »

  1.   

    在controlfile中记录着每一个archivelog的相关信息,当我们在OS下把这些物理文件delete掉或异常变动后,在controlfile中仍然记录着这些archivelog的信息,当我们手工清除archive目录下的文件后,这些记录并没有被我们从controlfile中清除掉,也就是oracle并不知道这些文件已经不存在了!这时候我们要做手工的清除。
    crosscheck archivelog all;的作用就是检查控制文件和实际物理文件的差别。
    delete expired archivelog all;就是同步控制文件的信息和实际物理文件的信息。
    如果单独执行crosscheck而没有执行delete那么备份还是失败的,原因是那些控制文件的信息和实际的信息还是不同。
      

  2.   

    谢谢回复:
    1.我不是在os直接删除归档日志的 用的delete archivelog all删除的
    2.从查询闪回区使用情况来看不是归档日志占的空间而是FOREIGN ARCHIVED LOG占的空间,这个日志是用primary端传输过来的
    3.我怀疑这可能是bug
      

  3.   

    目前现象是oracle识别的比os识别的要多,先同步下试试,看看能不能修复这个问题