>데이터 베이스 >MySQL 튜토리얼 >Oracle 入门之管理online redolog

Oracle 入门之管理online redolog

WBOY
WBOY원래의
2016-06-07 16:58:03847검색

Oracle的主要文件类型有三种,分别是控制文件,数据文件和日志文件;日志文件记录了对数据库的所有操作记录,提供了一个恢复机制

Oracle的主要文件类型有三种,分别是控制文件,数据文件和日志文件;日志文件记录了对数据库的所有操作记录,提供了一个恢复机制,oracle将数据写入数据文件之前,需要将修改过的内容写入redo日志文件,oracle推荐最少存在两个日志文件组,每个组中存在两个或更多的成员文件;LGWR进程根据日志组循环写,日志组的中的文件成员大小是一致的,并分配(LSN)log sequence number;当写满一个文件组的时候,Oracle会触发一个log switch切换到另一个日志组,将LSN号码加一,同时引发check point,,DBWR进程将修改过的数据写入磁盘上的数据文件中;

触发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.

SQL> select group#,thread#,sequence#,archived,status from v$log;    //可以看到当前active的日志组已经切换为2

    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

linux

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.