GNU/Linux >> Linux の 問題 >  >> Linux

SLES 12:Srvctl を使用して起動中に ORA-27300 ORA-27301 ORA-27303 のデータベース起動エラーが発生する

問題

12.1 srvctl 経由で起動中に RAC データベース エラーが発生し、アラート ログにデータベースの起動が表示され、さらにダウンする:

[Oracle ベース]/diag/rdbms/[データベース名]/[SID 名]/trace 内の alert_ORCL2.log:

Fri Nov 03 15:06:25 2017
Adjusting the default value of parameter parallel_max_servers
from 960 to 486 due to the value of parameter processes (600)
Starting ORACLE instance (normal) (OS id: 19684)
.
.
Fri Nov 03 15:10:45 2017
Process startup failed, error stack:
Fri Nov 03 15:10:45 2017
Errors in file /u01/app/oracle/diag/rdbms/ORCL/ORCL2/trace/ORCL2_psp0_19706.trc:
ORA-27300: OS system dependent operation:fork failed with status: 11
ORA-27301: OS failure message: Resource temporarily unavailable
ORA-27302: failure occurred at: skgpspawn3
Fri Nov 03 15:10:46 2017
Shutting down instance (abort)
License high water mark = 2
Fri Nov 03 15:10:46 2017
USER (ospid: 22067): terminating the instance
Fri Nov 03 15:10:47 2017
Instance terminated by USER, pid = 22067
Fri Nov 03 15:10:47 2017
Instance shutdown complete
Errors in file //u01/app/oracle/diag/rdbms/ORCL/ORCL2/trace/ORCL2_mmon_19853.trc (incident=14681):
ORA-00600: internal error code, arguments: [KSLGES_3], [], [], [], [], [], [], [], [], [], [], []
ORA-27300: OS system dependent operation:semop failed with status: 43
ORA-27301: OS failure message: Identifier removed
ORA-27302: failure occurred at: sskgpwwait1
Incident details in: /u01/app/oracle/diag/rdbms/ORCL/ORCL2/incident/incdir_14681/ORCL2_mmon_19853_i14681.trc
Use ADRCI or Support Workbench to package the incident.
See Note 411.1 at My Oracle Support for error and packaging details.

ORCL2_psp0_19706.trc:

*** 2017-11-03 15:10:44.989
Process startup failed, error stack:
ORA-27300: OS system dependent operation:fork failed with status: 11
ORA-27301: OS failure message: Resource temporarily unavailable
ORA-27302: failure occurred at: skgpspawn3

*** 2017-11-03 15:10:45.993
Process startup failed, error stack:
ORA-27300: OS system dependent operation:fork failed with status: 11
ORA-27301: OS failure message: Resource temporarily unavailable
ORA-27302: failure occurred at: skgpspawn3

ORCL2_mmon_19853.trc:

*** 2017-11-03 15:09:57.908
***KELR Apply Log: unable to schedule MMON Slave, error 3

*** 2017-11-03 15:10:47.847
Incident 14681 created, dump file: /u01/app/oracle/diag/rdbms/ORCL/ORCL2/incident/incdir_14681/ORCL2_mmon_19853_i14681.trc
ORA-00600: internal error code, arguments: [KSLGES_3], [], [], [], [], [], [], [], [], [], [], []
ORA-27300: OS system dependent operation:semop failed with status: 43
ORA-27301: OS failure message: Identifier removed
ORA-27302: failure occurred at: sskgpwwait1

KEBM: MMON action policy violation. 'PQ: Adjust Slave Pool' viol=0; err=600
error 0 detected in background process
kgxgnsdr: clssgsshdereg: warning: return status 26 (-558242808 )
OPIRIP: Uncaught error 447. Error stack:
ORA-00447: fatal error in background process
ORA-00600: internal error code, arguments: [KSLGES_3], [], [], [], [], [], [], [], [], [], [], []
ORA-27300: OS system dependent operation:semop failed with status: 43
ORA-27301: OS failure message: Identifier removed
ORA-27302: failure occurred at: sskgpwwait1
kgxgnsdr: clssgsshdereg: warning: return status 26 (-813323584 )

OS ログに報告された次のエラー

メッセージ:

2017-11-03T15:10:11.690393+01:00 rachost1 Oracle Audit[7888]: LENGTH : '200' ACTION :[52] 'ALTER DATABASE MOUNT /* db agent *//* {2:39656:2} */' DATABASE USER:[1] '/' PRIVILEGE :[6] 'SYSDBA' CLIENT USER:[6] 'oracle' CLIENT TERMINAL:[0] '' STATUS:[1] '0' DBID:[10] '2949004148'
2017-11-03T15:10:47.700094+01:00 rachost1 kernel: [ 173.788859] cgroup: fork rejected by pids controller in /system.slice/ohasd.service <<<<<<<<<<<<<<<<<<<<<

データベースは sqlplus で起動できます。

解決策

これは、SUSE12 で導入された PID cgroup コントローラーによるものです。

https://www.suse.com/releasenotes/x86_64/SUSE-SLES/12-SP2/#fate-320358の「PID cgroupコントローラーのサポート」セクションから

「システムで実行されているサービスとスコープのデフォルトの TasksMax=設定を制御するには、system.conf 設定の DefaultTasksMax=を使用します。この設定のデフォルトは 512 です。これは、明示的に設定されていないサービスが 512 のプロセスまたは

スレッドまたはプロセスの多いサービスの場合、より高い TasksMax 値を設定する必要がある場合があります。このような場合は、TasksMax を特定のユニット ファイルに直接設定します。数値または無限大を選択してください。"

SLES12 以降では、initd の代わりに systemd が使用され、OHASD サーバーは最大 512 のタスクしか開くことができません。 DefaultTasksMax の値を構成します ファイル /etc/systemd/system.conf で 65535 に または、ohasd systemd サービスの TasksMax 値を適切に設定してください。

例:

# cat /etc/systemd/system/ohasd.service.d/lunar.conf
[Service]
TasksMax=16384
# systemctl status ohasd
● ohasd.service - LSB: Start and Stop Oracle High Availability Service
Loaded: loaded (/etc/init.d/ohasd; bad; vendor preset: disabled)
Drop-In: /etc/systemd/system/ohasd.service.d
└─lunar.conf
Active: active (exited) since Mon 2017-11-13 14:29:23 CET; 3h 5min ago
Docs: man:systemd-sysv-generator(8)
Process: 4876 ExecStart=/etc/init.d/ohasd start (code=exited, status=0/SUCCESS)
Tasks: 612 (limit: 16384) <<<<<<=================== here was the limit with 512


Linux
  1. /var/log/messages で「Error:database disk image is malformed」で Yum が失敗する

  2. cp:ディレクトリの省略 – Linux でディレクトリをコピー中にエラーが発生しました

  3. 「共有ライブラリの読み込み中にエラーが発生しました:libjli.so:共有オブジェクト ファイルを開けません:そのようなファイルまたはディレクトリはありません」起動時の「java -version」エラー

  1. systemdを使用してスタートアップを管理する

  2. パイプでティーを使用しているときにstderrをファイルに書き込むにはどうすればよいですか?

  3. 列値条件で awk を使用する

  1. MySQLWorkbenchを使用してMySQLでデータベースを作成する方法

  2. MySQLでパスワードによってIDENTIFIEDでGRANTを使用中にエラーが発生しました

  3. Notify-Send With Cronを使用していますか?