Oracle内存管理,锁机制以及rac原理学习

一、Oracle体系架构概览

Oracle数据库是一个高度复杂的多进程、多线程系统,其架构设计围绕 高性能高可用性数据一致性 展开,核心模块包括内存结构、进程管理、存储机制和分布式组件。本文将重点剖析内存管理、锁机制与RAC(Real Application Clusters)原理。


二、内存管理:SGA与PGA的协同

1. 内存结构总览

Oracle内存分为 共享内存(SGA)私有内存(PGA) 两部分,前者由所有进程共享,后者为每个会话私有。

SGA(System Global Area)
  • Database Buffer Cache:缓存数据块,减少物理I/O。
    • 通过LRU算法管理块淘汰,支持KEEP池与RECYCLE池分级缓存。
  • Shared Pool
    • Library Cache:缓存SQL解析树与执行计划(通过哈希值匹配)。
    • Data Dictionary Cache:存储表结构、权限等元数据。
  • Redo Log Buffer:临时存储重做日志条目,由LGWR进程写入联机重做日志文件。
  • Large Pool:为备份恢复、并行查询分配大块内存。
  • Java Pool:支持Java存储过程执行。
  • Streams Pool:用于数据复制与流处理。
PGA(Program Global Area)
  • 排序区(Sort Area):处理ORDER BYGROUP BY等排序操作。
  • 会话内存:存储绑定变量、游标状态等会话私有数据。
  • 哈希区:用于哈希连接(Hash Join)操作。

2. 内存管理机制

  • 自动内存管理(AMM):通过MEMORY_TARGET参数统一管理SGA和PGA,动态调整各组件大小。
  • 手动配置:通过SGA_TARGETPGA_AGGREGATE_TARGET分别设置SGA与PGA上限。

示例配置


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Debug_TheWorld

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值