You are hereCambiar tamaño de redo logs en Oracle

Cambiar tamaño de redo logs en Oracle


By IgnacioRuiz - Posted on 15 November 2008

No hay un procedimiento directo para realizar modificar el tamaño de un redo log, sin embargo es posible creando nuevos grupos con el tamaño deseado y eliminando gradualmente los grupos del tamaño inicial.

Prerequisitos: espacio adicional para albergar los nuevos redo logs mientras no se eliminen los anteriores y si el tamaño es mayor al que poseen actualmente.

Estado inicial

    GROUP#    MEMBERS ARC STATUS
---------- ---------- --- ----------------
         1          1 NO  INACTIVE
         2          1 NO  INACTIVE
         3          1 NO  CURRENT

Los pasos son los siguientes:

1) Crear los nuevos grupos, digamos que mantendremos el numero original de 3

SQL> alter database add logfile group 4 ('/u02/log4.rdo') size 1M;

Database altered.

2) Verificar el resultado, con una consulta a V$LOG

SQL> select group#, members, archived, status from v$log;

    GROUP#    MEMBERS ARC STATUS
---------- ---------- --- ----------------
         1          1 NO  INACTIVE
         2          1 NO  INACTIVE
         3          1 NO  CURRENT
         4          1 YES UNUSED
         5          1 YES UNUSED
         6          1 YES UNUSED

6 rows selected.

3) Forzar el cambio al primer grupo de redo logs recién creado, para eso tenemos que repetir la sentencia presentada a continuación, hasta que el grupo deseado se muestre como CURRENT (Actual).

SQL> alter system switch logfile;

System altered.

4) Si la base de datos esta en modo archive, tenemos que validar o esperar a que los redo logs a borrar hayan sido archivados, nuevamente ejecutamos la sentencia

SQL> select group#, members, archived, status from v$log;

    GROUP#    MEMBERS ARC STATUS
---------- ---------- --- ----------------
         1          1 NO  INACTIVE
         2          1 NO  INACTIVE
         3          1 NO  ACTIVE
         4          1 NO  ACTIVE
         5          1 NO  ACTIVE
         6          1 NO  CURRENT

6 rows selected.

5) En este momento ya podemos eliminar los grupos de redo logs anteriores, a través de la sentencia:

SQL> alter database drop logfile group 1;
Database altered.

Si el archivo redo log esta en status ACTIVE el mensaje de error que obtendras es parecido a este:

alter database drop logfile group 3
*
ERROR at line 1:
ORA-01624: log 3 needed for crash recovery of instance DWHTEAND (thread 1)
ORA-00312: online log 3 thread 1: '/u2/log3.rdo'

Ya para finalizar, los redo log files anteriores que han sido eliminados de la base de datos, requieren ser eliminados manualmente del sistema operativo. Antes de proceder asegurate que realmente el redo log haya sido eliminado de la base de datos, usa la sentencia siguiente, si no lo ves...puedes proceder.

SQL> select group#, members, archived, status from v$log;

Espero les sea de utilidad, Saludos!
Cualquier duda o aportación, por favor dejen su comentario

Si el articulo no satisfizo tus dudas, visita nuestros foros


Visita mi pagina en Oracle Community
Visita mi blog en Blogger
Follow IgnacioRuizMX on Twitter

Suscripcion a Contenido Sindicado(RSS)

Suscribir a Databases Hispamerica por Email



Syndicate

Syndicate content

Follow DatabasesLA on Twitter

Who's online

There are currently 0 users and 9 guests online.

Estadisticas

Locations of visitors to this page

hidden hit counter