ORA-00843, ORA-00849 When Trying To Change SGA_TARGET With MEMORY_MAX_TARGET=0
发表于:2025-11-14 作者:千家信息网编辑
千家信息网最后更新 2025年11月14日,背景:根据需求生产环境为了增加稳定性,避免内存组件过度扩张,因此使用ASMM自动共享内存管理方式,并且手工设定shared_pool_size,db_cache_size的大小。如下操作的原因是因为:
千家信息网最后更新 2025年11月14日ORA-00843, ORA-00849 When Trying To Change SGA_TARGET With MEMORY_MAX_TARGET=0背景:
根据需求生产环境为了增加稳定性,避免内存组件过度扩张,因此使用ASMM自动共享内存管理方式,并且手工设定
shared_pool_size,db_cache_size的大小。
如下操作的原因是因为:在直接修改操作的时候报错:
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.
--1.查看当前内存组件参数值
col name for a30;
col VALUE for a30;
select INST_ID,name, VALUE / 1024 / 1024 size_MB, issys_modifiable
from gv$parameter
where name in ('pga_aggregate_target',
'memory_target',
'memory_max_target',
'sga_max_size',
'sga_target',
'shared_pool_size',
'db_cache_size',
'java_pool_size',
'large_pool_size',
'streams_pool_size')
order by 2,1;
--2.查看PGA使用过的最大值
select INST_ID,value/1024/1024 SIZE_M from gv$pgastat where name='maximum PGA allocated';
INST_ID SIZE_M
---------- ----------
1 286.93457
2 269.886719
--3.当前系统参数配置
NAME TYPE VALUE
------------------------------------ ---------------------- ------------------------------
memory_target big integer 10G
memory_max_target big integer 10G
sga_max_size big integer 10G (该系统当前值设置有问题)
sga_target big integer 0
pga_aggregate_target big integer 0
--4计划调整内存组件参数如下:
--自动共享内存管理(ASMM)
--注意这里是因为该系统是OLAP和OLTP功能混用,所以内存分配特殊
memory_target big integer 0
memory_max_target big integer 0
sga_max_size big integer 8G
sga_target big integer 0
pga_aggregate_target big integer 10G
shared_pool_size big integer 4G
db_cache_size big integer 2G
--5.确认参数文件并于操作前备份参数文件
show parameter spfile;(操作前要有参数文件备份)
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string +DATEDG/rac11g/spfilerac11g.ora
create pfile='/home/oracle/oldpfile.ora' from spfile ='+DATEDG/rac11g/spfilerac11g.ora';
--6.修改内存组件参数:
1节点:
alter system set memory_max_target=0 scope=spfile sid='*';
alter system set sga_max_size=8192M scope=spfile sid='rac11g1';
alter system set memory_target=0 sid='rac11g1';
alter system set sga_target=0 sid='rac11g1';
alter system set pga_aggregate_target=10240M sid='rac11g1';
shutdown immediate;
2节点:
alter system set sga_max_size=8192M scope=spfile sid='rac11g2';
alter system set memory_target=0 sid='rac11g2';
alter system set sga_target=0 sid='rac11g2';
alter system set pga_aggregate_target=10240M sid='rac11g2';
shutdown immediate;
--7.使用跟新后的spfile创建pfile然后修改
节点1:
使用跟新后的spfile创建pfile然后修改
create pfile='/home/oracle/newpfile.ora' from spfile ='+DATEDG/rac11g/spfilerac11g.ora';
--8.注释(参见文档 ID 1397761.1)
注释:
vi /home/oracle/newpfile.ora
#*.memory_max_target=0
#rac11g1.memory_target=0
#rac11g2.memory_target=0
--9.使用修改后的newpfile重建参数文件(原spfile可以重命名备份):
create spfile='+DATEDG/rac11g/spfilerac11g.ora' from pfile='/home/oracle/newpfile.ora';
--10.分别启动数据库
启动数据库(两节点分别启动):
startup;
--11.确认参数设置情况(两节点):
确认参数设置情况(两节点):
show parameter memory_max_target;
show parameter sga_max_size;
show parameter memory_target;
show parameter sga_target;
show parameter pga_aggregate_target;
--12.设置shared_pool_size和db_cache_size参数:
设置shared_pool_size和db_cache_size参数:
1节点:
alter system set shared_pool_size=4096M sid='rac11g1';
alter system set db_cache_size= 2048M sid='rac11g1';
2节点:
alter system set shared_pool_size=4096M sid='rac11g2';
alter system set db_cache_size= 2048M sid='rac11g2';
--13.确认参数设置情况(两节点):
确认参数设置情况(两节点):
show parameter shared_pool_size;
show parameter db_cache_size;
--14.
查看日志是否有报错信息:
----------
备注:
参考文档:
ORA-00843, ORA-00849 When Trying To Change SGA_TARGET With MEMORY_MAX_TARGET=0 Being Active (文档 ID 1397761.1)
根据需求生产环境为了增加稳定性,避免内存组件过度扩张,因此使用ASMM自动共享内存管理方式,并且手工设定
shared_pool_size,db_cache_size的大小。
如下操作的原因是因为:在直接修改操作的时候报错:
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.
--1.查看当前内存组件参数值
col name for a30;
col VALUE for a30;
select INST_ID,name, VALUE / 1024 / 1024 size_MB, issys_modifiable
from gv$parameter
where name in ('pga_aggregate_target',
'memory_target',
'memory_max_target',
'sga_max_size',
'sga_target',
'shared_pool_size',
'db_cache_size',
'java_pool_size',
'large_pool_size',
'streams_pool_size')
order by 2,1;
--2.查看PGA使用过的最大值
select INST_ID,value/1024/1024 SIZE_M from gv$pgastat where name='maximum PGA allocated';
INST_ID SIZE_M
---------- ----------
1 286.93457
2 269.886719
--3.当前系统参数配置
NAME TYPE VALUE
------------------------------------ ---------------------- ------------------------------
memory_target big integer 10G
memory_max_target big integer 10G
sga_max_size big integer 10G (该系统当前值设置有问题)
sga_target big integer 0
pga_aggregate_target big integer 0
--4计划调整内存组件参数如下:
--自动共享内存管理(ASMM)
--注意这里是因为该系统是OLAP和OLTP功能混用,所以内存分配特殊
memory_target big integer 0
memory_max_target big integer 0
sga_max_size big integer 8G
sga_target big integer 0
pga_aggregate_target big integer 10G
shared_pool_size big integer 4G
db_cache_size big integer 2G
--5.确认参数文件并于操作前备份参数文件
show parameter spfile;(操作前要有参数文件备份)
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string +DATEDG/rac11g/spfilerac11g.ora
create pfile='/home/oracle/oldpfile.ora' from spfile ='+DATEDG/rac11g/spfilerac11g.ora';
--6.修改内存组件参数:
1节点:
alter system set memory_max_target=0 scope=spfile sid='*';
alter system set sga_max_size=8192M scope=spfile sid='rac11g1';
alter system set memory_target=0 sid='rac11g1';
alter system set sga_target=0 sid='rac11g1';
alter system set pga_aggregate_target=10240M sid='rac11g1';
shutdown immediate;
2节点:
alter system set sga_max_size=8192M scope=spfile sid='rac11g2';
alter system set memory_target=0 sid='rac11g2';
alter system set sga_target=0 sid='rac11g2';
alter system set pga_aggregate_target=10240M sid='rac11g2';
shutdown immediate;
--7.使用跟新后的spfile创建pfile然后修改
节点1:
使用跟新后的spfile创建pfile然后修改
create pfile='/home/oracle/newpfile.ora' from spfile ='+DATEDG/rac11g/spfilerac11g.ora';
--8.注释(参见文档 ID 1397761.1)
注释:
vi /home/oracle/newpfile.ora
#*.memory_max_target=0
#rac11g1.memory_target=0
#rac11g2.memory_target=0
--9.使用修改后的newpfile重建参数文件(原spfile可以重命名备份):
create spfile='+DATEDG/rac11g/spfilerac11g.ora' from pfile='/home/oracle/newpfile.ora';
--10.分别启动数据库
启动数据库(两节点分别启动):
startup;
--11.确认参数设置情况(两节点):
确认参数设置情况(两节点):
show parameter memory_max_target;
show parameter sga_max_size;
show parameter memory_target;
show parameter sga_target;
show parameter pga_aggregate_target;
--12.设置shared_pool_size和db_cache_size参数:
设置shared_pool_size和db_cache_size参数:
1节点:
alter system set shared_pool_size=4096M sid='rac11g1';
alter system set db_cache_size= 2048M sid='rac11g1';
2节点:
alter system set shared_pool_size=4096M sid='rac11g2';
alter system set db_cache_size= 2048M sid='rac11g2';
--13.确认参数设置情况(两节点):
确认参数设置情况(两节点):
show parameter shared_pool_size;
show parameter db_cache_size;
--14.
查看日志是否有报错信息:
----------
备注:
参考文档:
ORA-00843, ORA-00849 When Trying To Change SGA_TARGET With MEMORY_MAX_TARGET=0 Being Active (文档 ID 1397761.1)
参数
内存
节点
情况
文件
组件
备份
文档
系统
数据
数据库
注释
管理
最大
特殊
信息
功能
原因
备注
大小
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
sql查看数据库表中的信息
保密网络安全吗
web数据库vbscript
软件开发理念思路
北京通用服务器批发厂家
如何提升手机网络安全
现代数据库审计规定
软件开发项目实战教程
学校监控服务器维修多少钱
计算机网络安全期末考
技术软件开发有资质吗
压电喷头软件开发厂家
初级网络安全管理师证书有用吗
汽车网络技术现场总线
1u服务器机箱报价
蓝光传媒网络技术有限公司
数据库深似海
江苏洋葱头网络技术
服务器集中管理 免费下载
法律小故事之网络安全
数据库一次性删除多表数据库
质量软件开发平台
网络安全法自何时施行
网络技术服务费收费行业标准
软件开发会计
国内知名网络安全会议
网络安全黑板报内容初中版
wpf分页的时候数据库改变了
我的世界如何查自己的服务器号
湖北荆州网络安全宣传片