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

今天对数据库归档日志做测试,出现了标题中的错误,以下是处理过程

1.打开数据库归档模式:

startup  mount;

alter  database  archivelog;

alter  database  open;


2.查看是否为归档:

SQL> archive log list
数据库日志模式             存档模式
自动存档             禁用
存档终点            USE_DB_RECOVERY_FILE_DEST
最早的联机日志序列     1410
当前日志序列           1415


3.查看参数 db_recovery_file_dest_size 大小

show   parameter    db_recovery_file_dest_size 

大小为 4102029312 bytes


4.对大表进行删除、插入、更新操作,再查看db_recovery_file_dest_size大小

由于产生的日志大于4102029312 bytes ,数据库直接hang住,没有任何反应;

查看闪回区大小select  *  from  v$flash_recovery_area_usage,看看归档目录使用情况,发现使用了99%;

5.发出shutdown immediate;

由于之前打开了一个sqlplus,用sys登录,所以在此窗口中直接用shutdown immediate命令,关闭数据库,发现没有反应,就用shutdown abort 


6.打开数据库发生错误,提示“ORA-03113: 通信通道结束

SQL> startup nomount;
ORACLE 例程已经启动。


Total System Global Area 2137886720 bytes
Fixed Size                  2177456 bytes
Variable Size            1291847248 bytes
Database Buffers          838860800 bytes
Redo Buffers                5001216 bytes
SQL> alter database mount;

数据库已更改。

SQL> alter database open;

ORA-03113: end-of-file on communication channel  

Process ID: 1935  

Session ID: 1  Serial number: 3  


7.忽然想起来查看trace文件了

Errors in file d:\app\datacvg\diag\rdbms\orcl\orcl\trace\orcl_arc2_78532.trc:
ORA-19809: limit exceeded for recovery files
ORA-19804: cannot reclaim 59371008 bytes disk space from 4102029312 limit
ARC2: Error 19809 Creating archive log file to 'D:\APP\DATACVG\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2016_02_24\O1_MF_1_1429_%U_.ARC'
Wed Feb 24 18:06:05 2016
Errors in file d:\app\datacvg\diag\rdbms\orcl\orcl\trace\orcl_arc2_78532.trc:
ORA-19815: WARNING: db_recovery_file_dest_size of 4102029312 bytes is 100.00% used, and has 0 remaining bytes available.
************************************************************************
You have following choices to free up space from recovery area:
1. Consider changing RMAN RETENTION POLICY. If you are using Data Guard,
   then consider changing RMAN ARCHIVELOG DELETION POLICY.
2. Back up files to tertiary device such as tape using RMAN
   BACKUP RECOVERY AREA command.
3. Add disk space and increase db_recovery_file_dest_size parameter to
   reflect the new space.
4. Delete unnecessary files using RMAN DELETE command. If an operating
   system command was used to delete files, then use RMAN CROSSCHECK and
   DELETE EXPIRED commands.
************************************************************************

也再次证明归档区域满了,无法再进行归档,因为我的归档区域是D:\APP\DATACVG\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2016_02_24\ ,这里面的空间还是比较大的,那就是那个参数的设置出了问题;那就是说修改此参数就行了(其实上面执行的关闭数据库,并且出现的ora-03113通信通道错误是完全可以避免的);


8.再次关闭数据库

shutdown  abort;


9.启动数据库到mount模式

startup  mount;


10.修改db_recovery_file_dest_size 参数的值(增大至10G)

alter  system  set  db_recovery_file_dest_size = 10737418240


11.打开数据库

alter  database  open 


在数据库打开的过程中,我打开闪回区(D:\APP\DATACVG\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2016_02_24\ )观察,发现又归档了四个文件,然后此命令才执行完成;


12.用rman删除掉测试产生的日志

rman  target  sys/admin

crosscheck  archivelog  all;

crosscheck 的用法

delete  expired  archivelog  all;

提示没有符合条件的日志;

delete  noprompt  archivelog  until  time "sysdate - 0";

直接把所有日志删除掉了;



你可能感兴趣的:(ORA-00257:archiver error.Connect internal only, until freed)