系统:CentOS 7.9

数据库:Oracle 11.2.0.4

环境:rac (2节点)+2个实例

问题描述:dbca在添加第3个实例时出现ORA-27102:out of memory告警,如下所示:

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.再添加一个数据库,生产环境肯定会出现问题,因为系统还需要使用一部分内存,因此在前期内存的规划上要注意.