martes, 3 de mayo de 2022

Solución a error ORA-29701 en Oracle 11gR2

En un server de Oracle 6.5 con una solución de Oracle DataGuard standby en Oracle 11gR2 usando ASM cuando se pierde la configuración del registro Cluster Synchronization Service (CSS), no levanta ASM y aparecen los siguientes errores al ejecutar el comando startup: 

SQL> startup 

ORA-01078: failure in processing system parameters

ORA-29701: unable to connect to Cluster Synchronization Service

ORA-00205 error as expected due to one of the control file not in place.

 

Paso a paso para resolver el problema 

 1. Comprobar estado de la base de datos 

su - oracle sqlplus / as sysdba 

sql>select open_mode from v$database; 

SQL> startup ORA-00205 error as expected due to one of the control file not in place. 

Esto quiere decir que no está viendo el control file que está dentro de uno de los discos de la ASM 

 

2. Verificar la activación de HAS 

crsctl status has //no iniciado 

crsctl start has //con error 

 

3. Verifique los diskgroup 

srvctl status diskgroup -g ARCH 

srvctl status diskgroup -g REDO 

srvctl status diskgroup -g DATA 

 

4. Entrar por el usuario root y desconfigurar HAS 

su - root /oracle/database/grid/11g/crs/install/roothas.pl -deconfig -force -verbose 

 

5. Ejecutar en otra sesión por root la siguiente sentencia

while true; do if [ -p /var/tmp/.oracle/npohasd ];then echo Lo Cogi;dd if=/var/tmp/.oracle/npohasd of=/dev/null bs=1M count=1;else echo Todavia;fi;done 

 

6. Ejecutar el root.sh de Grid para volver a configurar

/oracle/database/grid/11g/root.sh 

 

7. Montar las ASM 

su - grid 

crsctl stat res -t 

srvctl add asm -d '/dev/sd*' 

srvctl start asm 

asmcmd mount ARCH 

asmcmd mount REDO 

asmcmd mount DATA 

srvctl status diskgroup -g ARCH 

srvctl status diskgroup -g REDO 

srvctl status diskgroup -g DATA 

 

8. Adicionar y lanzar el listener 

srvctl add listener 

srvctl start listener 

 

9. Iniciar la BD 

su - oracle 

sqlplus / as sysdba 

SQL> startup alter database open read only; 

 

10. Comenzar a recuperar 

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION; 

 

11. Consultas para chequear el proceso de sincronización 

select * from v$managed_standby; 

select * from v$archive_dest;

select current_scn from v$database;

select * from v$standby_log;