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

来源:互联网 发布:淘宝拍卖会 编辑:IT博客网 时间:2020/02/25 15:16

show  parameter  recovery

SQL> show  parameter  recovery ;

发现 db_recovery_file_dest_size 值太小了, 当归档超过这个值之后就会报错 

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

SQL> archive log list;
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     4723
Next log sequence to archive   4728

Current log sequence           4728


原因: 

The database is running in archive log mode with automatic archiving turned on. When the archive log destination diskspace becomes full the automatic archiving will stop.  This is expected to happen.  At this point a message should appear  on the screen:  ORACLE Instance v816 - Can not allocate log, archival required  When all of the online redo logs are filled up, the database will be in a hang  state.  After freeing up diskspace the online redo logs are still not archiving.  In  most cases this is the CORRECT behaviour.

解决方法如下

方法一 : 

1. 直接删除 物理数据 rm 

2. 通过 rman 删除: 

rman  target 

执行如下命令: 
(1) crosscheck backup; 
(2) delete obsolete; 
(3) delete expired backup; 
(4) crosscheck archivelog all; 
(5) delete expired archivelog all; 
(6) host; 

方法二 : 就是增大闪回日志文件的最大大小。如下 
alter system set DB_RECOVERY_FILE_DEST_SIZE=10g

 alter system set DB_RECOVERY_FILE_DEST_SIZE=50g scope=both;