问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Linux下启动Oracle数据库,报错“Specified value of MEMORY_TARGET greater than MEMORY_MAX_TARGET”

发布网友 发布时间:2022-04-09 10:06

我来回答

2个回答

懂视网 时间:2022-04-09 14:27


  MEMORY_TARGET:动态控制SGA和PGA时,Oracle总共可以使用的共享内存大小,这个参数是动态的,因此提供给Oracle的内存总量是可以动态增大,也可以动态减小的。它不能超过MEMORY_MAX_TARGET参数设置的大小。默认值是0。
  MEMORY_MAX_TARGET:这个参数定义了MEMORY_TARGET最大可以达到而不用重启实例的值,如果没有设置MEMORY_MAX_TARGET值,默认等于MEMORY_TARGET的值。
  使用动态内存管理时,SGA_TARGET和PGA_AGGREGATE_TARGET代表它们各自内存区域的最小设置,要让Oracle完全控制内存管理,这两个参数应该设置为0。
      memory_max_target是一个非动态参数,不能在memory范围动态改变,只能通过指明 scope=spfile这个条件来达到数据库在下次启动后让改变生效的目的。
      但是memory_target这个参数是可以动态调节的...也就是说不需要重新启动DB,就可以让其生效。
MEMORY_MAX_TARGET 是设定Oracle能占OS多大的内存空间
     SGA_MAX_SIZE是Oracle SGA 区最大能占多大内存空间
     10g 的sga_max_size 是动态分配 Shared Pool Size,database buffer cache,large pool,java pool,redo log buffer 大小的,是根据Oracle 运行状况来重新分配SGA 各内存块的大小。PGA在10g中需要单独设定。
     11g MEMORY_MAX_TARGET 参数包含SGA和PGA两部分。
    在手动创建数据库时,只需要在创建数据库之前设置合适的MEMORY_TARGET和MEMORY_MAX_TARGET初始化参数。
    在一个系统上启用自动内存管理其实很简单,不需要事先做太多的事情,可以使用下面的计算公式来计算:           MEMORY_TARGET=SGA_TARGET+GREATEST(PGA_AGGREGATE_TARGET,"maximumPGAallocated");
下面的查询语句向你展示有关的信息,以及如何计算出需要的值:
1.SELECT name, value
FROM   v$parameter
WHERE  name IN (‘pga_aggregate_target‘, ‘sga_target‘)
UNION
SELECT ‘maximum PGA allocated‘ AS name, TO_CHAR(value) AS value
FROM   v$pgastat
WHERE  name = ‘maximum PGA allocated‘;
2.SELECT sga.value + GREATEST(pga.value, max_pga.value) AS memory_target
FROM (SELECT TO_NUMBER(value) AS value FROM v$parameter WHERE name = ‘sga_target‘) sga,
     (SELECT TO_NUMBER(value) AS value FROM v$parameter WHERE name = ‘pga_aggregate_target‘) pga,
     (SELECT value FROM v$pgastat WHERE name = ‘maximum PGA allocated‘) max_pga;
    除现有的用于内存管理的V$视图外,Oracle 11g还新增加了下面4个视图用于自动内存管理:
    V$MEMORY_CURRENT_RESIZE_OPS
    V$MEMORY_DYNAMIC_COMPONENTS
    V$MEMORY_RESIZE_OPS
    V$MEMORY_TARGET_ADVICE
    为每个动态组件分配的内存大小使用视图V$MEMORY_DYNAMIC_COMPONENTS显示:
SELECT  component, current_size, min_size, max_size
FROM    v$memory_dynamic_components
WHERE   current_size != 0;
    V$MEMORY_CURRENT_RESIZE_OPS和V$MEMORY_RESIZE_OPS分别显示了组件当前改变大小操作的信息和上一次改变大小操作的信息。
    V$MEMORY_TARGET_ADVICE提供了帮助调整MEMORY_TARGET参数的信息,它显示了一段MEMORY_TARGET设置可用的范围,根据当前的设置,估算完成当前负载所需要的DB Time值。
    SELECT * FROM v$memory_target_advice ORDER BY memory_size;


下面来看看在11g 中Memory_target 设置和不设置对SGA/PGA 的影响:
如果Memory_target 设置为非0 值
1、sga_target 和 pga_aggregate_target 已经设置大小
Memory_Target =SGA_TARGET+PGA_AGGREGATE_TARGET ,大小和 memory_max_size 一致
2、sga_target 设置大小, pga_aggregate_target 没有设置大小
pga_aggregate_target初始化值=memory_target-sga_target
3、sga_target 没有设置大小, pga_aggregate_target 设置大小 
sga_target 初始化值=memory_target-pga_aggregate_target
4、sga_target 和 pga_aggregate_target 都没有设置大小
两个值没有最小值和默认值,Oracle 将根据数据库运行状况进行分配大小,但在数据库启动是会有一个固定比例来分配:
sga_target =memory_target *60%
pga_aggregate_target=memory_target *40%


如果Memory_target 没有设置为0 
11g 中默认为0 则初始状态下取消了Memory_target 的作用,完全和10g 在内存管理上一致,完全向下兼容。
1、SGA_TARGET设置值
自动调节SGA 中的shared pool,buffer cache,redo log buffer,java pool,larger pool等内存空间的大小。PGA 则依赖pga_aggregate_target 的大小。
2、SGA_target 和PGA_AGGREGATE_TARGET 都没有设置
SGA 中的各组件大小都要明确设定,不能自动调整各组件大小。PGA不能自动增长和收缩
3: MEMORY_MAX_TARGET 设置而MEMORY_TARGET =0  这种情况先和10g 一样。
在11g 中可以使用下面看各组件的值:
SQL> show parameter target


NAME     TYPE VALUE
------------------------------------ ----------- ------------------------------
archive_lag_target     integer 0
db_flashback_retention_target     integer 1440
fast_start_io_target     integer 0
fast_start_mttr_target     integer 0
memory_max_target     big integer 18G
memory_target     big integer 18G
parallel_servers_target     integer 256
pga_aggregate_target     big integer 8G
sga_target     big integer 9G


如果需要监视Memory_target 的状况则可以使用下面三个动态试图:
   V$MEMORY_DYNAMIC_COMPONENTS
   V$MEMORY_RESIZE_OPS 
   v$memory_target_advice 

一张能直观体现10g和11g的自动内存管理的参数之间的关系的参数关系图:
技术分享

关于oracle11G的自动内存管理MEMORY_TARGET和MEMORY_MAX_TARGET

标签:memory_max_target

热心网友 时间:2022-04-09 11:35

内存自动管理确实是要设置memory_target,但是这个值不能超过memory_max_target,要么你不要设置memory_max_target,则memory_max_target默认值是等于memory_target,要么将memory_max_target设置为大于等于memory_target的值
你已经出现这个问题,解决办法是重建spfile:
spfile文件保存在$ORACLE_HOME/dbs/spfile$ORACLE_SID.ora
1.你用strings $ORACLE_HOME/dbs/spfile$ORACLE_SID.ora命令取出参数值的有效部分,放在另外一个文件里保存,假设文件名是/tmp/init.ora。注意memory_max_target可以删除,也可以设置为一个大于等于memory_target的值
2.用这个新生成的init文件启动实例到nomount状态
startup nomount pfile=/tmp/init.ora
3.用init文件重建spfile
create spfile from pfile='/tmp/init.ora';
4.shutdown和重启实例
shutdown abort
startup
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
索尼NEX-6单头套机(E 16-50mm)主要参数 索尼NEX-6单头套机(E 18-200mm LE)主要参数 索尼NEX-6单头套机(E 18-200mm LE)基本参数 索尼NEX-6单头套机(16-80mm)基本参数 追加诉前财产保全的条件是什么 电脑开机硬盘灯循环亮灭电脑开机后硬盘灯一下亮一下灭是怎么回事_百度... ...不能开机了?显示器亮橘色的灯,风扇能转,就是主机上的灯不亮... ...重起时电源灯是常亮, 风扇是转的,但硬盘灯不亮, 屏幕无显示_百度知 ... 硬盘灯常亮电脑无法正常运行电脑开机后硬盘指示灯常亮不闪是什么原因... 电脑硬盘不亮电脑硬盘指示灯不亮 微信能申请副号或者小号吗? 泡了24小时的糯米多久能熟 副卡怎么注册? 糯米泡多久才蒸 怎样申请第二个 怎么申请小号 易趣充值做代理需要700左右,充值后可提现回来,之后平台给你... 易趣充值这平台赚钱吗 易趣充值 为什么登录不上去了 易趣-安付通 怎样充值? 通过易趣网给手机充值,钱付了却充不到 当心易趣手机直充平台 易趣帐号怎么充值,或支付宝怎么办?请帮我从网上复制相关信息。贴全积分送你 易趣充值上的自动匹配收益是真的吗?一天能赚多少钱? 易趣充值话费没有到账怎么办? 有人了解易趣充值吗? 易趣充值这个可靠吗? 谁知道在易趣充值app充Q币是不是秒到? 易趣充值这个APP做代理稳吗? 正宗的金骏眉汤色是这颜色吗? wps一张a4纸打印50张页码怎么设置 七色莲花灯各种颜色的意义是什么 什么样的机关单位可以随便冻结别人的银行微信支付宝的? 请问下这个是什么品种的植物啊,老板告诉我说叫七彩莲 男主角在修真界用医治别人得来的众多法宝练制成莲花般的神器遭众人争抢后自爆穿越异世。在异世幼年是就医 事业单位有权利冻结银行卡吗 请问司法部门可以冻结银行卡吗 我的银行卡被冻结了,我上哪个部门去问? 求视频:果宝特攻第二部要找的是不是七彩莲?如果不是,那是什么? 猪肉在冰箱里冻了,再拿出来消冻后做成肉馅饺子再冷冻起来,吃的时候再煮熟,就是这样可以吗? oracle 11g的memory target设置报ORA-00845错误疑惑 求助oracle11g 耗尽内存 影像测量仪作业指导书 二次元的操作规程 xx一x的成语有哪些 猜成语:xx一x xx一x 成语 影像测量仪测量燕尾角度实验原理 XX一X成语怎么填空 带有xx一x的四字成语