ORA-00845: MEMORY_TARGET not supported on this system

1. 错误场景

最初安装Orale11g时,采用默认自动内存管理,使用1/2Mem。后来想增大最大内存使用值。系统内存8G Mem,想修改为3/4Mem: 8*3/4=6G=6144M = 6442450944B

[root@HM311~]# vim /etc/sysctl.conf
kernel.shmmax = 6442450944

[root@HM311~]# sysctl -p

[root@HM311~]# splplus / as sysdba

sql> show parameter target;

sql> alter system set memory_max_target=6144M scope=spfile;

sql> alter system set memory_target=6144M scope=spfile;

需要重启数据库才能生效。

sql> startup
ORA-00845: MEMORY_TARGET not supported on this system

查找资料后发现在oracle 11g中新增的内存自动管理的参数MEMORY_TARGET,它能自动调整SGA和PGA,
这个特性需要用到/dev/shm共享文件系统,而且要求/dev/shm必须大于MEMORY_TARGET,如果/dev/shm比MEMORY_TARGET小,就会报错。

2. 解决方案

2.1 初始化参数MEMORY_TARGET或MEMORY_MAX_TARGET不能大于共享内存(/dev/shm),为了解决这个问题,可以增大/dev/shm

[root@HM311~]# mount -t tmpfs shmfs -o size=6144M /dev/shm

// 但如果之前已经mount过了,则执行remount
[root@HM311~]# mount -o remount,size=6144M /dev/shm

2.2 为了确保操作系统重启之后能生效,需要修改/etc/fstab文件

[root@HM311~]# vi /etc/fstab

tmpfs /dev/shm tmpfs  defaults,size=6144M      0 0

2.3 如果/dev/shm没有挂载也会报上面的错,所认需要确保已经挂载,执行目录查看:

[root@HM311~]# df -h

Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1       800G  642G  159G  81% /
devtmpfs        3.9G     0  3.9G   0% /dev
tmpfs           8.0G  4.6G  3.5G  57% /dev/shm
tmpfs           3.9G   17M  3.9G   1% /run
tmpfs           3.9G     0  3.9G   0% /sys/fs/cgroup
tmpfs           783M     0  783M   0% /run/user/1001
tmpfs           783M     0  783M   0% /run/user/0

2.4 重新启动数据库

$ sqlplus / as sysdba
SQL> startup
  • startup : 启动
  • shutdown normal : 正常关闭数据库。不允许新的连接,等待会话结束,等待事务结束,做一个检查点并关闭数据文件。启动时不需要实例恢复。
  • shutdown transactional : 不允许新的连接,不等待会话结束,等待事务结束,做一个检查点并关闭数据文件。启动时不需要实例恢复。
  • shutdown immediate : 立即方式关闭数据库。不允许新的连接,不等待会话结束,等待事务结束,做一个检查点并关闭数据文件。没有结束的事务自动回滚,启动时不需要实例恢复。
  • shutdown abort : 直接关闭数据库,正在访问数据库的会话会被突然终止。如果数据库中有大量操作正在执行,这时执行shutdown abort后,重新启动数据库需要很长时间
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值