Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Oracle内存管理技术

Oracle内存管理技术

作者头像
Alfred Zhao
发布于 2019-05-24 12:21:02
发布于 2019-05-24 12:21:02
1K00
代码可运行
举报
运行总次数:0
代码可运行
  • 1.Oracle内存管理技术
  • 2.配置自动内存管理(AMM)
  • 3.监视自动内存管理(AMM)
  • 4.配置自动共享内存管理(ASMM)
  • 5.配置自动PGA内存管理
  • Reference

1.Oracle内存管理技术

  • 11g 新特性: AMM(Automatic Memory Management)
  • 10g 新特性: ASMM(Automatic Shared Memory Management)

Tips:

  • 即便启动了AMM,仍然可以将相关的内存初始化参数设置为下限值,防止Oracle自动调整为低值或零值。
  • Oracle11g 建议使用AMM配置新数据库,然后监视总体内存分配的效果,后续可以将数据库切换到ASMM,以便更精准的控制SGA的总大小。

2.配置自动内存管理(AMM)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
-- memory_max_target是静态参数,是memory_target的上限,修改需要重启库
SQL> alter system set memory_max_target = 3G scope=spfile;
SQL> shutdown immediate
SQL> startup
-- 配置AMM,memory_target值
SQL> alter system set memory_target = 2G;
-- 为更好的发挥AMM调整作用,设置下面参数为零值
SQL> alter system set sga_target = 0;
SQL> alter system set pga_aggregate_target = 0;

3.监视自动内存管理(AMM)

3.1 通过EM查看

EM主页:服务器(Server) -> 数据库配置(Database Configuration) -> 内存指导(Memory Advisors)

3.2 直接查询动态性能视图

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SQL> select * from v$memory_target_advice order by memory_size;

MEMORY_SIZE MEMORY_SIZE_FACTOR ESTD_DB_TIME ESTD_DB_TIME_FACTOR    VERSION
----------- ------------------ ------------ ------------------- ----------
        768                .25          402                   1          1
       1536                 .5          402                   1          1
       2304                .75          402                   1          1
       3072                  1          402                   1          1
       3840               1.25          402                   1          1
       4608                1.5          402                   1          1
       5376               1.75          402                   1          1
       6144                  2          402                   1          1

8 rows selected.

4.配置自动共享内存管理(ASMM)

4.1 从手动内存管理切换到ASMM

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
-- 从手动内存管理切换到ASMM
alter system set sga_target = 1G;
-- 为更好的发挥ASMM作用,设置下面参数为零值
SQL> alter system set shared_pool_size = 0;
SQL> alter system set db_cache_size = 0;
SQL> alter system set java_pool_size = 0;
SQL> alter system set large_pool_size = 0;
SQL> alter system set streams_pool_size = 0;

4.2 从AMM切换到ASMM

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
--AMM切换到ASMM,会根据当前SGA内存使用情况自动设置SGA_TARGET
alter system set memory_target = 0;

4.3 禁用ASMM

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
--下面命令使得所有初始化参数被设置为当前自动调整的值,禁用ASMM
alter system set sga_target = 0;

4.4 ASMM需要手工调整下面的参数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ASMM只可以自动调整4.1中设置为零值的5个参数大小,而剩下的需要手工调整
-- DB_KEEP_CACHE_SIZE
-- DB_RECYCLE_CACHE_SIZE
-- DB_nK_CACHE_SIZE
-- LOG_BUFFER
手工设置这些参数值,会从SGA_TRAGET指定的内存中减去这些内存量。

5.配置自动PGA内存管理

PGA_AGGREGATE_TARGET的值可以由AMM推出来,也可以明确设置。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
--PGA设置起点
Oracle单实例可用内存设置为占机器物理内存的80%
OLTP(在线事务处理):PGA占可用内存的20%
DSS(查询使用大量内存):PGA占可用内存的50%~70%
--查询pga相关动态视图
select * from v$pgastat;
select PGA_USED_MEM, PGA_ALLOC_MEM, PGA_FREEABLE_MEM, PGA_MAX_MEM from v$process;

更多PGA相关可参考:《相克军_Oracle体系_随堂笔记007-PGA

Reference

  • OCP 认证考试指南 (1Z0-053)[M]. 清华大学出版社, 2010.
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2015-12-07 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
oracle amm和asmm,AMM与ASMM
1.从oracle 11.1开始oracle提供了通过MEMORY_TARGET参数实现自动SGA和PGA自动管理的功能,从此版本开始不再需要明确设置SGA_TARGET及PGA_AGGREGATE_TARGET,这个被支持在linux、windows、solaris、hpux、aix。
全栈程序员站长
2022/06/26
8750
Oracle自动内存管理AMM
AMM(Automatic Memory Management)自动内存管理,分配一整块内存区域,Oracle数据库自动分配管理SGA和PGA的内存。具体通过设置两个参数MEMORY_MAX_TARGET和MEMORY_TARGET达到需求效果。
星哥玩云
2022/08/18
7880
【OCP最新题库解析(052)--题35】In your database: SGA_TARGET=270M
The MEMORY_TARGET and MEMORY_MAX_TARGET parameters are currently not configured.
AiDBA宝典
2019/09/29
5640
记一次修改sga大小之后出现的一系列报错
结果出错了。经过查找资料,发现11g新增了个参数MEMORY_TARGET,其大小等于PGA+SGA,当sga的大小大于MEMORY_TARGET就会报如上错误。
全栈程序员站长
2021/07/08
6140
每日一练丨性能优化-实例优化(三)
墨墨导读:本文出自墨天轮“每日一练”专栏,此专栏已连更84天,欢迎关注https://www.modb.pro/topic/26446(复制到浏览器中打开或者点击“阅读原文”直达),本文主要描述实例优化中内存的管理。
数据和云
2020/12/08
5670
每日一练丨性能优化-实例优化(三)
【OCP最新题库解析(052)--题12】 Your database is using AMM
该系列专题为2018年4月OCP-052考题变革后的最新题库。题库为小麦苗解答,若解答有不对之处,可留言,也可联系小麦苗进行修改。
AiDBA宝典
2022/02/22
3000
【DB笔试面试528】在Oracle中,如何解决ORA-04030和ORA-04031错误?
ORA-04030报错形如“ORA-04030 'out of process memory when trying to allocate %s bytes (%s,%s)'”,该错误意味着Oracle Server进程无法从操作系统分配更多内存。该内存由PGA组成,其内容取决于服务器配置。对于专用的服务器进程,内存包含堆栈以及用于保存用户会话数据、游标信息和排序区的UGA。在多线程服务器(共享服务器)中,UGA被分配在SGA中,所以在这种配置下UGA不是造成ORA-04030错误的原因。因此,ORA-04030表示进程需要更多内存(堆栈、UGA或PGA)来执行其任务。
AiDBA宝典
2019/09/29
2.2K0
Oracle ASMM和AMM
ASMM(Automatic Shared Memory Management,自动共享内存管理)是Oracle 10g引入的概念。通过使用ASMM,就不需要手工设置相关内存组件的大小,而只为SGA设置一个总的大小,
全栈程序员站长
2022/06/26
5040
Oracle ASMM和AMM
AMM和ASMM切换
现在的Oracle正在往智能化方向发展。如果我们现在找一些8i/9i时代的Oracle书籍,怎么样配置合适的数据库各内存池大小是非常重要的话题。但是进入10g之后,自动内存池调节成为一个重要Oracle特性。
全栈程序员站长
2022/09/02
4740
oracle amm改成asmm,记AMM转变为ASMM的记录「建议收藏」
SQL*Plus: Release 11.2.0.4.0 Production on 星期五 1月 22 14:07:32 2021
全栈程序员站长
2022/06/26
3810
oracle amm和asmm,AMM和ASMM理解 | 学步园
oracle11g新出参数 MEMORY_MAX_TARGET 和 MEMORY_TARGET 进行自动管理PGA 和SGA 称之为 自动化内存管理(Automatic MemoryManagement,AMM)
全栈程序员站长
2022/09/05
7460
Oracle 启动ASMM管理
1.ASMM的作用 从Oracle 10g开始,Oracle提供了自动SGA的管理(简称ASMM,Automatic SharedMemory Management)新特性。所谓ASMM,就是指我们不再需要手工设置shared pool、buffer pool等若干内存池的大小,而是为 SGA 设置一个总的大小尺寸即可。Oracle数据库会根据系统负载变化,自动调整各组件的大小,从而使得内存始终能够流向最需要它的地方。
全栈程序员站长
2022/06/26
1.2K0
Oracle 启动ASMM管理
由SGA组件内存移动导致前台业务超时问题处理过程
墨墨导读:Oracle 11g推出了自动内存管理(AMM)新特性,该特性引入后,虽然减轻了DBA手动设置共享内存的负担,但是会存在不稳定的情况,经常出现在shared pool和buffer cache之间发生频繁shrink/grow操作的现象,特别是shared pool的shrink操作,在一些高并发环境下,可能引发数据库性能问题的风险,极端情况下,会导致数据库性能短时间内极速下降,在生产环境建议使用ASMM,因为从以往的经验来看,ASMM的稳定性高于AMM。
数据和云
2021/02/08
4420
【每日一练 085】性能优化-实例优化(四)
墨墨导读:本文出自墨天轮“每日一练”专栏,此专栏已连更84天,欢迎关注https://www.modb.pro/topic/26446(复制到浏览器中打开或者点击“阅读原文”直达),本文主要描述的是实例优化中内存ASMM管理方式
数据和云
2020/12/08
4830
【每日一练 085】性能优化-实例优化(四)
Linux 透明大页 THP 和标准大页 HP
在 Linux 中大页分为两种: Huge pages (标准大页) 和 Transparent Huge pages(透明大页)。
JiekeXu之路
2022/05/17
3.6K0
Linux 透明大页 THP 和标准大页 HP
PGA的设置与调整
    PGA,即程序全局区(Program Global Area),是Oracle体系机构的重要组成部分。Oracle 数据库对系统内存的总开销即是PGA+SGA。SGA主 要由库缓存(共享SQL区和PL/SQL区)和数据字典缓存组成。而PGA包含客户端连接服务器所派生的服务器进程的集合,每个服务器进程都拥有存放 数据和控制信息的私有内存区域。客户端进程和服务器端进程一一对应,由服务器端进程完成用户的请求,并将数据返回给客户端进程。
Leshami
2018/08/14
1.2K0
Oracle 12c系列(四)|资源隔离之IO、内存、CPU
作者 姚崇 出品 沃趣技术 服务器主机提供IO、内存、CPU、存储空间等资源为数据库使用,Oracle使用Flex Diskgroup为数据库提供存储空间并做了相应的资源隔离。下面我们来看下Oracle是如何为不同的PDB做IO、内存、CPU限制的。 一、IO 资源隔离 12cR2中,引入了两个参数MAX_IOPS和MAX_MBPS来限制PDB的物理IO。这两个参数只作用于PDB,不对CDB和非多租户环境生效。另外,这两个参数不限制redo log的写入(LGWR进程)和buffercache脏块写
沃趣科技
2018/03/26
1.7K0
Oracle 12c系列(四)|资源隔离之IO、内存、CPU
ORA-12514 解决方法
场景:修改oracle系统参数之后,数据库重启,客户端报 ORA-12514 错误,其实这只是表象,实际并非Listener的问题。
全栈程序员站长
2022/09/06
2.3K0
ORA-12514 解决方法
Oracle基本参数(PGA_AGGREGATE_TARGET)
第一期就从基本的初始化参数讲起,一篇一个参数,会尽可能的具体. 如无特殊说明数据库版本为11.2.0.4
bsbforever
2020/08/19
1.3K0
案例:Oracle 11g RAC 数据库连接数过高处理办法
墨墨导读:近期有一套数据库总是出现如下告警“严重告警:XXX Oracle 服务器:10.10.X.X 数据库的侦听器 LISTENER 状态为 Inactive ”,本文详述处理的整个过程。
数据和云
2020/11/16
1K0
案例:Oracle 11g RAC 数据库连接数过高处理办法
相关推荐
oracle amm和asmm,AMM与ASMM
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验