Llenado de filesystem archives
Operativa en caso de llenado de filesystem archives.
El primer problema que se nos plantea es que si en el filesystem de archives se ha llenado completamente no vamos a poder entrar en la BBDD para cambiar el destino de los archives, por lo que no tendremos mas remedio que mover alguno de los archives a algún filesystem alternativo que tenga espacio o bien comprimir alguno (mas lento).
Con esta orden en nuestro shell, sacaremos la ocupación de todos los filesystems del sistema y podremos ver cual está al 100%
df -k
para ver el destino actual de los archives (siempre y cuando tengamos un fichero init y no spfile):
en el shell, hacer:
cd $ORACLE_HOME/dbs cat init${ORACLE_SID}.ora cat init${ORACLE_SID}.ora | grep log_archive
con la última orden nos debería salir algo como esto:
log_archive_start = true log_archive_dest = /aplicaciones/oracle/archives log_archive_format = "%TS%S.ARC"
Una vez que sabemos el destino de los archives tenemos que ir al directorio y mover alguno para que el filesystem baje un poco de ocupación y podamos entrar a la BBDD...
df -k . -->;nos da la ocupación del filesystem actual.
Una vez que la ocupación del filesystem de archives < 100% entramos en la BBDD y hacemos:
ALTER SYSTEM LOG ARCHIVE START TO '/nueva_ruta_archives';
Ahora la BBDD ya está levantada y funcionando correctamente, deberíamos lanzar un backup de archives de la BBDD y previamente mover los archives que hemos movido con los comandos del sistema operativo en el sitio original, porque sino al hacer el backup fallará con un mensaje similar a éste:
RMAN-03002: failure of backup plus archivelog command at 02/07/2012 02:40:28 RMAN-06059: expected archived log not found, loss of archived log compromises recoverability
Si no podemos devolver los archives al sitio original, podemos hacer lo siguiente: Como hemos movido archives del filesystem original a otro directorio sin registrarlo en la BBDD, debemos iniciar el rman así:
rman target / nocatalog--> No tenemos catálogo
rman target / catalog rman/passwd--> Si tenemos catálogo
y hacemos dentro de rman un:
crosscheck archivelog all; Esto elimina del catálogo / controlfile todos los archives que no se encuentren en la ruta original.
Lanzamos el backup y una vez que haya vaciado el filesystem de archives debemos mover con un cp del sistema operativo los archives y luego registrar en el catálogo los archives movidos (previamente los hemos borrado con el crosscheck archivelog all;)
para registar los archives podemos hacer:
SQL> alter database register logfile '/var/arch/arch_1_101.arc';
Comentarios
Publicar un comentario