共享内存过小导致 oracle实例无法启动,增大共享内存

kernel.shmall
SQL> startup
ORA-27102: out of memory
Linux-x86_64 Error: 28: No space left on device
Additional information: 788529152
Additional information: 1

参数文件配置:

*.audit_file_dest='/oracle/app/oracle/admin/fgyxdb/adump'
*.audit_trail='db'
*.cluster_database=TRUE
*.compatible='11.2.0.4.0'
*.control_files='+DGSYSTEM/fgyxdb/controlfile/current.256.1083080823','+DGDATA01/fgyxdb/controlfile/current.256.1083080823'
*.db_block_size=8192
*.db_create_file_dest='+DGSYSTEM'
*.db_create_online_log_dest_1='+dgsystem'
*.db_create_online_log_dest_2='+dgdata01'
*.db_domain=''
*.db_name='fgyxdb'
*.db_recovery_file_dest_size=1572864000
*.db_recovery_file_dest='+dgrecovery'
*.diagnostic_dest='/oracle/app/oracle'
*.open_cursors=2000
*.pga_aggregate_target=419430400
*.processes=2000
*.remote_listener='fgyxdbscan:1521'
*.remote_login_passwordfile='exclusive'
*.sessions=2205
*.sga_target=1610612736

优化后的系统参数:

[root@yxdb81 ~]# sysctl -p
net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048586
vm.nr_hugepages = 800
kernel.shmmni = 4096

启动成功:

SQL> startup
ORACLE instance started.

Total System Global Area 1603411968 bytes
Fixed Size            2253664 bytes
Variable Size          654314656 bytes
Database Buffers      939524096 bytes
Redo Buffers            7319552 bytes
Database mounted.
Database opened.
SQL>