Está en la página 1de 23

Mantenimiento de Archivos REDO LOG

Sesin 3

Agenda
Ficheros redo log Funcionamiento del redo log Aadir/quitar grupos/miembros de redo Configuracin de los ficheros redo log Modo archivelog

FICHEROS REDO LOG


El Online Redo log, es una estructura fsica que consiste de mnimo de dos archivos, estos a su vez pueden estar multiplexados en dos o mas copias idnticas, que a estos se le conocen como miembros de un grupo de Redo log. Los archivos de Online Redo Log permite que Oracle escriba en un archivo de Online Redo Log mientras el otro se archiva (Cuando mencionamos archivar, es si la base de datos se encuentra en modo ARCHIVELOG).
3

FICHEROS REDO LOG


En los Online Redo logs se almacenan registros de Redo, los cuales estn conformados por vectores de cambio (change vectors), cada uno de estos vectores describe los cambios a un bloque de datos. Todos los registros de tipo redo tiene metadata relevante al cambio, incluyendo:
SCN y la estampa de tiempo del cambio El ID de la transaccin que ha generado el cambio SCN y la estampa de tiempo cuando la transaccin fue cometida (si es que fue cometida) Tipo de operacin que efectu el cambio Nombre y tipo del segmento de dato modificado

FICHEROS REDO LOG

FICHEROS REDO LOG


Los Online Redo Log son usados nicamente en el proceso de la recuperacin de la base de datos. Bsicamente, lo que hay que entender como principio, es que cuando algn DML (insert, update o delete) o un DDL (alter, create, drop) sucede en nuestra base de datos, Oracle registra los cambios en memoria, en un buffer llamado Redo Log Buffer, que con este buffer hay un proceso asociado llamado LGWR
6

FICHEROS REDO LOG


El proceso LGWR de lo que se encarga es de escribir de la estructura de memoria(Redo) Log Buffer a los Online Redo Logs, y muy importante es saber cuales son las circunstancias que hacen que el LGWR escriba al Online Redo Log:
Cuando un usuario hace un commit a la transaccin Cuando sucede un cambio (log switch) de archivo de Redo Log Cuando han pasado tres segundos desde la ultima escritura del LGWR hacia el Online Redo Log Cuando el Redo Log Buffer esta 1/3 lleno o contiene mas de 1Mb de datos en el buffer. Cuando el proceso DBWn necesita escribir datos del Database Buffer Cache hacia disco.
7

FICHEROS REDO LOG


Algoritmo de como es el proceso de recovery
Leer las entradas de tipo Redo Log, empezando con el mas antiguo Verificar el numero SCN del Cambio Buscar el Marcador de Commit. Si el marcador es encontrado, entonces los datos han sido cometidos. Si es encontrado, entonces buscar los cambios en los datafiles (va el numero SCN) Cambios estn reflejados en los datafiles? Si si, entonces brinca Si no, aplicar los cambios a los datafiles (Roll Forward) Si no es encontrado, entonces los datos estn sin cometer, buscar los cambios en los datafiles Cambios estn reflejados en los datafiles? Si no, entonces brinca Si si, entonces hacer un update a los datafiles con los datos antes del cambio (Roll Back)

FICHEROS REDO LOG

FICHEROS REDO LOG (Cont.)


Los ficheros redo log guardan todos los cambios hechos en los datos y permiten volver a aplicarlos en caso de cada de la BD. Los ficheros redo log se organizan en grupos. Una BD requiere al menos dos grupos. Cada fichero redo log dentro de un grupo se llama miembro. La idea es que cada grupo tenga tantos miembros como discos disponemos para mantener las copias de los redo. Lo usual es tener 3 grupos de redo con 2 miembros cada uno.

10

FUNCIONAMIENTO DEL REDO LOG


Los ficheros redo log se usan de manera circular: cuando uno se llena, el LGWR comienza a escribir en el siguiente grupo (log switch), hasta volver al primero. Cuando ocurre un log switch, tambin sucede un checkpoint; y se actualiza el fichero de control. Podemos forzar un log switch o un checkpoint explcitamente con:
ALTER SYSTEM SWITCH LOGFILE; ALTER SYSTEM CHECKPOINT;

El LGWR escribe al hacer commit, o cada 3 segundos, o si el buffer redolog se llena 1/3, y antes de que el DBWR vuelque los cambios de los buffers de datos a los ficheros de la BD.

11

AADIR GRUPOS Y MIEMBROS DE REDO

Aadir grupos al Redo Log Online:


ALTER DATABASE ADD LOGFILE GROUP 3 (<ruta>/redo03a.log, <ruta>/redo03b.log) SIZE 10M;

Aadir miembros Redo Log Online :


ALTER DATABASE ADD LOGFILE MEMBER <ruta>/redo01b.log TO GROUP 1, <ruta>/redo02b.log TO GROUP 2;
12

AADIR GRUPOS Y MIEMBROS DE REDO

13

ELIMINAR GRUPOS Y MIEMBROS DE REDO


Eliminar grupos del Redo Log Online: ALTER DATABASE DROP LOGFILE GROUP 3; No puede haber menos de 2 grupos; no se puede borrar el grupo activo; al borrar un grupo no se eliminan los ficheros del sistema operativo. Eliminar miembros Redo Log Online: ALTER DATABASE DROP LOGFILE MEMBER <ruta>/redo03b.log; No se puede borrar el ltimo miembro que quede de un grupo (y dejarlo vaco); tampoco un miembro del grupo en curso; si la BD est en modo ARCHIVELOG no se puede borrar un miembro cuyo grupo no ha sido archivado; cuando borramos un miembro no se elimina el fichero correspondiente del sistema operativo.

14

CONFIGURACIN DE LOS FICHEROS REDO LOG


Vaciado (por ejemplo si todos los miembros de un grupo estn corruptos): ALTER DATABASE CLEAR [UNARCHIVED] LOGFILE <ruta>/redo02a.log;

Es equivalente a aadir y borrar un fichero redolog.


Mover o renombrar (ojo! la BD debe estar slo montada): !mv <ruta>/redo03a.log <ruta>/redo3a.log (linux) ALTER DATABASE RENAME <ruta>/redo03a.log TO <ruta>/redo3a.log; FILE

15

REUBICAR Y RENOMBRAR REDO LOG MEMBERS


Es recomendable que antes de reubicar tus redo logs, o hacer un cambio estructural a la base de datos la respaldes completamente, ya que se podra tener algn problema en la operacin a realizar. Despus de renombrar o reubicar un set de redo log files debes inmediatamente respaldar los archivos de control de la base de datos. A continuacin se describe el scenario (LINUX):
1: Los redolog files estn localizados sobre dos discos: disk01 y disk02 2: El primer grupo de redo logs consiste de los siguientes miembros: /disk01/logs/log101.log y /disk02/logs/log102.log, y el segundo grupo consiste de los miembros /disk01/logs/log201.log y /disk02/logs/log202.log. 3: Los redolog files localizados sobre el disk01 deben ser reubicados al disk03, y debern reflejar las siguientes rutas: /disk03/logs/log103.log y /disk03/logs/log203.log
16

REUBICAR Y RENOMBRAR REDO LOG MEMBERS


Pasos para renombrar o reubicar los redo logs:
1.- Bajar la base de datos: SHUTDOWN IMMEDIATE 2.- Copiar los redo redo log files a la nueva localizacin utilizando comandos de sistema operativo. 3.- En el caso de Unix o Linux para mover los redo logs a una nueva localizacin ejecutamos el siguiente comando:

mv /disk01/logs/log101.log /disk03/logs/log103.logmv /disk01/logs/log201.log /disk03/logs/log203.log


4.- Levantamos la base de datos en modo MOUNT: STARTUP MOUNT
5.- Utilizando la sentencia ALTER DATABASE con la clusula RENAME FILE renombramos los redo logs:

ALTER DATABASERENAME FILE /disk01/logs/log1a.log, /disk01/logs/log2a.log TO /disk03/logs/log1c.log, /disk03/logs/log2c.log;


6.- Abrimos la base de datos: ALTER DATABASE OPEN;

17

CONFIGURACIN DE LOS FICHEROS REDO LOG (Continuacin)


Configuracin del Redo Log Online:
El nmero de grupos Redo Log Online necesarios, como mnimo ser dos. Es probable que se necesite alguno ms debido a que, al llenarse circularmente, los checkpoints no completen. La configuracin debe ser simtrica: mismo nmero de miembros para todos los grupos. Cada miembro de un grupo debe estar en un disco diferente. Adems hay que separar en diferentes discos los Redo Log Archivados de los Redo Log Online, para reducir la contencin entre el LGWR y el ARCH. El Redo Log Online tambin debera estar en un disco distinto a los ficheros de datos, para reducir la contencin entre LGWR y DBWR.

En las vistas V$LOG, V$LOG_HISTORY y V$LOGFILE estn los detalles del redo.
18

MODO ARCHIVELOG
Por defecto, la BD se crea en modo NOARCHIVELOG (con CREATE DATABASE). Si activamos el modo ARCHIVELOG se irn archivando los ficheros redo conforme se llenan (en cada log switch). LOG_ARCHIVE_START=TRUE, activa archivado automtico. El proceso ARCH ir archivando el grupo redo log lleno, despus de cada log switch, en el directorio indicado por el parmetro LOG_ARCHIVE_DEST (por defecto $ORACLE_HOME/dbs/arch).
Nota. Se puede ver el estado del archivado con el comando archive log list del sqlplus.

Al archivar un fichero redo, en el de control se guarda el nombre del redo archivado, nmero de secuencia, y nmeros SCN ms alto y ms bajo.
19

MODO ARCHIVELOG (Cont.)


El redolog que se ha llenado no puede reutilizarse hasta que ocurra un checkpoint y haya sido copiado por el proceso ARCH. Poner BD en modo ARCHIVELOG: SHUTDOWN, backup (por seguridad), configurar log_archive_dest en el INIT, STARTUP MOUNT, activar archivado (ALTER DATABASE ARCHIVELOG;), abrir BD (ALTER DATABASE OPEN;), parar BD, y hacer backup (pues ha cambiado el fichero de control y la copia anterior ya no nos sirve).
20

VISTAS DEL DD
V$LOG V$LOG_HISTORY V$LOGFILE V$DATABASE

21

Review
http://www.siue.edu/~dbock/cmis565/modul e1-architecture.htm http://www.napolifirewall.com/ORACLE.htm http://databases-la.com/?q=node/46 http://oracleenespanol.blogspot.com/2011/0 3/que-es-un-online-redo-log.html

22

GRACIAS.!
23

También podría gustarte