Oracle 入门之管理online redolog

2014-11-24 17:54:00 · 作者: · 浏览: 0

触发lgwr的5个条件:


在一个事务提交之后


每三秒钟


当redo buffer cache三分之一满后


当redo buffer cache里面修改过的数据容量达到1M后


在dbwn进程将修改过的数据写入磁盘文件之前


SQL> select group#,thread#,sequence#,archived,status from v$log; //查看日志组总数和当前active状态的日志组,当前为1


GROUP# THREAD# SEQUENCE# ARC STATUS
---------- ---------- ---------- --- ----------------
1 1 46 NO CURRENT
2 1 44 YES INACTIVE
3 1 45 YES INACTIVE



SQL> alter system switch logfile; //手动触发一次日志切换


System altered.


GROUP# THREAD# SEQUENCE# ARC STATUS
---------- ---------- ---------- --- ----------------
1 1 46 YES ACTIVE
2 1 47 NO CURRENT
3 1 45 YES INACTIVE



如果LGWR进程工作很频繁,日志组很快就会被写满,这个时候就需要DBWN进程将修改过的数据写到数据文件中,否则Oracle将无法正常工作,fast_start_mttr_target参数定义了DBWN进程在多少时间间隔内必须将redolog中的数据写入数据文件,单位为秒,这是个影响数据库性能的关键参数;


SQL> show parameter fast_start;


NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
fast_start_io_target integer 0
fast_start_mttr_target integer 0
fast_start_parallel_rollback string LOW
SQL> alter system set fast_start_mttr_target=600 scope=both; //修改这个参数为600秒


System altered.


SQL> show parameter fast_start_mttr_target;


NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
fast_start_mttr_target integer 600