La sentencia SWITCH LOGFILE nos permite explicitamente forzar a que la base de datos comience a escribir en un nuevo grupo de archivos de redo log, por mas que, el corriente aún no se haya completado. Al forzar un cambio de log (SWITCH LOGFILE) se lanza un proceso de "checkpoint" que nos devuelve inmediatamente el control una vez concluido, este tipo se checkpoint se denomina LOG SWITCH CHECKPOINT.
Una opción "semi-documentada" que resulta bastante útlil en ambientes de RAC (particularmente cuando se utiliza "dataguard") es utilizar "ALL LOGFILE" para realizar el cambio de grupo de redo en todos los threads de la base, de una vez y desde una unica instancia:
Ej:
SQL> ALTER SYSTEM SWITCH ALL LOGFILE;
System altered
Una vez ejecutada la sentencia anterior, podemos verificar que el "switch" se realizó en todos los grupos (todos los threads) de la base de datos.
Una concideracion a tener en cuenta es que cuando la base de datos está configurada en modo NOARCHIVELOG esta sentencia NO funciona y devuelve el siguiente error:
ORA-00258: Manual archiving in NOARCHIVELOG mode must identify log
o
ORA-00258: el archivado manual en modo NOARCHIVELOG debe identificar el log
En este caso, para realizar el "switch" de todos los threads tendremos que hacerlo de la manera tradicional conectados a cada una de las instancias del RAC.
Ej:
SQL> ALTER SYSTEM SWITCH LOGFILE;
System altered
No hay comentarios:
Publicar un comentario