miércoles, 25 de abril de 2012

Un buen truco para evitar el error ORA-00257

Me he topado con varios sistemas que siguen usando LOG_ARCHIVE_DEST y no LOG_ARCHIVE_DEST_n. Aqui un pequeño truco que te motivara a hacer este cambio y evitar que cuando se llene tu destino para archivar tus Online Redo Logs tu base de datos se cuelgue.

TESTDB >ALTER SYSTEM SET "LOG_ARCHIVE_DEST_1"='LOCATION=/mount/arch01/oracle/TESTDB MANDATORY MAX_FAILURE=1 NOREOPEN ALTERNATE=LOG_ARCHIVE_DEST_2' scope=both;

System altered.

TESTDB >ALTER SYSTEM SET "LOG_ARCHIVE_DEST_STATE_1"=ENABLE scope=both;

System altered.

TESTDB >ALTER SYSTEM SET "LOG_ARCHIVE_DEST_2"='LOCATION=/mount/arch02/oracle/TESTDB MANDATORY' scope=both;

System altered.

TESTDB >ALTER SYSTEM SET "LOG_ARCHIVE_DEST_STATE_2"=ALTERNATE scope=both;

System altered.


Cuando se llena el primer destino, el segundo destino es el que se habilita con la configuración de arriba, evitando que la Base de Datos se cuelgue debido a que ya no tiene donde archivar los Online Redo Logs.

Una vez el destino 2 sea el que esta habilitado y que hayas solucionado el problema de espacio en el primer destino, ya nada mas tienes que revertirlo y tener la configuración que tenias antes de que se llenara el espacio en el primer destino.

TESTDB >ALTER SYSTEM SET "LOG_ARCHIVE_DEST_STATE_1"=ENABLE scope=both;

System altered.

TESTDB >ALTER SYSTEM SET "LOG_ARCHIVE_DEST_STATE_2"=ALTERNATE scope=both;

System altered.