读书笔记:Oracle内存管理:数据库的“智能内存管家“

我们的文章会在微信公众号IT民工的龙马人生博客网站( www.htz.pw )同步更新 ,欢迎关注收藏,也欢迎大家转载,但是请在文章开始地方标注文章出处,谢谢!
由于博客中有大量代码,通过页面浏览效果更佳。

本文为个人学习《Expert Oracle Database Architecture Techniques and Solutions for High Performance and Productivity(第四版本》一书过程中的笔记与理解分享,仅用于学习与交流,部分内容参考原书观点并结合>实际经验进行整理。若涉及版权问题,请联系删除或沟通处理。也请大家支持购买原版书籍。

Oracle内存管理:数据库的"智能内存管家"

如果把Oracle数据库比作一个工厂,那么内存管理就像是工厂的"生产调度中心",负责合理分配各种资源。今天我们就来聊聊Oracle的SGA(系统全局区)内存管理,这个数据库的"智能内存管家"。

三种管理模式:从全自动到手动

1. 全自动模式(AMM)——“智能管家”

就像现代智能家居系统:

  • 只需设置一个总内存量(MEMORY_TARGET)
  • 数据库自动分配SGA和PGA内存
  • 白天处理交易时多分给SGA,晚上跑报表时多给PGA

但要注意:在Linux系统上,如果启用了HugePages(大内存页),这个模式就会像智能家居遇到老式电器一样不兼容。

2. 半自动模式(ASMM)——“贴心助理”

这是目前最受欢迎的方式,就像有个贴心助理:

  • 设置SGA总内存(SGA_TARGET)
  • 自动管理6大核心区域:
    • 缓冲区(数据缓存区)
    • 共享池(SQL和PL/SQL缓存)
    • 大池(大数据操作)
    • Java池(Java程序)
    • 流池(数据复制)
    • 数据传输缓存

配置示例

-- 先关闭全自动模式
ALTER SYSTEM SET memory_target=0 SCOPE=spfile;
-- 设置SGA内存为16G
ALTER SYSTEM SET sga_target=16G SCOPE=spfile;
3. 手动模式——“老工匠”

现在已经很少用了,就像完全靠经验的老工匠:

  • 需要手动设置每个内存区大小
  • 调优难度大,容易出错
  • 除非用很老的Oracle版本,否则不建议

内存管理的"学习记忆"功能

Oracle有个很智能的功能——它会记住最佳配置:

  1. 运行时不断优化各区域大小
  2. 关机时把优化结果保存起来
  3. 下次启动直接使用优化配置

查看这些"记忆"的方法:

-- 导出当前配置
CREATE PFILE='/tmp/current_config.ora' FROM SPFILE;
-- 查看配置内容
!cat /tmp/current_config.ora

给DBA的实用建议

根据多年运维经验,总结出这些"黄金法则":

  1. 大型数据库/Linux环境

    • 首选ASMM模式
    • 配合自动PGA管理
    • 记得关闭AMM
  2. 小型数据库/其他系统

    • 可以使用AMM全自动
    • 设置总内存即可
    • 让Oracle自己分配
  3. 多租户环境(PDB)

    • SGA_TARGET设置的是上限值
    • 不设置就能用容器数据库的全部资源

重要提示:就像工厂不能随意调整生产线,修改这些参数后通常需要重启数据库才能生效!

结语

好的内存管理就像优秀的工厂调度:

  • 太死板会影响效率
  • 太随意会导致混乱
  • 找到平衡点最关键

选择适合你数据库的"智能管家",让Oracle自动优化内存配置,你的数据库就能像高效运转的现代化工厂一样,稳定又高效地工作!

------------------作者介绍-----------------------
姓名:黄廷忠
现就职:Oracle中国高级服务团队
曾就职:OceanBase、云和恩墨、东方龙马等
电话、微信、QQ:18081072613
个人博客: (http://www.htz.pw)
CSDN地址: (https://blog.csdn.net/wwwhtzpw)
博客园地址: (https://www.cnblogs.com/www-htz-pw)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值