Академический Документы
Профессиональный Документы
Культура Документы
INSTRUCTOR
JONATHAN QUICENO VARGAS
INGENIERO DE SISTEMAS Y COMPUTACIN
Cmo funciona el modo ARCHIVELOG en Oracle Oracle escribe en los archivos de registros de
reconstruccin en lnea (redo log online) de manera cclica, cuando los usuarios realizan
modificaciones en la base de datos, Oracle guarda todas las transacciones que se van realizando en
estos archivos de redo log online. Empieza a escribir en el primer archivo de redo log online, cuando
se llena pasa al segundo, y as sucesivamente hasta llegar al ltimo archivo de redo log online,
cuando llena el ltimo inicia un proceso en segundo plano llamado LGWR (Log Writer) para
sobreescribir los contenidos del primer archivo de redo log online y volver a empezar. Cuando Oracle
se ejecuta en modo ARCHIVELOG el proceso en segundo plano llamado ARCH hace una copia de
cada archivo de redo log online una vez que el proceso LGWR termina de escribir en l, guarda dicha
copia en los archivos de reconstruccin fuera de lnea (redo log offline) en disco:
Se podrn realizar copias de seguridad fsicas online, copias de los ficheros fsicos sin detener la
base de datos.
Se podr recuperar la base de datos en un momento especfico del tiempo, se podr recuperar la
base de datos a una hora y da indicados.
La nica desventaja es que este modo puede ralentizar (mnimamente) la base de datos y requiere
de ms espacio en disco para alojar los redo log offline (archivos de reconstruccin fuera de lnea).
En realidad Oracle implement este modo de ARCHIVELOG cuando los discos duros eran ms
susceptibles de fallar. Hoy en da con los discos duros profesionales de que disponemos en niveles
de RAID adecuados es bastante difcil que ocurran fallos, aunque no es imposible. Adems, este
modo, como ya hemos comentado, tiene varias ventajas por las que merece la pena usarlo.
A continuacin indicamos algunas recomendaciones para disponer de una base de datos robusta,
con un alto grado de disponibilidad y de proteccin ante fallos (tanto humanos como fsicos de
hardware):
2. Debemos tener los archivos de redo log online (archivos de registro de reconstruccin en lnea)
multiplexados. Oracle permite establecer varios archivos de redo log online en varias ubicaciones
diferentes. Recomendamos que haya varios archivos de redo log online en discos fsicos diferentes.
De esta forma, si un disco fsico falla, siempre habr una copia con las ltimas transacciones en otro
disco fsico, as podremos recuperar la base de datos en un momento del tiempo.
3. Debe hacerse copia de seguridad (a ser posible con RMAN) de los archivos de redo log offline
(archivos de registro de reconstruccin fuera de lnea), generados por Oracle cuando se van
llenando los redo log online. Adems, esta copia de seguridad debe hacerse a varios dispositivos
(cinta, disco). RMAN contempla, entre sus muchas opciones, la posibilidad de hacer copia de
seguridad de estos archivos y del resto que componen la base de datos, eliminndolos de forma
automtica si la copia se ha realizado con xito. De esta forma la unidad de disco destino de los redo
log offline no se llenar, pues se irn eliminando los archivos conforme se vaya haciendo copia de
seguridad de ellos.
4. Tras explicar el funcionamiento del ARCHIVELOG, volvemos a repetir que es muy importante que
todos los archivos que componen la base de datos de Oracle (datafiles de los tablespaces, los
archivos de control, los redo log offline, los redo log online) estn ubicados en discos duros
profesionales en un nivel de RAID adecuado tolerante a fallos.
Antes de activar el modo ARCHIVELOG de una base de datos Oracle, lo que haremos en primer lugar
es verificar el estado actual, para asegurarnos de que, efectivamente, el modo ARCHIVELOG no est
activado. Para comprobarlo abriremos SQL*Plus desde una ventana de MS-DOS (si estamos en
Windows) o una ventana de Terminal (si estamos en Linux), para ello ejecutamos el siguiente
comando:
sqlplus /nolog
Nos conectamos a la base de datos con un usuario con permisos de DBA con el comando:
conn sys/contrasea as sysdba
Ejecutamos el siguiente comando Oracle para comprobar si la base de datos est o no en modo
ARCHIVELOG:
El resultado del comando anterior en caso de que el ARCHIVELOG no est activo es:
sqlplus /nolog
Conectado.
Tras asegurarnos de que la base de datos no est en modo ARCHIVELOG, como hemos indicado
anteriormente, ahora ejecutaremos el siguiente comando para indicar la carpeta de destino de los
redo log offline:
Ahora, para que se apliquen los cambios y para establecer la base de datos en modo ARCHIVELOG
definitivamente, deberemos detener la base de datos para iniciarla en modo "mount" (montada).
Por ello, si nuestra base de datos requiere un alto grdo de disponibilidad y hay usuarios conectados
deberemos hacerlo en un momento del da en que el impacto sea menor. El proceso es rpido por
lo que la base de datos estar detenida un minuto a lo sumo. Para detener la base de datos
ejecutaremos:
shutdown immediate
Sistema modificado.
shutdown immediate
startup mount;
Ejecutamos el siguiente comando para indicar a Oracle que la base de datos se iniciar a partir de
ahora en modo ARCHIVELOG:
A partir de ahora nuestra base de datos ya estar en modo ARCHIVELOG. Podremos comprobarlo
(como ya hemos indicado) con el comando:
Y la sentencia SQL:
startup mount;
Modo de Archivado
LOG_MODE
------------
ARCHIVELOG
Si queremos forzar a Oracle a que escriba los redo log online en los redo log offline podemos
ejecutar el comando:
Este comando podremos ejecutarlo para forzar el copiado, para comprobar que el ARCHIVELOG
est funcionando o cuando queremos realizar algn cambio hardware o software que suponga
algn "peligro" para los datos, en estos casos forzaremos un copiado de los redo log online a los
redo log offline y haremos copia de seguridad. Por supuesto, Oracle realiza el copiado de forma
automtica cada vez que un redo log online se llena, como ya hemos indicado, por lo que este
comando no deberemos usarlo salvo en circunstancias especficas.
Hemos ejecutado tres veces el comando alter system switch logfile; como ejemplo y Oracle habr
creado tres ficheros de redo log offline en la carpeta de destino:
Nota: no debemos usar "alter system set log_archive_start = TRUE scope = spfile;", este parmetro
ha quedado obsoleto a partir de la versin 10g de Oracle, ya no es necesario.