GNU/Linux >> Tutoriales Linux >  >> Linux

SLES 12:error de inicio de la base de datos con ORA-27300 ORA-27301 ORA-27303 al iniciar con Srvctl

El problema

12.1 Error de base de datos de RAC al iniciar a través de srvctl, registro de alerta que muestra el inicio de la base de datos y sigue cayendo:

alert_ORCL2.log dentro de [oracle base]/diag/rdbms/[db name]/[SID name]/trace:

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 )

Error de seguimiento informado en los registros del sistema operativo

mensajes:

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 <<<<<<<<<<<<<<<<<<<<<

Base de datos capaz de iniciarse con sqlplus.

La solución

Esto se debe al controlador cgroup de PID introducido con SUSE12.

Desde la sección "Soporte para PID cgroup Controller" en https://www.suse.com/releasenotes/x86_64/SUSE-SLES/12-SP2/#fate-320358

"Para controlar la configuración predeterminada de TasksMax=para los servicios y ámbitos que se ejecutan en el sistema, use la configuración de system.conf DefaultTasksMax=. Esta configuración predeterminada es 512, lo que significa que los servicios que no están configurados explícitamente de lo contrario solo podrán crear 512 procesos o hilos al máximo.

Para servicios con muchos subprocesos o procesos, es posible que deba establecer un valor más alto de TasksMax. En tales casos, configure TasksMax directamente en los archivos de unidad específicos. Elija un valor numérico o incluso infinito".

Desde SLES12 en adelante, se usa systemd en lugar de initd y el servidor OHASD solo puede abrir un máximo de 512 tareas. Configure el valor de DefaultTasksMax a 65535 en el archivo /etc/systemd/system.conf o establezca el valor de TasksMax correctamente para el servicio ohasd systemd.

Por ejemplo:

# 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. "Docker muerto pero subsistema bloqueado":error al iniciar Docker

  2. ¿Cómo escribo stderr en un archivo mientras uso tee con una tubería?

  3. usando awk con condiciones de valor de columna

  4. Error al usar el asistente de credenciales de Git con gnome-keyring como Sudo

  5. Error al usar una versión más nueva de glibc

¿Usando Word Wrap con Mc?

¿Usando –exclude con el comando Du?

Error de SMTP al usar PHPMailer con autenticación de GMail

Programar trabajos en Linux con el comando 'at'

Usar colores con printf

Usando y en Bash while loop