客户生产系统,AIX oracle 11.2.0.4 数据库版本,2节点RAC。

操作系统内存,均为125G,调整前,使用oracle memory_target自动调整分配方式,memory_max_target大小80G大小,但是shared pool大小为21G。

客户之前存在内存不够用(由于客户应用问题,导致几乎所有的SQL都需要重新硬解析,最终导致oracle shared pool大小不断变大、异常增长),导致数据库shutdown的情况,因此客户想调整oracle内存的分配方式。

本次采用治标方法:将oracle内存限制,从memory_target自动管理分配方式,进行降级使用oracle automatic shared memory management,及sga/pga分别自动管理。

一、从AMM调整为ASMM

1)查询操作系统内存大小
# svmon -G -O unit=GB
Unit: GB
-------------------------------------------------------------------------------
size inuse free pin virtual available
memory 125.22 18.2 107.06 5.74 17.4 107.05
pg space 16.0 0.05 work pers clnt other
pin 2.04 0.13 3.57
in use 17.4 0.73 # svmon -G -O unit=GB
Unit: GB
-------------------------------------------------------------------------------
size inuse free pin virtual available
memory 125.00 102.58 22.4 19.7 77.9 43.0
pg space 16.0 0.21 work pers clnt other
pin 16.0 0.13 3.57
in use 77.9 24.7
根据操作系统内存大小,进行比例分配。本次采用sga=64 /pga=24G不变大小,操作系统预留37G
2)关闭memory_target,使用oracle sga/pga分别自动管理
alter system set memory_max_target= scope=spfile;
alter system set memory_target= scope=spfile;
alter system set sga_max_size=64G scope=spfile;
alter system set sga_target=64G scope=spfile; pga_aggregate_target big integer 24G

3)发现一个问题,关闭节点2所在数据库,重启节点1所在数据库报错
ORA-00843: Parameter not taking MEMORY_MAX_TARGET into account
ORA-00849: SGA_TARGET 10737418240 cannot be set to more than MEMORY_MAX_TARGET 0.
本次采用的方式是一种较危险的操作,如果不熟悉oracle 参数文件管理方式,
建议使用文档后续学习的mos建议,blog链接方法

4)创建pfile参数文件,手工注释memory这两个oracle内存参数
#备份
create pfile='/tmp/20190125_node2.ora' from memory;
create pfile='/tmp/20190125_spfile_node2.ora' from spfile;
#拷贝编辑
cp /tmp/20190125_spfile_node2.ora /tmp/new_pfile.ora
注释new_pfile文件中的两个memory_target内存参数
SQL> show parameter pfile
NAME VALUE
------------------------------------ ----------- ------------------------------
spfile +DATANEWDG/dbcnr/parameterfile/spfile.ora
5)根据之前查询到的内容,重新覆盖生成最新的pfile文件,启动数据库即可(rac环境,使用所有的参数需要指明路径,以免出错)
create spfile='+DATANEWDG/dbcnr/parameterfile/spfile.ora' from pfile='/tmp/new_pfile.ora';

二、学习mos/blog搜索学习

MOS

ORA-, ORA- When Trying To Change SGA_TARGET With MEMORY_MAX_TARGET= Being Active (文档 ID 1397761.1)
Oracle Database - Enterprise Edition - Version 11.1.0.6 and later SYMPTOMS
When trying to set SGA_TARGET using an ALTER SYSTEM command, the following errors are raised: ORA-: Parameter not taking MEMORY_MAX_TARGET into account
ORA-: SGA_TARGET cannot be set to more than MEMORY_MAX_TARGET . CHANGES
MEMORY_MAX_TARGET was set to . CAUSE
The problem is caused by the MEMORY_MAX_TARGET parameter explicitly being set to . In case AMM should not be used, MEMORY_MAX_TARGET should not be set at all. SOLUTION
The solutions to the problem are:
1.0 本次使用的是方法1
create a PFILE from the SPFILE being used and remove the MEMORY_MAX_TARGET= and MEMORY_TARGET= lines.
After that, use the modified PFILE to create a new SPFILE and start the instance with this new setup.

2.0 另一种方式是通过参数rest重置清空参数(如果是隐含参数,使用reset将恢复默认值(待验证))
should the instance be running, then use the following commands to remove the explicit setting of MEMORY_TARGET= and MEMORY_MAX_TARGET=: alter system reset memory_target;
alter system reset memory_max_target;

BLOG

http://www.dbsnake.net/how-to-disable-asm-instance-amm.html
--参考
特别注意的是——如果要禁掉ASM实例的AMM,就一定不要同时reset memory_target和memory_max_target,
而是应该将memory_target设为0并只reset memory_max_target,但很恶心的是基本上所有的MOS文档都在说要同时reset memory_target和memory_max_target,
所以如果你没有注意到这一点,你会发现你怎么也禁不掉ASM实例的AMM。
未验证(如果是我下一次操作,可能会进行测试,这种影响较小,操作简便)

AMM调整为ASMM命令(关闭memory_target自动管理方式)的更多相关文章

  1. win10彻底禁用自动更新,win10怎样彻底关闭自动更新,永久关闭win10自动更新,win10更新助手

    首先,请广大win10受害者原谅小菜用一个如此长的标题来吸引你们,为了尽最大努力帮助那些饱受win10自动更新折磨的朋友们,小菜不得已出此下策,望见谅! windows 10是一个神奇的操作系统,当你 ...

  2. 如何关闭WIN7自动配置 IPV4 地址 169.254

    如何关闭WIN7自动配置 IPV4 地址 169.254 以管理员身份运行cmd.exe 输入:netsh winsock reset catalog 回车 输入:netsh int ip reset ...

  3. 关闭centos自动升级内核

    八.关闭Centos自动更新chkconfig --list yum-updatesd  #显示当前系统状态yum-updatesd    0:关闭  1:关闭  2:启用  3:启用  4:启用  ...

  4. kvm虚拟机不能使用virsh shutdownw命令关闭虚拟机的解决方法

    今天笔者在对kvm虚拟机进行管理时,使用virsh shutdown命令关闭指定的虚拟机时,发现虽然有如下的提示,但其实虚拟机却一直不会真正的关闭. 经过查看virsh命令帮助和上网查询,才得知vir ...

  5. word中几个好用的宏代码(立方米上标、关闭样式自动更新、删除无效样式、表格加粗边框、宋体引号)

    Sub 替换立方米() With Selection.Find .Text = "m3" .Replacement.Text = "mm3" .Forward ...

  6. 彻底关闭windows10自动更新解决方案

    window10的自动更新其实和window7和window8都有所不同,有些人认为只要停止了windows updates 就可以了,不会再开始了! 但是往往不是这样的,因为微软在window up ...

  7. ubuntu18关闭系统自动更新

    ubuntu18.04关闭系统自动更新有两个方法:1.修改配置文件 修改配置文件/etc/apt/apt.conf.d/10periodic#0是关闭,1是开启,将所有值改为0vi etc/apt/a ...

  8. 在IDEA中停止和关闭SonarLint自动检查,手动运行SonarLint检查代码

    关闭SonarLint自动检查代码 有时敲一行代码SonarLint插件就会自动检查,让人感觉很不舒服,还会使电脑卡顿: 依次点击:File -> Settings 或直接Ctrl+Alt+S ...

  9. 关闭 iTunes 自动同步

    关闭 iTunes 自动同步 iTunes>Edit>perererset>device>Prevent iPods,iPhone, and iPads from syncin ...

随机推荐

  1. Python学习之路【第二篇】-pyc简介、Python常用的数据类型及其用法和常用运算符

    1.pyc简介 python程序在运行时也有编译过程,编译后会产生.pyc文件.这是一种由python虚拟机执行的二进制文件(字节码),用于保存内存中PyCodeObject,以便加快程序的加载运行. ...

  2. UNIX发展史简介

    1965年贝尔实验室(Bell Labs).通用电气(General Electric)和麻省理工学院(MIT)欲共同打造MULTICS(Multiplexed Information and Com ...

  3. Minimum supported Gradle version is 4.1. Current version is 2.14.1

    Error:Minimum supported Gradle version is 4.1. Current version is 2.14.1. If using the gradle wrappe ...

  4. ubuntu16.10 安装ibus中文输入法

    安装以下几种常用输入法: IBus拼音:sudo apt-get install ibus-pinyin IBUS五笔:sudo apt-get install ibus-table-wubi 谷歌拼 ...

  5. Win10系列:JavaScript 的 WinJS库

    WinJS 库是由 CSS 和 JavaScript 文件组成的.使用Visual Studio 2012新建一个JavaScript 的Windows应用商店的空白应用程序项目,在项目的引用管理器中 ...

  6. learning ddr seft-refresh mode summary

  7. 尚学堂java 答案解析 第四章

    本答案为本人个人编辑,仅供参考,如果读者发现,请私信本人或在下方评论,提醒本人修改 一.选择题 1.BD 解析:B:类必须有构造方法,若程序未写,这系统自动调用系统构造方法. D:super()会调用 ...

  8. Java中数据类型相互转化

    1 将String 转换成int? A. 有两个方法: 1). int i = Integer.parseInt([String]); 或 i = Integer.parseInt([String], ...

  9. POJ 1840 Eqs 解方程式, 水题 难度:0

    题目 http://poj.org/problem?id=1840 题意 给 与数组a[5],其中-50<=a[i]<=50,0<=i<5,求有多少组不同的x[5],使得a[0 ...

  10. JavaScript -基础- 函数与对象(二)String

    一.判断数据类型typeof与判断对象类型instanceof 1.typeof typeof只能判断基础数据类型,无法判断引用数据类型 <script> var s="hell ...