Oracle内存管理方式由amm切换为asmm
(一)ASMM和AMM
在Oracle 10g时,Orale推出ASMM(Automatic Shared Memory Managed),实现了SGA和PGA各自内部的自调节。在Oracle 11g,又推出了AMM(Automatic Memory managed),实现了SGA和PGA的统筹管理。
在Linux平台中,还是比较建议使用ASMM,因为Linux启用hugepage特性需要使用ASMM,而不能使用AMM。见
https://docs.oracle.com/cd/E11882_01/server.112/e10839/appi_vlm.htm#UNXAR391
因此,需要将ASMM调整为AMM,需要调整的参数有:
1.删除memory_max_target、memory_target
2.将sga_max_size、sga_target、pga_aggregate_target设置为非0值,其中sga_target要小于或等于sga_max_size。
(二)一次将AMM转换为ASMM的记录
初始参数:
在修改参数之前,要备份spfile为pfile(建议在修改Oracle的参数时,均要备份spfile)
SQL> create pfile='/home/oracle/orcl_20180502.pfile' from spfile;
改参数:
SQL> alter system set memory_max_target=0 scope=spfile;
SQL> alter system set memory_target=0 scope =spfile;
SQL> alter system set sga_max_size=700M scope=spfile;
SQL> alter system set sga_target=700M scope=spfile;
SQL> alter system set pga_aggregate_target=100M scope=spfile;
改完参数,再次对spfile进行备份,为什么要备份,且看后面
SQL> create pfile='/home/oracle/20180502_orcl.pfile.bak' from spfile;
重启数据库,使修改的参数生效:
发现数据库无法重启,提示SGA_TARGET的值应该小于MEMORY_MAX_TARGET。很明显,在修改了之后,sga_target=700M,而memory_max_target=0。这个问题的原因是Oracle启动过程中对于参数的内部检查。因为MEMORY_MAX_TARGET被“显式”的赋值,与SGA_TARGET赋值相冲突。
解决办法是,将备份的pfile文件中的memory_max_target和memory_target删除。
[oracle@redhat6 ~]$ vim 20180502_orcl.pfile.bak
删除黄色的2行。
然后使用pfile启动数据库
再利用pfile重建spfile
检查参数:
修改成功,至此 AMM转换为ASMM成功。
Oracle内存管理方式由amm切换为asmm的更多相关文章
- 这篇关于Oracle内存管理方式的介绍太棒了!我必须要转发,很全面。哈哈~
"Oracle内存管理可分为两大类,自动内存管理和手动内存管理.其中手动内存管理又可分为自动共享内存管理,手动共享内存管理,自动PGA内存管理以及手动PGA内存管理.本文会简单的介绍不同的内 ...
- Oracle内存管理技术
1.Oracle内存管理技术 2.配置自动内存管理(AMM) 3.监视自动内存管理(AMM) 4.配置自动共享内存管理(ASMM) 5.配置自动PGA内存管理 Reference 1.Oracle内存 ...
- glusterfs 内存管理方式
glusterfs中的内存管理方式: 首先来看看glusterfs的内存管理结构吧: struct mem_pool { struct list_head list; int hot_count; i ...
- 24小时学通Linux内核之内存管理方式
昨天分析的进程的代码让自己还在头昏目眩,脑子中这几天都是关于Linux内核的,对于自己出现的一些问题我会继续改正,希望和大家好好分享,共同进步.今天将会讲诉Linux如何追踪和管理用户空间进程的可用内 ...
- windows内存管理方式以及优缺点
Windows内存管理方式:页式管理,段式管理,段页式管理 页式管理 将各进程的虚拟空间(逻辑地址)划分为若干个长度相等的页,业内管理把内存空间(物理内存)按照页的大小划分为片或者页面,从而实现了离散 ...
- 十天学Linux内核之第三天---内存管理方式
原文:十天学Linux内核之第三天---内存管理方式 昨天分析的进程的代码让自己还在头昏目眩,脑子中这几天都是关于Linux内核的,对于自己出现的一些问题我会继续改正,希望和大家好好分享,共同进步.今 ...
- ObjC如何通过runtime修改Ivar的内存管理方式
ObjC如何通过runtime修改Ivar的内存管理方式 为什么要这么做? 在iOS 9之前,UITableView(或者更确切的说是 UIScrollView)有一个众所周知的问题: propert ...
- ORACLE内存管理之ASMM AMM
ORACLE ASMM ORACLE AMM ASMM转换至AMM AMM转换至ASMM
- (笔记)Linux内核学习(九)之内核内存管理方式
一 页 内核把物理页作为内存管理的基本单位:内存管理单元(MMU)把虚拟地址转换为物理 地址,通常以页为单位进行处理.MMU以页大小为单位来管理系统中的也表. 32位系统:页大小4KB 64位系统:页 ...
随机推荐
- Python3基础 tuple(list) 改变list元素的内容时,元组的id值不变
Python : 3.7.3 OS : Ubuntu 18.04.2 LTS IDE : pycharm-community-2019.1.3 ...
- Python3基础 list(dict) 使用 * 扩充时,出现字典元素重复问题
Python : 3.7.3 OS : Ubuntu 18.04.2 LTS IDE : pycharm-community-2019.1.3 ...
- LeetCode_405. Convert a Number to Hexadecimal
405. Convert a Number to Hexadecimal Easy Given an integer, write an algorithm to convert it to hexa ...
- git让线上代码强制覆盖本地的
git强制覆盖本地命令(分步执行): git fetch --all git reset --hard origin/master git pull git强制覆盖本地命令(单条执行): ...
- Jenkins - 以Docker方式安装启动Jenkins
1 - 官网信息 操作步骤:https://jenkins.io/zh/doc/book/installing/#docker Docker映像地址:https://hub.docker.com/r/ ...
- kubernetes-批量删除Evicted Pods
#!/bin/bash for i in `seq 1 100` do kubectl delete pod $(kubectl get pod -n service |grep -i "e ...
- Spring Boot拦截器实现并和swagger集成后使用拦截器的配置问题
1. 定义拦截器 LoginInterceptor LoginInterceptor.java是整个登录认证模块中的核心类之一,它实现了HandlerInterceptor类,由它来拦截并过滤到来的每 ...
- 【转】Fuel 9.0安装Openstack网络验证失败解决
原文链接:https://blog.csdn.net/wiborgite/article/details/52983575 故障现象: 网络验证失败,报错信息如下: Repo availability ...
- 【剑指offer】面试题 20. 表示数值的字符串
面试题 20. 表示数值的字符串
- 05 javascript知识点---BOM和DOM
1.DOM简单学习(为了满足案例要求) 功能:控制html文档的内容获取页面标签(元素)对象:Element document.getElementById("id值"):通过元素 ...