关于SGA与memory_target 大小冲突照成数据库无法挂载问题

关于SGA与memory_target 大小冲突照成数据库无法挂载问题

 

错误信息:

ORA-00844: Parameter not taking MEMORY_TARGET into account

ORA-00851: SGA_MAX_SIZE xxx cannot be set to more than MEMORY_TARGET xxx.

 1.      简介

Oracle 11g中,ORACLE把SGA与PGA统一管理,总和为memory_target参数的设定,也就是MAX(SGA+PGA)<= memory_target(当然可以在创建新实例的时候确定是否使用这种方案,在10g中是没有的)。

如果错误设定sga_max_size>=memory_target(相等也不行,PGA至少需要大概十几M内存),则无法进行startup nomount,但是修改SGA命令又需要至少在startup nomount下面执行,所以必须使用另一种方式修改该参数。

 2. 修改SGA与memory_target 大小

在SGA大于memory_target的情况下,使用startup nomount会出现异常:

ORA-00844: Parameter not taking MEMORY_TARGET into account

ORA-00851: SGA_MAX_SIZE 1073741824 cannot be set to more than MEMORY_TARGET 872415232.

 

这时候需要执行以下步骤:

SQL> create pfile='/home/oracle/init0321.ora' from spfile;

File created.

SQL> !vi /home/oracle/init0321.ora

然后修改:

*.memory_target=1073741824

*.sga_max_size=805306368

*.sga_target=805306368

 

sga_max_size等于memory_target会出现,

ORA-00838: Specified value of MEMORY_TARGET is too small, needs to be at least 1036M,

因为PGA还需要部分空间

 

SQL> startup pfile='/home/oracle/init0321.ora';

SQL> create spfile from pfile='/home/oracle/init0321.ora';

SQL> shutdown immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL> startup;

 

Pfile与spfile默认位置:

Spfile  ${ORACLE_INSTALL_PATH}/product/11.2.0/dbh ome_1/dbs/spfileorcl.ora

 

如果参数没指定pfile位置,则默认使用下面文件

Pfile  ${ORACLE_INSTALL_PATH}/product/11.2.0/dbhome_1/dbs/ initorcl.ora

转载于:https://www.cnblogs.com/mikevictor07/p/3615558.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这个错误是在使用 Oracle 数据库时出现的,它表示你尝试将 SGA_MAX_SIZE 参数设置为比 MEMORY_TARGET 参数更大的值,这是不允许的。SGA_MAX_SIZE 是指定 SGA(System Global Area)最大大小的参数,而 MEMORY_TARGET 是指定 SGA 和 PGA(Process Global Area)总大小的参数。 在 Oracle 11g 及更高版本中,Oracle 推荐使用 MEMORY_TARGET 参数来管理 SGA 和 PGA 的大小,而不是手动设置 SGA_MAX_SIZE 和 PGA_AGGREGATE_TARGET 参数。这是因为使用 MEMORY_TARGET 可以更好地优化内存使用,提高系统性能。 因此,要解决这个错误,你需要调整 SGA_MAX_SIZE 和 MEMORY_TARGET 参数的值,使它们保持一致或者 MEMORY_TARGET 的值更大。你可以通过修 Oracle 数据库的参数文件(init.ora 或 spfile)来更这些参数的值。具体操作步骤如下: 1. 使用 SQLPLUS 连接到 Oracle 数据库,以 SYSDBA 用户身份登录: ``` sqlplus / as sysdba ``` 2. 查看当前 SGA 和 PGA 的大小: ``` SHOW SGA; SHOW PARAMETER PGA_AGGREGATE_TARGET; ``` 3. 关闭数据库实例: ``` SHUTDOWN IMMEDIATE; ``` 4. 编辑参数文件(init.ora 或 spfile),将 MEMORY_TARGETSGA_MAX_SIZE 参数设置为相同的值,或者 MEMORY_TARGET 的值更大。例如: ``` MEMORY_TARGET=3G SGA_MAX_SIZE=3G ``` 5. 启动数据库实例: ``` STARTUP ``` 6. 再次查看 SGA 和 PGA 的大小,确认修成功: ``` SHOW SGA; SHOW PARAMETER PGA_AGGREGATE_TARGET; ``` 这样就可以避免 SGA_MAX_SIZE 和 MEMORY_TARGET 值不一致的错误了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值