Oracle RAC 内存扩容,报ORA-27104

昨晚Oracle RAC集群内存扩容,由512G扩容到1T,在开启集群后需要更改几个参数值:

alter system set sga_target=560G scope=spfile sid='pdb1';
alter system set sga_max_size=560G scope=spfile sid='pdb1';
alter system set db_cache_size=256G scope=spfile sid='pdb1';
alter system set shared_pool_size=200G scope=spfile sid='pdb1';
alter system set pga_aggregate_target=140G scope=spfile sid='pdb1';
alter system set "_enable_shared_pool_durations"=false scope=spfile sid='pdb1';
shutdown immediate;

配置好参数后重启数据库时报:

ORA-27104: system-defined limits for shared memory was misconfigured

在Linux下,系统共享内存由kernel.shmall、kernal.shmmax两个内核参数控制:

kernel.shmall参数控制系统一次可以使用的共享内存总量(以页为单位),在Linux 共享内存页大小为4KB,如果一个共享内存段的最大大小是1TB,那么需要共享内存页数是 32TB/4KB = 1073741824KB/4KB = 268435456(页)

kernal.shmmax参数用于定义一个内存段最大可以分配的内存空间,单位为字节,如果一个共享内存段的最大大小是1TB,那么分配的最大内存空间数是1024 * 1024 * 1024 * 1024 = 1099511627776

所以需要更改系统参数:

vi /etc/sysctl.conf
kernel.shmall = 268435456
kernel.shmmax = 1099511627776

#修改大页
vm.nr_hugepages = 291840

退出/etc/sysctl.conf后
执行sysctl  -p ,使配置的参数生效

此时数据库就可以正常开启!

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值