我在 Red Hat linux 6 上运行 oracle 11.2.0.4 SE RAC,数据库使用 ASM 进行数据文件管理
我一直在尝试打开 AMM 并设置以下参数
alter system set pga_aggregate_target='0' scope=spfile sid='*';
alter system set sga_target='0' scope=spfile sid='*';
alter system set memory_max_target='8G' scope=spfile sid='*';
alter system set memory_target='8G' scope=spfile sid='*';
但现在我想关闭实例和数据库上的 AMM,但是当我进行所需的更改时
alter system set pga_aggregate_target=2G scope=spfile sid='*';
alter system set sga_target=6G scope=spfile sid='*';
alter system set memory_max_target=0 scope=spfile sid='*';
alter system set memory_target=0 scope=spfile sid='*';
我在启动实例时收到此错误
SQL> startup pfile='?/dbs/initdev12.ora';
ORA-00843: Parameter not taking MEMORY_MAX_TARGET into account
ORA-00849: SGA_TARGET 6442450944 cannot be set to more than MEMORY_MAX_TARGET 0.
ORA-01078: failure in processing system parameters
如果我将 MEMORY_MAX_TARGET 设置回 8G,我可以启动数据库,但我的参数现在看起来像这样
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
lock_sga boolean FALSE
pre_page_sga boolean FALSE
sga_max_size big integer 6G
sga_target big integer 6G
SQL> show parameter memory
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
hi_shared_memory_address integer 0
memory_max_target big integer 8208M
memory_target big integer 0
shared_memory_address integer 0
SQL> show parameter pga
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
pga_aggregate_target big integer 2G
任何想法我做错了什么?
干杯戴夫
如果不想使用 AMM
MEMORY_MAX_TARGET
设置,则根本不需要设置:请注意,您正在尝试从(使用)启动数据库,您在使用命令
pfile
时更改了值:spfile
您可以编辑
pfile
并将以下参数设置为0memory_target
memory max target
然后设置以下值
sga_max_size
sga_target
pga_aggregate_target
关闭所有实例并使用
pfile
创建一个新的
spfile
:create spfile from pfile;
启动所有实例