Oracle 学习之--Buffer Cache深入解析

本文涉及的产品
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介:

wKioL1PPVxOwPpjTAAL_LJN_ltc591.jpg

服务器进程和数据库缓冲区高速缓存:

   当服务器需要块时,需要按系列步骤读取块:

1、首先,服务器使用散列函数检查是否可以从缓冲区高速缓存中获得所需要的块。如果找到缓冲区,则将它移动到LRU列表中远离LRU末尾的另一端。这是逻辑读取,因为没有发生实际的I/O。如果在缓冲区高速缓存中找不到缓冲区,则服务器进程(Server)必须从数据文件中读取。

2、对数据文件进行读取之前,服务器进程将搜索LRU列表,以获得空闲的缓冲区。所有被服务器进程修改的缓冲区都放在检查点队列中。以便在检查点期间写出到磁盘。

3、如果检查点的大小超出了其阈值,服务器会发出信号通知DBWn刷新数据缓冲区高速缓存中的脏数据缓冲区。如果服务器在搜索阈值内找不到空闲的缓冲区,将发出信号通知DBWn进行刷新。

4、找到空闲缓冲区后,服务器将块从数据文件中读入到数据库缓冲区高速缓存中过的空闲缓冲区。Oracle服务器进程把缓冲区移动到LRU列表中远离LRU末尾的位置。

5、如果对块的读取不一致,服务器会由当前块和回滚段重建块的早期版本。

wKiom1PPWf3QxLHpAAKvpcChYLg906.jpg

DBWn进程和数据库缓冲区高速缓存:

    DBWn将脏数据块写入数据文件,以确保服务器有空闲块,并以此来管理缓冲区高速缓存。DBWn响应实例中不同的事件:

1、Checkpoint Queue Exceeds Threshold:如果服务器进程发现检查点队列的大小超出其阈值,就会发出信号通知DBWn进行刷新。DBWn则将检查点队列中的缓冲区全部写出。

当检查点队列25%满就会触发DBWn的写操作:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
SQL> desc x$kvit          
  Name                                      Null?    Type
  ----------------------------------------- -------- ----------------------------
  ADDR                                               RAW( 8 )
  INDX                                               NUMBER
  INST_ID                                            NUMBER
  KVITVAL                                            NUMBER
  KVITTAG                                            VARCHAR2( 64 )
  KVITDSC                                            VARCHAR2( 64 )
SQL> col KVITTAG  for  a20
SQL> col KVITDSC  for  a50
SQL> set linesize  120
SQL> select KVITTAG,KVITVAL,KVITDSC,INST_ID  from  x$kvit  where  KVITTAG= 'kcbldq' ;
KVITTAG                 KVITVAL KVITDSC                                               INST_ID
-------------------- ---------- -------------------------------------------------- ------
kcbldq                        25  large dirty queue  if  kcbclw reaches  this              1

2、Search Threshold Exceeded:如果在搜索阈值范围内,服务器进程在LRU列表中找不到空闲缓存区,就会发出信号通知DBWn刷新检查点队列。DBWn则直接将检查点队列中的脏数据缓冲区全部写出。


1
2
3
4
SQL> select KVITTAG,KVITVAL,KVITDSC,INST_ID  from  x$kvit  where  KVITTAG= 'kcbfsp' ;
KVITTAG                 KVITVAL KVITDSC                                             INST_ID
-------------------- ---------- -------------------------------------------------- ------
kcbfsp                        40  Max percentage of LRU list foreground can scan  for       1

3、LGWR Singals a Checkpoint:当LGWR发出信号,指示检查点已经发生时,DBWn将脏数据缓冲区从检查点写入到磁盘上。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
SQL> select *  from  v$log;
     GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS           FIRST_CHANGE# FIRST_TIM
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- ---------
          5           1         952    10485760           2  YES INACTIVE                1360633  23 -JUL -14
          6           1         953    10485760           2  NO  CURRENT                 1360669  23 -JUL -14
SQL> alter system switch logfile;
System altered.
SQL> alter system switch logfile;
System altered.
SQL> select *  from  v$log;
     GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS           FIRST_CHANGE# FIRST_TIM
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- ---------
          5           1         954    10485760           2  YES INACTIVE                1360952  23 -JUL -14
          6           1         955    10485760           2  NO  CURRENT                 1360962  23 -JUL -14
日志:
Completed checkpoint up to RBA [ 0x3b9. 2.10 ], SCN:  1360669
Wed Jul  23  15 : 08 : 08  2014
Beginning log switch checkpoint up to RBA [ 0x3ba. 2.10 ], SCN:  1360952
Thread  1  advanced to log sequence  954
   Current log#  5  seq#  954  mem#  0 : +DG1/prod/onlinelog/group_5 .263.848858213
   Current log#  5  seq#  954  mem#  1 : +RCY1/prod/onlinelog/group_5 .256.848858217
Wed Jul  23  15 : 08 : 25  2014
Thread  1  cannot allocate  new  log, sequence  955
Checkpoint  not  complete
   Current log#  5  seq#  954  mem#  0 : +DG1/prod/onlinelog/group_5 .263.848858213
   Current log#  5  seq#  954  mem#  1 : +RCY1/prod/onlinelog/group_5 .256.848858217
Wed Jul  23  15 : 08 : 33  2014
Completed checkpoint up to RBA [ 0x3ba. 2.10 ], SCN:  1360952
Wed Jul  23  15 : 08 : 34  2014
Beginning log switch checkpoint up to RBA [ 0x3bb. 2.10 ], SCN:  1360962
Thread  1  advanced to log sequence  955
   Current log#  6  seq#  955  mem#  0 : +DG1/prod/onlinelog/group_6 .264.848858253
   Current log#  6  seq#  955  mem#  1 : +RCY1/prod/onlinelog/group_6 .257.848858259
Wed Jul  23  15 : 08 : 36  2014
Completed checkpoint up to RBA [ 0x3bb. 2.10 ], SCN:  1360962

4、Alter Tablespace offline Temporary or Alter Tablespace Begin Backup:如果表空间被临时脱机更改,或者启动了他的联机备份,则DBWn会将表空间的脏数据缓冲区从检查点队列写出到磁盘上。

5、Drop Object:删除某个对象后,DBWn会首先将该对象脏数据缓冲区刷新到磁盘上。

6、Clean Shutdown:(正常、立即或事务处理)










本文转自 客居天涯 51CTO博客,原文链接:http://blog.51cto.com/tiany/1445105,如需转载请自行联系原作者
目录
相关文章
|
8月前
|
XML 监控 网络协议
云深处绝影四足机器人协议学习解析
本文详细介绍并解析了云深处绝影X20四足机器人的通信协议,包括TCP服务端端口号、基于Service的请求/响应通信机制、通信帧结构、消息类型、常见的通信示例如获取状态和导航请求,以及运动控制的参数和命令。文中还提出了对协议中某些未明确说明或可能存在的问题的疑惑。
141 0
云深处绝影四足机器人协议学习解析
|
1月前
|
域名解析 存储 缓存
深入学习 DNS 域名解析
在平时工作中相信大家都离不开 DNS 解析,因为 DNS 解析是互联网访问的第一步,无论是使用笔记本浏览器访问网络还是打开手机APP的时候,访问网络资源的第一步必然要经过DNS解析流程。
|
5月前
|
负载均衡 Oracle 网络协议
Oracle中TAF与SCANIP全面解析
通过本文的解析,读者可以清晰地理解Oracle中TAF与SCAN IP的概念、工作原理及其在实际应用中的优势和局限性。TAF通过自动故障转移提升了会话的高可用性,而SCAN则通过简化客户端连接和负载均衡提升了集群的可管理性和扩展性。这两种技术在现代企业数据库架构中扮演着重要角色,能够显著提高系统的稳定性和可用性。
239 6
|
6月前
|
Oracle 关系型数据库 网络安全
Oracle 19c 安装教程学习
Oracle 19c 安装教程学习
323 2
|
8月前
|
安全 Java 数据库连接
后端框架的学习----mybatis框架(3、配置解析)
这篇文章详细介绍了MyBatis框架的核心配置文件解析,包括环境配置、属性配置、类型别名设置、映射器注册以及SqlSessionFactory和SqlSession的生命周期和作用域管理。
后端框架的学习----mybatis框架(3、配置解析)
|
8月前
|
人工智能 算法
AI 0基础学习,数学名词解析
AI 0基础学习,数学名词解析
60 2
|
8月前
|
监控 Oracle 关系型数据库
"深度剖析:Oracle SGA大小调整策略——从组件解析到动态优化,打造高效数据库性能"
【8月更文挑战第9天】在Oracle数据库性能优化中,系统全局区(SGA)的大小调整至关重要。SGA作为一组共享内存区域,直接影响数据库处理能力和响应速度。本文通过问答形式介绍SGA调整策略:包括SGA的组成(如数据缓冲区、共享池等),如何根据负载与物理内存确定初始大小,手动调整SGA的方法(如使用`ALTER SYSTEM`命令),以及利用自动内存管理(AMM)特性实现智能调整。调整过程中需注意监控与测试,确保稳定性和性能。
574 2
|
9月前
|
网络协议 程序员 定位技术
学习网络的第一步:全面解析OSI与TCP/IP模型
**网络基础知识概览:** 探索网络通信的关键模型——OSI七层模型和TCP/IP五层模型。OSI模型(物理、数据链路、网络、传输、会话、表示、应用层)提供理论框架,而TCP/IP模型(物理、数据链路、网络、传输、应用层)更为实际,合并了会话、表示和应用层。两者帮助理解数据在网络中的传输过程,为网络设计和管理提供理论支持。了解这些模型,如同在复杂的网络世界中持有了地图。
160 2
|
15天前
|
Oracle 安全 关系型数据库
【Oracle】使用Navicat Premium连接Oracle数据库两种方法
以上就是两种使用Navicat Premium连接Oracle数据库的方法介绍,希望对你有所帮助!
166 28

推荐镜像

更多
下一篇
oss创建bucket