Lo primero será para la base de datos y montarla, para poder trabajar sobre ella.
SQL> SHUTDOWN IMMEDIATE Database closed. Database dismounted. ORACLE instance shut down.
SQL> STARTUP MOUNT ORACLE instance started. Total System Global Area 167772160 bytes Fixed Size 787968 bytes Variable Size 61864448 bytes Database Buffers 104857600 bytes Redo Buffers 262144 bytes Database mounted.
Una vez hecho esto, solo tendremos que lanzar la sentencia de renombrado de los logfiles y abrir la base de datos.
SQL> ALTER DATABASE RENAME FILE '/oracle/SID/mirrlogA/log_g11m1.dbf' TO '/oracle/SID/mirrlogA/log_g11m2.dbf'; Database altered. SQL> ALTER DATABASE OPEN; Database altered.
Como ya he comentado antes, esto se puede utilizar si lo que quieres es renombrar o mover un datafile.
Si lo que queremos es redimensionar un logfile procederemos de la siguiente manera.
Lo primero sera ver cual es el logfile activo, puesto que ese no prodemos borrarlo para recrearlo.
SQL> connect / as sysdba SQL> select group#, bytes, status from v$log; GROUP# BYTES STATUS ---------- ---------- ---------------- 1 200428800 INACTIVE 2 200428800 CURRENT 3 200428800 INACTIVE
Como se ve en la sentencia, podremos borrar el grupo 1 y 3, puesto que el 2 esta en uso, así procederemos a trabajar con esos grupos y luego moveremos los logfile para dejar el 2 en INACTIVE.
SQL> alter database drop logfile group 1; SQL> alter database add logfile group 1('/oracle/SID/origlogB/log_g14m1.dbf','/oracle/SID/mirrlogB/log_g14m2.dbf') size 50M reuse;
Este paso lo haremos con todos los logfile que tengamos. Borrando y recreando los distintos grupos. Cuando lleguemos al que esta activo, lo que haremos sera moverlo con alter system switch logfile; (lanzarlo varias veces y veréis que se va moviendo el CURRENT) y comprobar que esta en estado inactivo para poder trabajar con él.
SQL>ALTER SYSTEM SWITCH LOGFILE; System altered. SQL> select group#, bytes, status from v$log; GROUP# BYTES STATUS ---------- ---------- ---------------- 1 52428800 CURRENT 2 200428800 INACTIVE 3 52428800 INACTIVE
Una vez que apliquemos los pasos anteriores con este grupo, comprobaremos de nuevo que el tamaño fue cambiado en todos los logfiles.
SQL> select group#, bytes, status from v$log; GROUP# BYTES STATUS ---------- ---------- ---------------- 1 52428800 CURRENT 2 52428800 INACTIVE 3 52428800 INACTIVE
Si queremos ver la ubicacion de los logfiles, lo haremos con la siguiente sentencia
SQL> select group#, member from v$logfile;