ORA-00257: archiver error. Connect internal only, until freed

往oracle数据库一张表里面导入了300多万数据之后,在更新一个字段的时候执行了10多分钟还没执行完,于是接取消了更新操作,然后在重新登录数据库就出现了ORA-00257: archiver error. Connect internal only, until freed的错误,原来是日志满了,那就就需要删除归档日志了。

首先查看当前flash recovery area使用情况。

    1.  使用sqlplus命令,已管理员的身份登录数据库
         如果是本机数据库用:
         C:\windows\system32>sqlplus sys/密码 as sysdba
         如果是登录远程数据库用:
         C:\windows\system32>sqlplus sys/密码@tnsnam as sysdba
     2. SQL> show parameter log_archive_dest;
     3.SQL> set linesize 200
     4.SQL> select * from V$FLASH_RECOVERY_AREA_USAGE;
         FILE_TYPE            PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE NUMBER_OF_FILES
         ARCHIVED LOG                      99.98                         0              97    发现已经使用了99.98%

清除部分日志

    采用rman方式清除日志
    1.C:\windows\system32>rman target sys/数据库密码
    2.RMAN> crosscheck archivelog all;  --先检查下
    3.RMAN> delete expired archivelog all; --删除过期的日志
    4.RMAN> DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';--删除7天以前的日志(delete archivelog until time "to_date('2015-05-04 13:00:00','yyyy-mm-dd        hh24:mi:ss')"--删除到某个时间为止的日志)
    5.--删除后在看日志使用的空间情况,发现已使用的只有22.98%
        SQL> select * from V$FLASH_RECOVERY_AREA_USAGE;
         FILE_TYPE            PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE NUMBER_OF_FILES
         ARCHIVED LOG                       22.98                          0              97    发现已经使用了22.98%
      
   

你可能感兴趣的:(oracle,error,connect,ORA-00257,until,internal,archiver,freed,onl)