系统:CentOS 7.9
数据库:Oracle 11.2.0.4
环境:rac (2节点)+2个实例
问题描述:dbca在添加第3个实例时出现ORA-27102:out of memory告警,如下所示:
解决过程:
1、查看系统内存
[root@hisdb1 ~]# free -m
total used free shared buff/cache available
Mem: 9438 2794 615 2168 6028 4288
Swap: 10239 0 10239
2、查看/etc/sysctl.conf参数
[root@hisdb1 ~]# cat /etc/sysctl.conf
主要参数:
kernel.shmall = 2097152
kernel.shmmax = 8181829631
3、数据库内存
SQL> show parameter sga
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
lock_sga boolean FALSE
pre_page_sga boolean FALSE
sga_max_size big integer 2832M
sga_target big integer 2832M
SQL> show parameter pga
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
pga_aggregate_target big integer 943M
说明:
1、 两个节点sysctl.conf参数一样
2、 两个实例的数据库内存一样
解决方案:
此处是将kernel.shmall、kernel.shmmax参数按如下进行修改后,数据库成功安装.
kernel.shmall = 4194304 (说明:此值被设置为(kernel.shmmax/4096)*2,原本不应乘2)
kernel.shmmax = 8589934591
结论:2个数据库占用的内存大小为(2832M+943M)*2=7550M,而系统内存仅有9438M.再添加一个数据库,生产环境肯定会出现问题,因为系统还需要使用一部分内存,因此在前期内存的规划上要注意.