標籤:rom install message use emctl 退出 map 系統日誌 controls
現象:
oracle 執行job:expdp,資料庫執行個體直接宕掉,報錯如下:ORA-27300: OS system dependent operation:semctl failed with status: 22ORA-27301: OS failure message: Invalid argumentORA-27302: failure occurred at: sskgpwrm1ORA-27157: OS post/wait facility removedORA-27300: OS system dependent operation:semop failed with status: 36ORA-27301: OS failure message: Identifier removedORA-27302: failure occurred at: sskgpwwait1
資料庫版本11.2.0.4,作業系統版本:rhel 7
檢查作業系統日誌,定時任務日誌並無異常;
原因:
On Redhat 7.x, systemd-logind service introduced a new feature to remove all IPC objects when a user fully logs out.
The feature is controled by the option RemoveIPC in the /etc/systemd/logind.conf configuration file,
see man logind.conf(5) for details.
在 RHEL 7.x的版本裡,systemd-logind 服務控制著使用者的行為,當使用者退出,會清理該使用者的所有記憶體段.那麼定時任務的資料泵就有問題了,調用的記憶體段是oracle的;
查看removeipc的說明:
RemoveIPC=
Controls whether System V and POSIX IPC objects belonging to the user shall be removed when the user fully logs out. Takes a boolean argument. If enabled, the user
may not consume IPC resources after the last of the user‘s sessions terminated. This covers System V semaphores, shared memory and message queues, as well as POSIX
shared memory and message queues. Note that IPC objects of the root user are excluded from the effect of this setting. Defaults to "yes".
The default value for RemoveIPC in RHEL7.2 is yes.
預設值為yes; 所以當有定時任務時:
As a result, when the last oracle or grid user disconnects, the OS removes shared memory segments and semaphores for those users.
As Oracle ASM and Databases use shared memory segments for SGA, removing shared memory segments will crash the Oracle ASM and database instances.
解決辦法:
1) Set RemoveIPC=no in /etc/systemd/logind.conf
2) 重啟服務
systemctl daemon-reload
systemctl restart systemd-logind
參考MOS:
ORA-27300 ORA-27301 ORA-27302 ORA-27157 Database Crash (Doc ID 438205.1)
Failed Install of RAC with ASM: ORA-27300 ORA-27302 ORA-27300 ORA-27301 ORA-27302 (Doc ID 2099563.1)
RHEL 7上oracle 莫名宕機 ORA-27300