Trabajando con los REDO LOG
Primero, vamos a acceder a una vista que nos muestra datos del comportamiento y uso de los REDO LOG, esa vista es V$LOG. Para mostrar esta vista debemos escribir:
- SELECT * FROM V$LOG
Pero nosotros vamos a mostrar solo algunas de las columnas de la tabla que devuelve esta vista. Vamos a escribir la consulta y luego explicamos qué valores muestra cada una de las columnas:
- SELECT GROUP#, THREAD#, SEQUENCE#, BYTES, MEMBERS, STATUS, FIRST_CHANGE#, NEXT_CHANGE# FROM V$LOG
Presionamos Intro y aquí en la primera columna, GROUP# está mostrando que tenemos un REDO LOG por cada grupo.
En la columna THREAD# nos muestra en qué instancia de Oracle están trabajando estos REDO LOG. Dependiendo de la arquitectura de nuestra base de datos podemos tener varias instancias apuntando a la base de datos, que no es nuestro caso, aquí tenemos una sola instancia y por lo tanto un solo THREAD, con su grupo correspondiente de REDO LOGS.
La SEQUENCE#, nos muestra una especia de orden en que han ido saltando los REDO LOG, vemos que son números consecutivos. La columna Bytes nos muestra el tamaño de los REDO LOG. También tenemos los miembros, se puede ver que para el grupo 1 tenemos 2 miembros, lo mismo para el grupo 2 y el grupo 3.
En STATUS vemos que los dos primeros están INACTIVE, mientras que el último está CURRENT, o sea, aquí es donde se están guardando todos los cambios que hagamos sobre la base de datos. ¿Por qué no tenemos ninguna ACTIVE?, pues recordemos que un REDO LOG va a estar ACTIVE, hasta que se sincronicen los datos de memoria, con los ficheros de datos.
Que estén los dos primeros REDO LOG en status INACTIVE, significa que se pueden usar una vez que se haga un SWITCH.
Por último, estas dos columnas contienen unos SCN (system change number) que indican el primer cambio que guarda cada REDO LOG, y el último cambio, que coincide a su vez, con el primer cambio del siguiente REDO LOG que se utilizó. Básicamente muestra el SCN con que arranca ese REDO LOG, y el SCN con que va a arrancar el siguiente REDO LOG. De esta manera podemos ver que en esta columna del primer registro muestra un número que termina en 597, y el siguiente REDO LOG, arranca justo con ese número. Lo mismo para el segundo registro, termina en 623 y el de abajo, comienza con ese mismo número.
En el caso del REDO LOG con status CURRENT, como no ha terminado de llenarse, nos muestra un número, ya para cuando termine de llenarse REDO LOG comenzar la sincronización con el fichero de datos.
Veamos ahora dónde se encuentran estos archivos REDO LOG. Para ello tenemos la vista V$LOGFILE:
- SELECT * FROM V$REDOFILE
Presionamos Intro y se nos muestra los grupos, con los archivos REDO LOG. En mi caso tengo dos archivos en cada grupo, que corresponden a cada uno de los miembros, ya habiamos visto de antes, que en mi caso, tengo dos miembros por grupo. Pues entonces en esta vista puedo visualizar, entre otras cosas, los ficheros y al grupo al que pertenecen.
Debemos recordar que los ficheros de REDO LOG se van utilizando de forma ciclica. Una vez que se llena uno, se dispara un SWITCH para cambiar de fichero, a la vez que se lanza un CHECKPOINT para que se sincronice los cambios guardados en el REDO LOG con el fichero de datos. Pues bien, Ora
trabajando redo log