查看oracle监听队列,检查点队列简单总结

1、Oracle日志原理

REDO流(重做日志流)

RBA (重做字节地址由4部分组成:日志线程号、日志序列号、日志文件块编号和日志文件字节偏移量,长度为10个字节.例如Thread:1 RBA:0x000014.00000003.0010)

ckpt equeue :1.每3秒会触发检查脏块,2.每3秒检查ckpt equeue头的RBA,把检查队列头RBA写到控制文件)

作用:(1).统计脏数据块

(2).RBA按顺序排序,刷数据到磁盘就按这顺序

(3).每个RBA除指向下一个RBA,还指向脏数据块地址

2、检查点队列(检查点只是一个数据库事件,它存在的根本意义在于减少崩溃恢复时间),在BH中有一个ckptq项,双向链表.

(1)只有脏块才会在检查点队列中,非脏块的ckptq为空。

(2)当块首次被更改时,块会立即被加进检查点队列。 如果检查点队列中的脏块再次被修改,并不会改变其在

检查点队列中的位置。

(3)检查点队列中脏块的排列顺序:根据第2点,所有脏块按照首次被更改的时间的顺序排列。 更准确点说:按

照块的lrba排列。

3、什么是RBA?LRBA?HRBA?ON DISK RBA?

(1)RBA:就是重做块地址

(2)LRBA:第一次对此数据块修改对应的Redo Block Address的顺序排列

(3)HRBA:相对于LRBA,后面修改的RBA

(4)on disk rba:磁盘中重做日志文件的最后一条重做记录的rba,是最高的重做值。

4、参与检查点的进程主要包括lgwr、dbwn和ckpt,分为两大类:完全检查点和增量检查点

(1)完全检查点主要包括以下步骤:

①首先,在日志缓冲中确定当前的(也就是最新的)重做记录,提取其RBA与SCN作为检查点目标

②LGWR清空日志缓存,将重作记录写入在线日志

③DBWn进程将检查点目标(RBA与SCN)产生的及检查点目标之前产生的脏数据块,按RBA的顺序写入数据文件

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

(2)触发完全检查点的条件:

①执行shutdown immediate命令

②执行alter system checkpoint命令

③LGWR切换在线日志,不论是因为日志写满还是执行alter system switch logfile命令

④执行部分表空间维护命令:alter tablespace ...offline|online|begin backup|end backup|read only|read write

5、增量检查点并不会去更新数据文件头,而只是每3秒由CKPT进程去更新控制文件中的LRBA和SCN

(1)增量检查点主要包含以下步骤

①CKPT每3秒一次记录检查点位置的工作(更新控制文件)

②CKPT定期触发DBWR

(2)增量检查点的意义有以下两个:

①减少发生完全检查点时DBWn进程的工作负担

②提高实例恢复的速度

6、CHECKPOINT 优化

(1)从9I开始CHECKPOINT的优化大大简化了

设置FAST_START_MTTR_TARGET

较大的值:恢复时间较长

较小的值:增加IO负载

(2)10g 的CHECKPOINT的自动优化

fast_start_mttr_target设置为非零的值或者不设置

*********************************************************************************************************

show parameter mttr

alter system checkpoint;

alter system switch logfile;

select file#,checkpoint_change#,to_char(checkpoint_time,'yyyy-mm-dd hh24:mi:ss') cpt from v$datafile;

select file#,checkpoint_change#,to_char(checkpoint_time,'yyyy-mm-dd hh24:mi:ss') cpt from v$datafile_header;

select dbid,checkpoint_change# from v$database;

select group#,sequence#,status,first_change#,next_change# from v$log;

alter session set events 'immediate trace name controlf level 8';//CKPT每3秒写进控制文件的信息

grep "low cache rba" test_ora_22708.trc

/ *low cache rba:(0x51.bef8.0)[检查点位置] on disk rba:(0x51.bf36.0)[最后一条重做记录的rba] */

alter session set events 'immediate trace name buffers level 2'; //BH(脏块)上有CHPTQ和FILEQ,非脏块为NULL

grep ckptq test_ora_22468.trc |grep -v NULL

grep ckptq test_ora_22468.trc

/* ckptq: [0x60be41a8,0x60bf9d98] fileq: [0x60be41b8,0x60bf9da8]

ckptq: [NULL] fileq: [NULL] */

alter session set events 'immediate trace name file_hdrs level 10';//控件文件与数据文件头

/* DATA FILE #5 控制文件

V10 STYLE FILE HEADER: 数据文件头

status:0x4 root dba:0x00000000 chkpt cnt: 106 ctl cnt:105*/

**********本博客所有内容均为原创,如有转载请注明作者和出处!!!**********

Name:    guoyJoe

QQ:      252803295

Email:    oracledba_cn@hotmail.com

OCM:    http://education.oracle.com/education/otn/YGuo.HTM

_____________________________________________________________

加群验证问题:哪些SGA结构是必需的,哪些是可选的?否则拒绝申请!!!

DSI&Core Search(QQ群):127149411

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值