logfile

来源:互联网 发布:工业以太网知乎 编辑:程序博客网 时间:2024/05/16 12:39
该语句可以查看每天产生日志量,估计我们的应用日志量,可以估计归档时间。
SQL> select to_char(FIRST_TIME,'yyyy/mm/dd') day,count(*) from v$log_history group by to_char(FIRST_TIME,'yyyy/mm/dd');

DAY          COUNT(*)
---------- ----------
2015/01/27          2
2015/02/13          1
2015/03/03          1
2015/03/28          1
2015/04/05          1
2015/04/07          2
2015/04/29          1

SQL> select group#,sequence#,bytes,members,status from v$log;

    GROUP#  SEQUENCE#      BYTES    MEMBERS STATUS
---------- ---------- ---------- ---------- ----------------
         1         13   52428800          1 CURRENT
         2         11   52428800          1 INACTIVE
         3         12   52428800          1 INACTIVE


自动切换:日志写满会写下一组
手工切换:alter system switch logfile;

日志组的切换要产生检查点。
检查点有增量检查、完全检查两种:
完全检查:
1.一致性shutdown数据库的时候
2.alter system checkpoint;
结果为:
1.所有的脏数据都写入数据文件
2.改写文件的头

完全检查点主要包括以下步骤:
   ①首先,在日志缓冲中确定当前的(也就是最新的)重做记录,提取其RBA与SCN作为检查点目标
   ②LGWR清空日志缓存,将重作记录写入在线日志
   ③DBWn进程将检查点目标(RBA与SCN)产生的及检查点目标之前产生的脏数据块,按RBA的顺序写入数据文件

   ④最后,CKPT进程将检查点目标(RBA与SCN)写入数据文件的头部和控制文件

触发完全检查点的条件:
    ①执行shutdown immediate命令
    ②执行alter system checkpoint命令
    ③执行部分表空间维护命令:alter tablespace ...offline|online|begin backup|end backup|read only|read write

除了完全检查点以为全部为增量检查,增量检查是查找检查点列表,将某一个时间点做标记,该是几点前的脏块写入到数据文件
,增量检查不一定马上执行,根据我们的脏块多少来决定。这就是检查点滞后的情况。因为每次完全的checkpoint都需要把
buffer cache所有的脏块都写入到数据文件中,这样就是产生一个很大的IO消耗,频繁的完全checkpoint操作很对系统的性能有
很大的影响,为此 Oracle引入的增量checkpoint的概念,buffer cache中的脏块将会按照BCQ队列的顺序持续不断的被写入到磁
盘当中,同时CKPT进程将会每3秒中检查DBWn的写入进度并将相应的RBA信息记录到控制文件中。有了增量checkpoint之后在进行
实例恢复的时候就不需要再从崩溃前的那个完全checkpoint开始应用重做日志了,只需要从控制文件中记录的RBA开始进行恢复操
作,这样能节省恢复的时间

* 恢复需求设定 (FAST_START_IO_TARGET/FAST_START_MTTR_TARGET)
     * LOG_checkpoint_INTERVAL参数值
     * LOG_checkpoint_TIMEOUT参数值
     * 最小的日志文件大小
     * buffer cache中的脏块的数量

增量checkpoint的特点
   * 增量checkpoint是一个持续活动的checkpoint。
     * 没有checkpoint RBA,因为这个checkpoint是一直都在进行的,所以不存在normal checkpoint里面涉及的checkpoint 

RBA的概念。
     * checkpoint advanced in memory only
     * 增量checkpoint所完成的RBA信息被记录在控制文件中。
     * 增量checkpoint可以减少实例恢复时间。

该参数表示是否将检查点的信息写入alert日志
SQL> show parameter log_checkpoints_to_alert;


NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_checkpoints_to_alert             boolean     FALSE
0 0
原创粉丝点击