Añadiendo un miembro de REDO LOG
En el capitulo anterior habiamos visto que en nuestro caso, el REDO LOG estaba formado por 3 grupos, y cada uno de estos grupos, tenia a su vez 2 miembros.
Vamos a hacer una consulta a la vista donde podemos observar lo anterior:
- SELECT GROUP#, MEMBERS, STATUS FROM V$LOG
Y podemos ver los tres grupos, cada uno de los cuales tiene 2 miembros. Cuando se crea una base de datos en Oracle, se crean a su vez automáticamente 3 grupos, con un miembro cada uno, en nuestro caso ya tenemos dos miembros, pero inicialmente Oracle cuando crea una base de datos solo asigna un miembro por grupo.
No es muy recomendable tener solo un miembro por grupo, se deben tener al menos dos. Si tuviésemos un solo miembro por grupo y falla por alguna razón el REDO LOG que tiene asignado, tendríamos un problema, ya que puede que haya información en los REDO LOG que quizá no esté sincronizada en el fichero de datos.
Es por eso que ORACLE recomienda MULTIPLEXAR los ficheros del REDO LOG. O sea, la forma ideal de manejar el REDO LOG es teniendo al menos 3 grupos con al menos 2 miembros cada uno.
Veamos ahora cómo podemos agregar miembros a un grupo, para ello debemos escribir el siguiente comando:
- ALTER DATABASE ADD LOGFILE MEMBER [/vedado/grupo1-log3.log] TO GROUP 1
Y podemos ver el mensaje de Database altered. Vamos a agregar ahora un miembro al grupo 2. El proceso es el mismo:
- ALTER DATABASE ADD LOGFILE MEMBER [/vedado/grupo2.log3.log] TO GROUP 2
Si visualizamos la vista V$LOG con:
- SELECT GROUP#, MEMBERS, STATUS FROM V$LOG
Podemos observar que los grupos 1 y 2 tienen ahora 3 miembros, mientras que el grupo 3, tiene 2. Esto es perfectamente válido, no necesariamente debemos tener la misma cantidad de miembros por grupo.
Y vamos a acceder ahora a la vista V$LOGFILE, para visualizar los archivos que hemos creado cuando añadimos un miembro a los grupos 1 y 2:
- SELECT GROUP#, STATUS, MEMBER FROM V$LOGFILE
Y aquí tenemos los ficheros del REDO LOG que recién creamos, para el miembro que agregamos al grupo 1, tenemos el fichero grupo1-log3.log. Debajo tenemos el fichero que pertenece al nuevo miembro agregado al grupo 2.
Si observamos, tienen un status INVALID, pero no pasa nada con esto, es así porque Oracle aún no los ha utilizado, en cuanto se haga un switch y Oracle comience a guardar cambios en ese fichero, desaparecerá este estado de INVALID.
Vamos a añadir un miembro también al grupo 3:
- ALTER DATABASE ADD LOGFILE MEMBER [/vedado/grupo3-log3.log] TO GROUP 3
Para comprobar que hemos añadido un miembro al grupo 3 hacemos un:
- SELECT GROUP#, MEMBERS, STATUS FROM V$LOG
Podemos ver que tenemos 3 miembros por cada grupo. Para visualizar el archivo creado cuando añadimos un miembro al grupo 3, hacemos un:
- SELECT GROUP#, STATUS, MEMBER FROM V$LOGFILE
Y aquí podemos ver el archivo, cuyo nombre es el que le asignamos cuando añadimos un
anadiendo miembro