自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

还不算晕的专栏

目前仍热衷于ORACLE数据库。 欢迎指点、交流!

  • 博客(9)
  • 资源 (6)
  • 收藏
  • 关注

原创 buffer cache实验9-从buffer caceh中读取数据块解析-从逻辑读到物理读

就以上图为例,文字描述分析一下前台进程发出查询语句时获取所需数据块的过程:注:本文不涉及SQL语句的解析部分、客户端与服务器交互等,只涉及buffer cache。这里的物理读是非直接路径读、非大表全表扫描--此点最后会有介绍。如果发出的是更新语句,只是在buffer pin上所加的锁为X独占锁,其它步骤基本一致。本文的例子只读取了一个数据块。

2014-02-27 09:18:20 2285

原创 buffer cache实验8-free buffer waits-完成

服务器进程在扫描LRU主列时,将脏块移动到LRUW列。当扫描到一个阀值(10G/11G是40%- _db_block_max_scan_pct参数决定)时会停止扫描同时通知DBWR写脏块-写脏块完后的块重新挂载到辅助LRU列,就得到了空闲buffer。DBWR进程写脏块完成前,服务器进程等待空闲buffer时出现free buffer waits等待事件

2014-02-27 09:17:46 1780

原创 buffer cache实验7-buffer busy waits-完成

这个过程中可以发现和推断:比如进程A在BH上加buffer pin 独占锁时,此时CBC latch已经释放,在高并发环境下,此时如有进程B获取CBC latch,在hash chain上找到BH,准备加锁时,发现bh上已经加了独占锁,就发生了buffer busy waits要注意的是Buffer pin 上的共享锁不会阻塞独占锁,独占锁会阻塞独占锁--即当前读时,再有进程来当前读。独占锁也会阻塞共享锁--即当前读阻塞一致性读

2014-02-27 09:17:17 1923

原创 buffer cache实验6-latch:cache buffers lru chains

1.working set与Latch:cache buffers lru chain:每个working set都具有它自己的一组LRU和LRUW链表(LRU和LRUW链表总是成对出现的)。ORACLE为了提高buffer cache性能(大内存),使用了多个working set每个working set都由一个名为“Latch:cache buffers lru chain”的latch来保护,每一个lru latch对应一个working set。而每个被加载到buffer cache的bu

2014-02-26 21:01:35 2947 3

原创 buffer cache实验5-latch:cache buffers chain

1.CBC latch产生的原理:一次逻辑读时CBC latch锁及Buffer pin锁的获取和释放过程如下:1.加Latch X2.进入hash chain,在相应的BH上加Buffer pin S (0-->1)3.释放Latch X4.进行逻辑读--也就是通过BH中的buffer adderss找到数据块在内存中真实位置 ---假如读了1MS5.加Latch X6.释放Buffer pin S (1-->0) 0:没锁 1:共享锁 2:独占锁7.释放Latch X

2014-02-26 18:49:57 1907

原创 buffer cache实验4-ckptq的工作机制与增量检查点及fast_start_mttr_target参数

1.检查点概念--chkpoint检查点是一个数据库事件,存在的意义在于减少崩溃恢复crash recovery时间.检查点事件由后台进程CKPT触发,当检查点发生时,CKPT通知DBWR进程将脏数据库dirtybuffer写出到数据文件上,更新数据文件头及控制文件上的检查点信息。数据文件头的SCN是CHECKPOINT SCN.

2014-02-26 18:43:35 2372

原创 buffer cache实验3-lru和lruw链表

1.Buffer cache中的LRU链表概念:oracle在hash chain中未搜索到所需要的buffer时,ORACEL 服务进程会发出I/O调用,到磁盘的数据文件中读取相应数据块--除了直接路径读外,此时会将数据块的内容拷贝到buffer cache 内存中--同时会构造一个buffer header。在将数据块拷贝到buffer cache中时,假如buffer cache是空的,直接拿一个空的内存数据块来用即可。但是如果buffer cache中的内存数据块全都被用掉了,没有空的内存数据

2014-02-26 14:45:46 2517

原创 buffer cache实验2-详解Buffer Header--DUMP buffer结合X$BH视图各字段

buffer header:每一个数据块在被读入buffer cache时,都会先在buffer cache中构造一个buffer header,buffer header与数据块一一对应。buffer header包含的主要信息有:1) 该数据块在buffer cache中实际的内存地址。就是上图中的虚线箭头所表示的意思。2) 该数据块的类型,包括data、segment header、undo header、undo block等等。3) 该buffer header所在的hash chain,是

2014-02-18 11:52:17 2078 2

原创 buffer cache实验1-内存结构图解

1.为什么要使用buffer cache???buffer cache就是一块含有许多数据块的内存区域,这些数据块主要都是数据文件里的数据块内容的拷贝。从buffer cache中读取一个数据块一般需要100ns左右,从一般的存储硬盘中读取一个数据块需要10ms;所以大概算一下,从内存中读取数据块比从硬盘中快近十万倍。故oracle在读取数据块时,先在buffer cache中查找,如

2014-02-17 21:19:19 3635

非IMU模式下一条update语句产生REDO RECORD条数的探究--日志打包

资源是http://blog.csdn.net/haibusuanyun/article/details/17953829 这篇博客的附件,详细的DUMP出来的TRACE文件。

2014-01-07

实例恢复相关TRACE文件

http://write.blog.csdn.net/postedit/17082235 文章中实验的一些数据

2013-12-02

LINUX 64位ORACLE 11G安装BBED所需文件

LINUX 64位ORACLE 11G安装BBED所需文件

2013-11-21

LINUX 32位ORACLE 11G安装BBED所需文件

LINUX 32位ORACLE 11G安装BBED所需文件

2013-11-21

VBOX+OEL5.7+ORACLE11G+RAC安装

ORACLE 11G RAC,在VBOX虚拟机下进行安装,多张图片,内容很详细,非常适合新手。

2013-09-11

XP 超级终端

XP 超级终端 绿色的,直接打开就可以使用了,

2012-12-11

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除