Oracle啟動報錯:ORA-27154 ORA-27300 ORA-27301 ORA-27302
阿新 • • 發佈:2018-11-29
Oracle啟動報錯:ORA-27154 ORA-27300 ORA-27301 ORA-27302
SQL> startup
ORA-27154: post/wait create failed
ORA-27300: OS system dependent operation:semget failed with status: 28
ORA-27301: OS failure message: No space left on device
ORA-27302: failure occurred at: sskgpsemsper
這個錯誤是由核心引數kernel.sem設定錯誤造成,可用sysctl -p檢視當前設定值:
[[email protected] oracle]# /sbin/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 = 4294967295 kernel.shmall = 268435456 fs.file-max = 6815744 net.ipv4.ip_local_port_range = 9000 65500 net.core.rmem_default = 262144 net.core.wmem_default = 262144 net.core.rmem_max = 4194304 net.core.wmem_max = 1048576 fs.aio-max-nr = 1048576 kernel.sem = 250 100
kernel.sem引數應有4部分組成:SEMMSL、SEMMNS、SEMOPM、SEMMNI,分別是:
SEMMSL: 每個訊號集的最大訊號數量
資料庫最大 PROCESS 例項引數的設定值再加上 10 。
Oracle 建議將 SEMMSL 的值設定為不少於 100 。
SEMMNS: 用於控制整個 Linux 系統中訊號(而不是訊號集)的最大數。
Oracle 建議將 SEMMNS 設定為:系統中每個資料庫的 PROCESSES 例項引數設定值的總和,加上最大 PROCESSES 值的兩倍,最後根據系統中 Oracle 資料庫的數量,每個加 10 。
使用以下計算式來確定在 Linux 系統中可以分配的訊號的最大數量。它將是以下兩者中較小的一個值:SEMMNS 或 (SEMMSL * SEMMNI)
SEMOPM:
Oracle 建議將 SEMOPM 的值設定為不少於 100 。
SEMMNI: 核心引數用於控制整個 Linux 系統中訊號集的最大數量。
Oracle 建議將 SEMMNI 的值設定為不少於 100 。
所以修改正確的設定值後使用sysctl -p命令使新值生效就可以去啟動Oracle了。
[[email protected] oracle]# vi /etc/sysctl.conf
#使用root賬號,vi編輯配置檔案,修改引數值後,使用sysctl-p使生效。
[email protected] oracle]# 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 = 4294967295
kernel.shmall = 268435456
fs.file-max = 6815744
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.wmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_max = 1048576
fs.aio-max-nr = 1048576
kernel.sem = 250 32000 100 128
切換回Oracle使用者,啟動資料庫順利完成。
[[email protected] oradata]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on Thu Nov 29 18:28:59 2018
Copyright (c) 1982, 2009, Oracle. All rights reserved.
Connected to an idle instance.
SQL> startup
ORACLE instance started.
Total System Global Area 849530880 bytes
Fixed Size 1339824 bytes
Variable Size 620760656 bytes
Database Buffers 222298112 bytes
Redo Buffers 5132288 bytes
Database mounted.
Database opened.