Sintomas:
Al iniciar la instancia de ASM se producen los siguientes errores:
grid>sqlplus / as
sysasm
SQL>startup;
ORA-01078: failure in
processing system parameters
ORA-29701: unable to
connect to Cluster Synchronization Service
Reproducción del problema:
Ambiente: Base de datos 11.2.0.3 con ASM sobre OEL 6 64 bits.
ps -ef |grep pmon
grid 5893
1 0 11:36 ? 00:00:01 asm_pmon_+ASM
oracle 5973
1 0 11:36 ? 00:00:02 ora_pmon_orcl
oracle>sqlplus / as
sysdba
SQL>shutdown
immediate;
grid>sqlplus / as
sysasm
SQL>shutdown
immediate;
-Se reinicia el servidor
root>reboot -f
-post-reinicio los servicios no levantaron automaticamente
grid>sqlplus / as
sysasm
SQL>startup;
ORA-01078: failure in
processing system parameters
ORA-29701: unable to
connect to Cluster Synchronization Service
Explicación:
El CRS tiene la capacidad de conocer el estado en el que los servicios
(bd y asm) se encontraban al momento del reinicio, de tal manera que cuando el
servidor se reinicie y vuelva a iniciar el CRS, dejará todos los servicios como
estaban. Entonces cuando se desea levantar manualmente post-reinicio el
servicio de ASM (sqlplus / as sysasm, startup) es cuando se producen los siguientes
errores:
ORA-01078: failure in processing system
parameters
ORA-29701: unable to connect to Cluster
Synchronization Service
La solucion para este caso puntual sería iniciar asm con
"srvctl" y con usuario oracle: srvctl
start asm;
Más no con sqlplus.
Esto no deberia pasar si modificamos la
propiedad AUTO_START=always dentro del CRS, esto hará que aunque los
servicios fueron encontrados abajo al bajar el CRS, los vuelva a levantar una
vez iniciado nuevamente el CRS. El valor "always" no es el default de
oracle, el default es "restart".
AUTO_START puede tomar uno de los siguientes valores:
always=siempre levantará los servicios
never= nunca levantará los servicios
restore=dejará los servicios en el estado en el que se encontraban
antes del reinicio.
Para ver qué valor de AUTO_START tiene cada servicio, ejecutar el
siguiente comando:
crsctl status resource ora.orcl.db -p | grep AUTO_START
crsctl status resource ora.asm -p | grep AUTO_START
Soluciones:
1. Dejar que el CRS baje todos los servicios (no bajarlos manualmente):
1.1 logearse con el usuario root
1.2 export
ORACLE_HOME=<home_grid>
1.3 export
PATH=$ORACLE_HOME/bin:$PATH
1.4 crsctl stop crs
1.5 reiniciar el servidor
2. Cambiar el parametro AUTO_START al valor always, de esta manera
aunque se baje manualmente servicio por servicio, cuando reinicie el CRS
volverá a levantar todos los servicios.
(Estos pasos solo los tendrán que realizar una vez)
2.1 logearse con el
usuario grid
2.2 crsctl modify
resource ora.asm -attr AUTO_START=always
2.3 crsctl modify
resource ora.orcl.db -attr AUTO_START=always
Siempre que se reinicie el servidor, voverá a
levantar todos los servicios.
Estimado pero si instalaste un bd stand alone, y te aparece ese error que es mi caso que procedimiento debo seguir???
ResponderEliminarEstimado José, podes seguir exactamente el mismo procedimiento que se expone en este articulo. Precisamente este problema me surgió en una BD Stand Alone. A partir de 11g con una instalación basado en roles (GI con usuario grid y BD con usuario oracle), este deberia de ser el procedimiento correcto.
ResponderEliminar