Este documento discute los archivos redo logs en Oracle, que registran los cambios en la base de datos para propósitos de recuperación. Explica que los redo logs se escriben de manera circular entre grupos de dos o más archivos, y que uno está activo mientras los otros son inactivos. También cubre temas como la administración y manipulación de grupos y miembros redo logs, y la importancia del modo archivelog para recuperación de punto en el tiempo.
1. /*
Sesión14 – Archivos redologs
Estudiante: José Luis Toro Alcarraz
Curso: Base de Datos Avanzado II
Correo:i201010865@cibertec.edu.pe
*/
Recordando
Todo Sistema Administrador de Base de Datos robusto debe tener un SubSistema de
recuperación, para que ante cualquier falla, éste pueda “recuperarse” sin interacción del
Administrador de Base de Datos. Por ejemplo, si el servidor pierde inesperadamente la
alimentación de energía. En Oracle, este subsistema está formado por los Archivos redo logs.
Objetivos de la sesión.
Administrar de manera eficiente los Grupos y miembros de redo logs.
Explotar la información del diccionario de datos respecto a los archivos redo logs.
1) Definición de archivos online redo logs
2) Planeación de los archivos online redo logs
3) Administración de los archivos online redo logs
4) Manipulación de objetos
5) Crear, eliminar miembros y grupos de redologs.
6) Resolver los casos propuestos.
1) Definición de archivos online redo logs
La estructura más importante para la operación de recuperación está formada por los
Archivos Redo logs, los cuales consisten en dos o más archivos que almacenan los cambios
que, en la base de datos, suceden.
Cada Instancia de una Base de Datos tiene asociado un grupo de archivos redologs para
proteger a la Base de Datos en caso de falla
Cómo escribe Oracle en los online redo logs.
Los archivos online redo logs de una Base de Datos consisten de dos o más archivos.
Oracle requiere como mínimo dos, para garantizar que uno siempre está disponible para
ser escrito mientras el otro está siendo archivado. (Si está en Modo ARCHIVE).
El proceso LGWR escribe en los online redo logs de una manera circular. Cuando el actual
archivo online redo log se llena, LGWR empieza a escribir en el siguiente redo log. Cuando
el último redo log disponible se llena, LGWR retorna al primer online redolog, para escribir
y empezar de nuevo el ciclo.
2. Activo (actual) e inactivo online redo log
En un tiempo determinado, Oracle sólo usa uno de los online redo logs para almancenar
los registros “redo” desde el redo log búfer. El archivo online redo log donde actualmente
el LGWR está escribiendo se conoce como el actual (CURRENT) online redo log.
Los archivos online redo logs que son requerios para recuperar una Base de Datos son
llamados activos (ACTIVE) online redo logs. Los online redo logs que no son requeridos
para recuperar una Base de datos son llamados redo “inactivos” (INACTIVE).
Si se tiene activado el Modo ARCHIVELOG, Oracle no puede usar o sobreescribir un activo
redo log hasta que el proceso ARCn ha archivado su contenido.
Si no se tiene activado este Modo ARCHIVELOG , cuando el último online redo log se llena,
se continúa sobreescribiendo al primer online redolog.
Log Switches y Número de secuencias de logs
Un log switch es el punto en el cual el Oracle termina la escritura en un online redo log y
comienza a escribir a otro. Normalmente, un switch log ocurre cuando el online redo log
actual se llena totalmente y la escritura debe continuar en el online redo log siguiente.
Sin embargo, usted puede especificar o forzar para que un switch log suceda sin importar
en qué online redo log está o en qué porcentaje está lleno el online redo log.
El Oracle asigna a cada online redo log un nuevo número de serie (número de secuencia)
del registro cada vez que ocurre un switch log ocurre y LGWR comienza a escribir en el
nuevo online redo log
Cada online o archivado (Modo ARCHIVELOG) redo log es identificado por su número de
secuencia. Durante una recuperación, los redo logs son aplicados en orden ascendent de
acuerdo a su número de secuencia
Para forzar un switch log:
ALTER SYSTEM SWITCH LOGFILE
3. Multiplexación de los archivos online redo logs
Realmente los switch log sucede entre GRUPOS de redo logs. Cada archivo online redo log
en un grupo es llamado MEMBER
Problemas con los redologs
4. Creación de Grupos y Miembros redo logs
ALTER DATABAS E ADD LO GF ILE ('/oracle/dbs/log1c.rdo',
'/oracle/dbs/log2c.rdo') S IZE 500K ;
A LTER D A TA BA S E A D D LO G F ILE G RO U P 10
('/oracle/dbs/log1c.rdo', '/oracle/dbs/log2c.rdo')
S IZE 500K ;
No olvidar la vista V$log y V$Logfile
Para crear online redo logs miembros:
ALTER DATABAS E ADD LO GF ILE M EM BER
'/oracle/dbs/log2b.rdo' TO GRO UP 2;
ALTER DATABAS E ADD LO GF ILE M EM BER
'/oracle/dbs/log2c.rdo' TO
('/oracle/dbs/log2a.rdo', '/oracle/dbs/log2b.rdo');
No olvidar la vista V$log y V$Logfile
Renombramiento de redologs
Por ejemplo:
-
Los online redologs están en dos discos: diska y diskb
5. -
-
Los online redolog están duplicados: un grupo consiste de los miembros:
/diska/logs/log1a.rdo and /diskb/logs/log1b.rdo, y el segundo grupo consiste de los
miembros: /diska/logs/log2a.rdo and /diskb/logs/log2b.rdo.
Los online redo logs que están en el disco diska tienen que ser movidos al disco diskc. Los
nuevos nombres serán: /diskc/logs/log1c.rdo and /diskc/logs/log2c.rdo.
S hutdown immediate
mv /diska/logs/log1a.rdo /diskc/logs/log1c.rdo
mv /diska/logs/log2a.rdo /diskc/logs/log2c.rdo
C O N N EC T / as S YS DBA
S TARTUP M O UN T
A LTER D A TA B A S E R EN A M E F ILE
'/d isk a/lo gs/lo g1 a.rd o ', '/d isk a/lo gs/lo g2 a.rd o '
TO '/d isk c/lo gs/lo g1 c.rd o ', '/d isk c/lo gs/lo g2 c.rd o ';
ALTER DATABAS E O P EN ;
Eliminación de grupos y miembros redo logs
Una Instancia de Base de Datos requiere como mínimo 2 grupos de online redo logs
Se puede eliminar un grupo de online redo logs si está en estado INACTIVO. (INACTIVE)
Si el modo Archivelog está activado, asegurarse de que el grupo de redo log a eliminarse
ha sido archivado.
Elimino un miembro
Elimino un grupo
Explicación del Modo Archive
La Base de datos antes de sobreescribir un redolog lo guarda en un directorio. Parámetro
log_archive_dest
6. Una BD en producciòn debe estar en Modo Archive.
Permite recuperar la BD en cualquier punto en el tiempo.
Vista para obtener información acerca de los redo logs
SE L E CT * FRO M V$ L O G;
GRO U P # T H RE A D # SE Q BY T E S M E M BE RS
A RC
ST A T U S
FI RST _ CH A N GE # FI RST _ T I M
------ ------- ----- ------- ------- --- --------- ------------- --------- ------------- - - - - - - - - - - - - - - - - - - - - - --------------1
1 10605 1048576 1 YES
A CT I VE
1 1 5 1 5 6 2 8 1 6 - A P R- 0 0
2
1 10606 1048576 1 NO
CU RRE N T
1 1 5 1 7 5 9 5 1 6 - A P R- 0 0
3
1 10603 1048576 1 YES
I N A CT I VE
1 1 5 1 1 6 6 6 1 6 - A P R- 0 0
4
1 10604 1048576 1 YES
I N A CT I VE
1 1 5 1 3 6 4 7 1 6 - A P R- 0 0
S ELEC T * F RO M V $LO G F ILE;
G RO U P # S TA TU S M EM BER
------ ------- ----------- ----------------------1
D :O RA N TO RA D A TA ID D B2 RED O 04.LO G
2
D :O RA N TO RA D A TA ID D B2 RED O 03.LO G
3
D :O RA N TO RA D A TA ID D B2 RED O 02.LO G
4
D :O RA N TO RA D A TA ID D B2 RED O 01.LO G