REDO日志管理
序:ORACLE 11g中 redo日志默认为3个日志组,一个日志组对应一个redo文件默认大小为50M。
但是在OLTP数据中,因为insert,update,delete语句等产生大量的redo,使redo切换比较频繁,
当3个redo文件切换循环下来,触发的checkpoint没有完成,要切换的redo日志文件状态为ACTIVE,
alert.log文件提示Checkpoint not complete,以及Thread 1 cannot allocate new log, sequence 46591等信息。
由于dbw0写比较慢,不可避免要遭遇此尴尬,为了避免此种情况发生需加大redo日志文件的大小
1 切换日志
ALTER SYSTEM SWITCH LOGFILE; 切换
ALTER SYSTEM CHECKPOINT; 触发检查点
2 新建日志组
ALTER DATABASE ADD LOGFILE GROUP 1 ('/Oracle/dbdata/lnd/redo01_01.log','/Oracle/dbdata/lnd/redo01_02.log') SIZE 200M ;
3 删除日志组
alter database drop logfile group 1;
alter database drop logfile group 2;
rm -rf /Oracle/dbdata/lnd/redo01.log
rm -rf /Oracle/dbdata/lnd/redo02.log
思路:
一般我们做日志扩充的思路如下:
新建日志组(临时)-> 切换到临时日志组 -> 删除原来日志组以及日志文件 ->
新建日志组以及数据文件 -> 切换到新建日志组 -> 删除临时用日志组以及日志文件
备:redo切换频率查询。
select b.SEQUENCE#, b.FIRST_TIME,
a.SEQUENCE#, a.FIRST_TIME,
round(((a.FIRST_TIME-b.FIRST_TIME)*24)*60,2)
from v$log_history a, v$log_history b
where a.SEQUENCE# = b.SEQUENCE#+1
and b.THREAD#=1
order by a.SEQUENCE# desc;
select sequence#,first_time,nexttime,round(((first_time-nexttime)*24)*60,2) diff
from (
select sequence#,first_time, lag(first_time) over(order by sequence#) nexttime
from v$log_history
where thread#=1
) order by sequence# desc;
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/24070945/viewspace-691797/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/24070945/viewspace-691797/