前言
近期发现数据库某张表在进行delete操作时极其缓慢,经检查后发现该数据库的八个重做日志文件大小不一致,其中四个只有50M另外四个1G,故决定借着这个机会调整一下。
本服务器上日志组为1-8,其中1-4为50M,5-8为1G,文件均在/data/test目录下。
故操作思路为删除原来的小日志文件,再新建。
一、查询当前重做日志信息
*注:只有status为inactive并且archived 为YES(如果开启归档的话)时方可删除日志组
查看当前日志在哪一个组及日志文件信息:
select * from v$log;
select * from v$logfile;
二、切换日志
把日志切换到保留的日志组,确保所有需要删除的日志组状态均为INACTIVE。
alter system switch logfile;
三、删除日志组
*每删除一个日志组前、删除完成后检查一下log和logfile的视图确保删除成功且系统没有刚好切换日志组到下一个即将删除的组上;
alter database drop logfile group 1;
alter database drop logfile group 2;
alter database drop logfile group 3;
alter database drop logfile group 4;
四、重新添加日志组
*同上,每添加完一个检查一下是否添加成功
alter database add logfile group 9 ('/data/test/redolog09.log') size 1024M;
alter database add logfile group 10 ('/data/test/redolog10.log') size 1024M;
alter database add logfile group 11 ('/data/test/redolog11.log') size 1024M;
alter database add logfile group 12 ('/data/test/redolog12.log') size 1024M;
五、检查
再次运行:
alter system switch logfile;
将每个新添加的日志文件全部切换一遍,检查是否正常
总结
生产环境每操作一步都必须仔细检查,防止中间出现什么未知的问题。