客户生产系统,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. 从使用角度看 ReentrantLock 和 Condition

    java 语言中谈到锁,少不了比较一番 synchronized 和 ReentrantLock 的原理,本文不作分析,只是简单介绍一下 ReentrantLock 的用法,从使用中推测其内部的一些原 ...

  2. vul/0day/shellcode/payload/poc/exp

    vul--泛指漏洞 0day--未公开或虽已公开但还没有修复方法的漏洞 shellcode--远程溢出后执行的那段代码 payload--攻击载荷,送到远端机器执行的整段代码 poc--Proof o ...

  3. js中如何返回一个存放对象的数组?

    我这边需要返回后台数据的形式是这样的 {[ { ", }, { ", }, { ", }, { ", }, { ", } ]} 页面是通过循环去获取每 ...

  4. Ubuntu 下matlab 查看memory函数

    %Copyright (c) 2012, Michael Hirsch%All rights reserved.%%Redistribution and use in source and binar ...

  5. PHP中的Trait方法

    <?php /* * 自 PHP 5.4.0 起,PHP 实现了一种代码复用的方法,称为 trait. * Trait 是为类似 PHP 的单继承语言而准备的一种代码复用机制. * Trait ...

  6. zookeeper集群环境搭建(使用kafka的zookeeper搭建zk集群)

    ---恢复内容开始--- 使用kafka的zookeeper来搞集群的话和单纯用zk的其实差不了多少. 0.说在前头,搭建kafka集群之前请把每个服务器的jdk搞起来. 1.安装kafka wget ...

  7. 【资料收集】OpenCV入门指南 系列文章

    <OpenCV入门指南>系列文章地址:http://blog.csdn.net/morewindows/article/category/1291764 目录: 第一篇  安装OpenCV ...

  8. jenkins部署java项目到远程linux(四)

    (1)新建java项目(maven构建) pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:x ...

  9. tomcat版本对应jee版本等信息

    可以参考官方: http://tomcat.apache.org/whichversion.html http://www.bubuko.com/infodetail-674892.html

  10. TypeError: write() argument must be str, not bytes报错原因及Python3写入二进制文件方法

    Python2随机写入二进制文件: with open('/python2/random.bin','w') as f: f.write(os.urandom(10)) 但使用Python3会报错: ...