Oracle数据库频繁归档问题的解决办法

Oracle数据库频繁归档问题的解决办法:

第一步,检查:

top 输出 CPU 使用率很低;

iostat 读1M/s、写500K/s、iowait 3%;

v$session 中的会话不多,且都没有大的事务操作;

db_writer_processes=4;

log_archive_max_processes=2;

主日志组4个,每个组中3个10M大小的日志文件;

备日志组4个,每个组中1个10M大小的日志文件;

v$log 除了一个组为current,其它所有日志组状态均为active;

重启数据库现象依旧;

第二步,判断:

根据以上检查结果,判断应该不是应用层的问题,初步判断是系统进程或硬件问题。因为是生产系统,不到万不得已不要轻易作硬件检测和更换,因为那样会需要大量停止服务时间。首先采取一般控制日志归档的方法。

第三步,措施:

增加主日志文件;

alter database add logfile member ’/u02/oradata/BOSS/redo31.log’ to group 1;
alter database add logfile member ’/u02/oradata/BOSS/redo32.log’ to group 2;
alter database add logfile member ’/u02/oradata/BOSS/redo33.log’ to group 3;
alter database add logfile member ’/u02/oradata/BOSS/redo34.log’ to group 4;

第四步,增加归档进程数,由2改为4:

alter system set log_archive_max_processes=4 scope=both;

最后,重启主备数据库机器。