Este un blog que cambio de rumbo... antes era relacionado a "n" temas ahora será exclusivo para detallar todo lo que pude aprender en Oracle =)

martes, 8 de mayo de 2012

MODO ARCHIVE Y MODO NO ARCHIVE

Nuestra base de datos en ORACLE puede correr de dos maneras diferentes en modo NOARCHIVE(default) y modo ARCHIVE. En el modo NOARCHIVE que es el menos recomendado los online redologs son sobreescritos y no son backupeados , en el caso del modo ARCHIVE todos los redo logs una vez llenos son backupeados a través del background process ARCn  tomando el nombre de "archive redo logs" los cuales serán depositados en uno o mas ubicaciones del servidor, esto dependerá del valor de los parámetros LOG_ARCHIVE_DEST_1, LOG_ARCHIVE_DEST_2, ..., LOG_ARCHIVE_DEST_n .

Al tener la base de datos en modo NOARCHIVE nos limitamos a tener que bajar la base de datos para poder backupearla, sin embargo en el caso de tenerla en modo ARCHIVE podemos backupearla online mientras nuestros usuarios están trabajando.

Otra desventaja del tener la base de datos en modo NOARCHIVE es que solo podremos recuperar la base de datos hasta el momento en que el último backup fue realizado , en el caso de tenerla en modo ARCHIVE podemos recuperar hasta la última transacción comiteada.

Para verificar si tu base de datos está en modo archive o no, ejecuta el siguiente query:

select LOG_MODE from v$database;


LOG_MODE
-----------
NOARCHIVELOG


* PASOS PARA CONFIGURAR TU BASE DE DATOS A MODO ARCHIVE:

Verificar que los siguientes parámetro estén seteados correctamente:


SQL> show parameter log_archive_dest_1


SQL> Alter system set log_archive_dest_1='location=/bk_archive_1/';




-- El siguiente parámetro no es dinámico por eso se utiliza "scope=spfile"


SQL> Alter system set log_archive_format='orcl_%r_%t_%s.arc' scope=spfile;


Una vez verificado estos parámetros podemos proceder a cambiar la BD a modo Archive


[oracle@pc dbs]$ sqlplus / as sysdba
SQL>shutdown immediate
SQL>startup mount
SQL> alter database archivelog;
SQL> alter database open;



Si deseas retornar tu base de datos a modo NOARCHIVE, deberás ejecutar el siguiente comando:


[oracle@pc dbs]$ sqlplus / as sysdba

 SQL>shutdown immediate
 SQL> startup mount
 SQL> alter database noarchivelog;

alter database noarchivelog
*
ERROR at line 1:
ORA-38774: cannot disable media recovery - flashback database is enabled
(Si como en mi caso te sale este error es porque tu bd estuvo previamente en modo archive y tenías habilitado el flashback database)

Entonces debes ejecutar el siguiente  query para desactivar el flashback
SQL> alter database flashback off;
Database altered.

-- Y luego
SQL> alter database noarchivelog;
Database altered.

Para probar que has realizado correctamente la configuración , realiza el sgte. comando:

SQL> alter system switch logfile;


Listo!





No hay comentarios.: