Oracle数据库pfile中的参数memory_target

Oracle数据库pfile中的参数memory_target,第1张

环境

首先查下文档看这个参数怎么解释,可以看memory_target和 SGA、PGA 之间的 关系

Oracle 9i引入pga_aggregate_target,可以自动对PGA进行调整;

Oracle 10g引入sga_target,可以自动对SGA进行调整;

Oracle 11g则对这两部分进行综合,引入memory_target,可以自动调整所有的内存,这就是新引入的自动内存管理特性。

找到了原因就来解决问题,memory_target参数应该大于SGA+PGA的内存值

我多给点,那就多给点 给了3G

问题解决! 出现了新报错! good !

在这个系统不支持? (本机物理内存及可用内存都大于3G)

默认的最大一半内存大小在某些场合可能不够用,并且默认的inode数量很低一般都要调高些,这时可以用mount命令来管理它。

问题解决。启动成功

1、11g中新增MEMORY_MAX_TARGET参数。memory_max_target是设定Oracle能占OS多大的内存空间,一个是Oracle SGA区最大能占多大内存空间。

11g中默认为0则初始状态下取消了Memory_target的作用,完全和10g在内存管理上一致,完全向下兼容。

2、SQL>show parameter target

memory_max_targetbig integer 1520M

3、命令修改

SQL>ALTER SYSTEM SET MEMORY_MAX_TARGET = 1024M SCOPE = SPFILE

SQL>ALTER SYSTEM SET MEMORY_TARGET = 1024M SCOPE = SPFILE

SQL>ALTER SYSTEM SET SGA_TARGET =0 SCOPE = SPFILE

SQL>ALTER SYSTEM SET PGA_AGGREGATE_TARGET = 0 SCOPE = SPFILE

4、错误

ALTER SYSTEM SET MEMORY_MAX_TARGET = 4096M SCOPE =bothboth必须改为spfile.

*

ERROR at line 1:

ORA-02095: specified initialization parameter cannot be modified

5、错误

ALTER SYSTEM SET MEMORY_TARGET = 4096M SCOPE =sfile

*

ERROR at line 1:

ORA-02097: parameter cannot be modified because specified value is invalid

ORA-00837: Specified value of MEMORY_TARGET greater than MEMORY_MAX_TARGET

6、我的主机内存为4G,我将MEMORY_TARGET设置为4G,无法启动

SQL>ALTER SYSTEM SET MEMORY_MAX_TARGET = 4096M SCOPE=spfile

System altered.

SQL>ALTER SYSTEM SET MEMORY_TARGET = 4096M SCOPE=spfile

System altered.

SQL>create pfile from spfile

File created.

SQL>shutdown immediate

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL>startup

ORA-00845: MEMORY_TARGET not supported on this system

oerr ora 845

00845, 00000, "MEMORY_TARGET not supported on this system"

// *Cause: The MEMORY_TARGET parameter was not supported on this operating system or /dev/shm was not sized correctly on Linux.

// *Action: Refer to documentation for a list of supported operating systems. Or, size /dev/shm to be at least the SGA_MAX_SIZE on each Oracle instance running on the system.

因为tmpfs的大小MEMORY_TARGET的设置,就会报这种错误。

cat /etc/fstab

tmpfs /dev/shmtmpfs defaults,size=3G0 0

umount /dev/shm

fuser -km /dev/shm

mount /dev/shm

7、vi $ORACLE_HOME/dbs/initSID.ora

需要提前create pfile from spfile

SQL>startup pfile=initSID.ora

或者vi $ORACLE_HOME/dbs/spfileSID.ora

将下列行修改为合适的大小或者直接删除

*.memory_max_target=4294967296

*.memory_target=4294967296

SQL>startup

重启Oracle还是Linux系统?

是Linux的话,那就检查shmfs是否写到/etc/fstab里了

其次、提供以下内容更有利于定位问题:

1、提供spfile和alert错误日志

2、提供df -hn执行结果


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/7773014.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-09
下一篇 2023-04-09

发表评论

登录后才能评论

评论列表(0条)

保存