求教一个Oracle 日志归档报错的问题:现有设置如下:
windows 2008 r2
single db, 未使用rac, data gurad等 log_archive_dest_1       = "LOCATION=D:\ORACLE\ARCHIVE\Myfile MANDATORY REOPEN=300"
db_recovery_file_dest    = "C:\app\Administrator\flash_recovery_area"因为归档地址不是默认的db_recovery_file_dest,所以一系列的 flash_recovery相关的视图都变的无意义了。
也无法通过数据库查询归档文件夹的使用情况,只能查看磁盘的使用情况。那么问题来了:
在d盘仍有50g的剩余空间时,出现以下错误:
error im 006 odbc driver manager drive sqlsetconnectattr fail
hy000:ora-00257 archive error查了alert log, 发现了大量19504错误:
ARC2: Error 19504 Creating archive log file to 'D:\ORACLE\ARCHIVE\Myfile\ARCxxx.xxxxxxx'清除归档日志等解决方法我是知道的,但是想知道报错原因。
请问为什么在有空间的情况下报空间不足类的错误?
是因为剩余空间没有被释放吗?怎么确定并解决?还可能有别的原因吗?非常感谢!

解决方案 »

  1.   

    1.进到 rman 
    2.crosscheck archivelog all ; 
    3.delete archivelog all ; PS:注意备份;
      

  2.   

    你的磁盘空间是一回事儿,oracle 记录的已占用(归档文件、flash 的undo) 这些空间,又是另一回事儿;前者是你实际的空间,后都是 oracle  认为的空间;在实际归档时,以后者为准;
      

  3.   

    是呀,那是什么原因造成的呢?oracle为什么不能识别出所有磁盘空间?
      

  4.   


    ORACLE 他有自己的管理方法,就好像是 为什么查询是要用 select 而不用 choose 一样;
      

  5.   

    show parameter db_recovery_file_dest_size;
    select * from V$FLASH_RECOVERY_AREA_USAGE; 
      

  6.   

    select * from v$recovery_file_dest ;
      

  7.   

    是你自己没有去查询这些视图,也没有去理解 oracle 的工作机制,而是非要找一个 oracle 为什么不按你的想法 去工作;