Ads 468x60px

domingo, 21 de abril de 2013

Colocar Base De Datos Oracle En Modo Archivelog

oracle modo archivelog


En esta ocasion les voy a explicar como colocar una base de datos Oracle 10g (Asumo que en 11g tambien aplica) en modo Archivelog y NoArchivelog. Para tod@s aquell@s que desconozcan la diferencia entre una o la otra les explico que modo Archivelog hace que Oracle produzca un archivado del grupo de redo logs antes que LGWR los reutilize. Otras de las ventajas de Archivelog es que podemos hacer backup en caliente (o sea puedes hacer backup de la BD sin necesidad de apagarla o colocarla en mantenimiento). Por otro lado en el modo NoArchivelog esta desactivado el archivado constante de los redo logs, tambien en modo NoArchivelog no puedes realizar backups en caliente sino en frio, o sea debes detener o apagar la BD para poder realizar un respaldo de la misma.

COMO SE EN QUE MODO ESTA MI BASE DE DATOS ORACLE?
Simple, los pasos que debes realizar son:

- Ingresar como SYSDBA al motor .
- Luego colocaras la siguiente sentencia:

1.SQL> ARCHIVE LOG LIST
2.<span class="IL_AD" id="IL_AD3">Database</span> log mode   No Archive Mode
3.Automatic archival              Disabled
4.Archive destination           
5.Oldest online log sequence      160
6.Current log sequence            162

En el caso anterior, se muestra que el motor esta en modo NoArchivelog. 

1.SQL> ARCHIVE LOG LIST
2.Database log mode               Archive Mode
3.Automatic archival              Enabled
4.Archive destination             /U03/oradata/PRUEBA01/archive
5.Oldest online log sequence      1
6.Next log sequence to archive    1
7.Current log sequence            1

En el caso expuesto anteriormente el motor en cuestion esta en modo Archivelog.

Lo que queda claro aca, es que para poder ver el modo de tu BD es necesario utilizar la instruccion ARCHIVE LOG LIST . Si tu intencion es poner tu BD en modo Archivelog y asumo estas en entorno Linux o Unix, ya que los ejemplos que expongo aca son realizados en sistemas POSIX compatibles mehhhhhh. Los pasos que haz de seguir son, primeramente asegurarte que el parametro log_archive_dest_1  este inicializado ya que este parametro es donde esta definido en que ruta o directorio es que el sistema guardara los redo logs que se hayan completados. Lo mas recomendable y lo que mas se pone en practica es crear una particion o directorio unico aparte por cada instancia para alli guardar los redo logs.

Ejemplo:
log_archive_dest_1='LOCATION=/U02/app/oracle/PRUEBAXX/archive’

 Tambien tienes que definir el parametro  log_archive_format ya que con este, defines la mascara del nombre del archivo de como se llamaran una vez guardados:

Ejemplo:
log_archive_format='PRUEBAXX_%s.arc'

 Detalle de la Mascara:
PRUEBAXX – Nombre de la base de datos.
%s – Número de secuencia del log.
arc – Extensión que indica que es un archivo de archive (archivado)

MANOS A LA OBRA:

El proceso que debemos realizar ahora,  es preparar el valor de los parametros expuestos anteriormente. (Por si te estabas preguntando donde hay que definirlos) Si estas utilizando el archivo init.ora para inicializar la BD - Por defecto se utiliza el init.ora a no ser que hayas personalizado un spfile para ello - editaremos el archivo init.ora agregando los parametros anteriormente expuestos:

log_archive_dest_1='LOCATION=/U02/app/oracle/PRUEBAXX/archive'
log_archive_format='PRUEBAXX_%s.arc'

Ahora si no estas utilizando init.ora sino un psfile en su lugar , puedes hacer el cambio ingresando por SQLPLUS como usuario SYS o SYSTEM:

SQL> ALTER SYSTEM SET log_archive_dest_1='LOCATION=/U02/app/oracle/PRUEBAXX/archive' SCOPE=SPFILE;
SQL> ALTER SYSTEM SET log_archive_format='PRUEBAXX_%s.arc' SCOPE=SPFILE;

Luego de haber realizado lo anterior, debes apagar el motor de base de datos:

SQL> SHUTDOWN IMMEDIATE;

Luego arrancas nuevamente la BD pero solo en modo MOUNT:

SQL> STARTUP MOUNT;

 Cambiamos la BD desde SQLPLUS a modo Archivelog:

SQL> ALTER DATABASE ARCHIVELOG;

Una vez hecho lo anterior, ya es hora de habilitar completamente la BD asi que la abrimos:

SQL> ALTER DATABASE OPEN;

Y ya, tienes tu BD funcionando en modo Archivelog y dentro de la ruta que indicaste en los parametros veras como comenzara a llenarse de archivitos. 

Si tu intencion es pasar una BD de modo Archivelog a NoArchivelog, se realiza el mismo proceso anterior con la diferencia siguiente:

SQL> SHUTDOWN  IMMEDIATE;
SQL> STARTUP MOUNT;
SQL> ALTER DATABASE NOARCHIVELOG;
SQL> ALTER DATABASE OPEN; 

Espero que lo expuesto anteriormente les sea de utilidad. 

 




 



No hay comentarios:

Publicar un comentario