Recuperar y restaurar Backup full
Rman + ArchiveLogs + RedoLogs en un
nuevo servidor
Este ejercicio es una buena práctica para saber qué hacer si
nuestra base de datos sufre una pérdida completa, por ejemplo si se rompe el
disco. O simplemente para verificar que nuestros backups funcionen
correctamente.
Para este ejemplo necesitamos instalar una base de datos 11g
en un entorno que tenga las estructuras físicas iguales al entorno origen
(producción)
Tener en cuenta las ubicaciones donde se guardan los
archivos generados por rman, donde se guardan los archivelogs y donde se
encuentran los redologs.
En mi caso, son las siguientes ubicaciones
/mnt/orabackup/rman
/mnt/orabackup/archivelog
/u01/app/oracle/oradata/oradb
Recomiendo que tanto los redologs como los archivelogs los tengan multiplexados
en dos ubicaciones en discos físicamente separados (en producción).
Asumimos que nuestro
script de rman que genera nuestros backups tenga la opción CONTROLFILE AUTOBACKUP en ON
(CONTROLFILE AUTOBACKUP ON)
1. Bajamos la base
sqlplus / as sysdba
shutdown abort;
exit
2.
Copiar los backups, archivelog y redologs desde producción al nuevo servidor.
·
Posicionarse en la carpeta donde se guardan los
backps y ejecutar el comando
rsync -aHAXxv -e "ssh -T -c arcfour -o Compression=no -x" *
oracle@172.16.xxx.xxx:/mnt/orabackup/rman
·
Posicionarse en la carpeta donde se guardan los
archivelog y ejecutar el comando
rsync -aHAXxv -e "ssh -T -c arcfour -o Compression=no -x" *
oracle@172.16.xxx.xxx:/mnt/orabackup/archivelog
·
Posicionarse en la carpeta donde se
encuentran los redologs
rsync -aHAXxv -e "ssh -T -c arcfour -o Compression=no -x" redo*
oracle@172.16.xxx.xxx:/u01/app/oracle/oradata/oradb
Este
comando realiza un sincronizado de la carpeta origen con la destino. Asegurarse
de que el usuario con el cual nos conectamos al servidor destino sea Oracle.
3. Borramos los
datafiles ya que vamos a recuperar todo desde cero
rm /u01/app/oracle/oradata/oradb/*
4. Restauramos el
spfile en un pfile
rman target=/ nocatalog
set dbid=2616181252;
startup nomount;
run
{
restore spfile to pfile '/mnt/orabackup/initORADB.ora'
from '/mnt/orabackup/rman/c-2616181252-20161013-00';
shutdown abort;
}
Exit
El número
de dbid lo podemos obtener del backup que se genera cuando configuramos CONTROLFILE
AUTOBACKUP ON. Por ejemplo mi achivo se llama c-2616181252-20161013-00,
en donde el dbid son los 10 primeros números.También lo podemos obtener con la siguiente consulta (en el servidor origen)
SELECT DBID FROM V$DATABASE;
5. Levantamos la base
con el pfile creado y restauramos el controfile del backup
rman target=/ nocatalog
set dbid=2616181252;
run {
startup force nomount pfile = '/mnt/orabackup/initORADB.ora';
allocate channel disk1 type disk FORMAT '/mnt/orabackup/rman/U%';
restore controlfile from '/mnt/orabackup/rman/c-2616181251-20161013-00';
alter database mount;
}
exit
6. Realizamos la
restauración y recuperación
rman nocatalog target=/ log=/mnt/orabackup/restaura.rman.log
set dbid=2616181252;
run {
allocate channel disk1 type disk FORMAT '/mnt/orabackup/rman/U%';
restore database;
recover database;
}
Exit
7. Abrimos la base en
noarchivelog y resetlog
sqlplus / as sysdba
alter database open resetlogs;
8. Enjoy
No hay comentarios:
Publicar un comentario