sql >> Base de Datos >  >> RDS >> Oracle

ORA-01618

¡¡¡Esta es mi publicación número 100 en este blog!!!

Estoy tratando de duplicar un problema en el que tengo los subprocesos 4, 5 y 6 en mi principal y mi modo de espera tiene los subprocesos 1 y 2. Cuando hice un cambio, todo estuvo bien, pero no pude volver a cambiar porque el anterior principal, ahora el standby, está esperando rehacer desde el hilo 4 que no existe en mi nuevo primario, el viejo standby. Para mis pruebas, tengo un RAC primario de 2 nodos y un RAC de reserva de 2 nodos. Como era de esperar, ambos tienen subprocesos 1 y 2. Así que intenté cambiar el principal a los subprocesos 3 y 4 simplemente cambiando el parámetro THREADS en SPFILE. Pero al iniciar, recibí:

PRCR-1079 : Failed to start resource ora.resp.db
CRS-5017: The resource action "ora.resp.db start" encountered the following error:
ORA-01618: redo thread 3 is not enabled - cannot mount
. For details refer to "(:CLSN00107:)" in "/u01/app/crs11.2.0.3/log/myhost01/agent/crsd/oraagent_oracle/oraagent_oracle.log".
CRS-2674: Start of 'ora.resp.db' on 'myhost01' failed
CRS-2632: There are no more servers to try to place resource 'ora.resp.db' on that would satisfy its placement policy
CRS-5017: The resource action "ora.resp.db start" encountered the following error:
ORA-01618: redo thread 4 is not enabled - cannot mount
. For details refer to "(:CLSN00107:)" in "/u01/app/crs11.2.0.3/log/myhost02/agent/crsd/oraagent_oracle/oraagent_oracle.log".
CRS-2674: Start of 'ora.resp.db' on 'myhost02' failed

Este no es un simple cambio de parámetro. Para evitar esto, primero tenemos que crear registros de rehacer en línea para admitir los nuevos hilos:

SQL> alter database add logfile thread 3 group 30
  2  '/oracle_data/oradata/resp/redo30.log' size 52429312;
Database altered.
SQL> alter database add logfile thread 3 group 31
  2  '/oracle_data/oradata/resp/redo31.log' size 52429312;
Database altered.
SQL> alter database add logfile thread 4 group 40
  2  '/oracle_data/oradata/resp/redo40.log' size 52429312;
Database altered.
SQL> alter database add logfile thread 4 group 41
  2  '/oracle_data/oradata/resp/redo41.log' size 52429312;
Database altered.

A continuación, habilitamos los hilos.

SQL> alter database enable public thread 3;
Database altered.
SQL> alter database enable public thread 4;
Database altered.

Lastly, we change the initialization parameters and bounce the instance:
SQL> alter system set thread=3 sid='resp1' scope=spfile;

System altered.

SQL> alter system set thread=4 sid='resp2' scope=spfile;

System altered.
Luego rebote las instancias con srvctl. Una vez que todo estuvo respaldado, deshabilité los subprocesos 1 y 2.
SQL> alter database disable thread 1;
Database altered.
SQL> alter database disable thread 2;
Database altered.