数据库版本11203 RAC
操作系统版本linux redhat 6.7
打补丁失败启动数据库报错
sqlplus / as sysdba
SQL*Plus: Release 11.2.0.3.0 Production on Fri Jan 3 23:25:29 2020
Copyright (c) 1982, 2011, Oracle. All rights reserved.
Connected to an idle instance.
SQL> startup
ORA-01078: failure in processing system parameters
ORA-01565: error in identifying file '+DATA/RACDB/spfileRACDB.ora'
ORA-17503: ksfdopn:2 Failed to open file +DATA/RACDB/spfileRACDB.ora
ORA-12547: TNS:lost contact
查看原来是bin下的oracle文件权限变了改成6751
经典的6751的问题
参考文档 (Doc ID 1307075.1)
再次启动数据库报错
sqlplus / as sysdba
SQL*Plus: Release 11.2.0.3.0 Production on Fri Jan 3 23:25:29 2020
Copyright (c) 1982, 2011, Oracle. All rights reserved.
Connected to an idle instance.
SQL> startup
ORA-27102: out of memory
Linux-x86_64 Error: 28: No space left on device
#cat /etc/sysctl.conf
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.wmem_default = 8388608
net.core.rmem_default = 8388608
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
fs.aio-max-nr = 3145728
kernel.shmall = 2097152
kernel.shmmax = 4294967295
fs.file-max = 6815744
vm.swappiness = 10
修改 kernel.shmall = 4194304
$ sysctl -p
$ cat /proc/sys/kernel/shmall
4194304
如果临时解决
echo“ 4194304”> / proc / sys / kernel / shmall
shmall太小,很可能已设置为2097152的默认设置
SHMALL是系统一次可以使用的共享内存总量(以页为单位)。
将SHMALL设置为等于系统上所有SGA的总和除以页面大小。
比如:一个共享内存段的最大大小是16G,那么需
要共享内存页数是 16GB/4KB=16777216KB/4KB=4194304 (页),也就是64Bit 系统下
16GB 物理内存,设置 kernel.shmall = 4194304 才符合要求(几乎是原来设置2097152
的两倍)。这时可以将shmmax 参数调整到 16G 了,同时可以修改SGA_MAX_SIZE 和
SGA_TARGET 为 12G(您想设置的SGA 最大大小,当然也可以是2G~14G 等,还要协调PGA
参数及OS 等其他内存使用,不能设置太满,比如16G)。
参考文档(Doc ID 301830.1)