1. ADMINISTRACIÓN DE ORACLE 11G
Gestión de la recuperación de la base de datos
1Carmen Soler Chorro - http://www.linkedin.com/in/casoch
2. RESTAURAR VS RECUPERAR
Son dos términos que se deben tener claros
cuando se trabaja con Oracle.
RESTAURAR significa sustituir un datafile por
otro que tengo en un backup. Podría ocurrir que
los datos no estuvieran “a la última”.
RECUPERAR significa extraer los últimos
cambios de los redo logs para dejar la base de
datos exactamente como debería estar, sin
ningún desfase de datos.
2Carmen Soler Chorro - http://www.linkedin.com/in/casoch
3. IMPORTANCIA DEL DATA RECOVERY ADVISOR
DRA es una utilidad que nos aconseja sobre cómo diagnosticar y
reparar problemas con la base de datos.
DRA es capaz de generar scripts que reparen los datafiles
dañados e incluso el controlfile.
Sin embargo, no nos avisa de problemas que puedan ocurrir con
los online redo log o con el spfile.
Perder un fichero de la base de datos no es un motivo para
perder datos si se han tomado las precauciones apropiadas:
Multiplexar el controlfile
Multiplexar los online redo log files
Hacer Backups de los controlfile y datafiles
Ejecutar la base de datos en modo archivelog
Dependiendo del tipo de fichero que se haya perdido, tenemos
diferentes técnicas de recuperación.
3Carmen Soler Chorro - http://www.linkedin.com/in/casoch
4. RECUPERAR UN CONTROLFILE PERDIDO
NUNCA debería perderse totalmente un controlfile ya
que siempre debería estar multiplexado, de manera
que si se pierde una copia, siempre tenemos otra.
Si la base de datos no encuentra todas las copias
que existan del controlfile no pasará a estado mount.
Para confirmar que el controlfile está
multiplexado, debemos ejecutar:
SELECT NAME FROM V$CONTROLFILE;
Si sólo aparece un fichero, es que el controlfile no
está multiplexado y debemos corregir esta situación
lo antes posible.
4Carmen Soler Chorro - http://www.linkedin.com/in/casoch
5. PASOS PARA MULTIPLEXAR EL CONTROLFILE
Pasos a seguir:
Shutdown de la base de datos
Copiar el controlfile
Iniciar la base de datos en nomount
Cambiar el parámetro CONTROLFILES incluyendo la
nueva copia
Shutdown de nuevo.
Iniciar en open.
Si en este punto volvemos a ejecutar la consulta anterior, tienen
que salir 2 copias del controlfile.
Necesitamos hacer los shutdowns porque sino la
copia que se hiciera del controlfile no sería válida.
5Carmen Soler Chorro - http://www.linkedin.com/in/casoch
6. ERRORES DE CONTROL FILE
Si no podemos entrar en modo mount
porque no se encuentra 1
controlfile, podemos ver cuál es mirando el
fichero alert_instancename.ora.
Este fichero está en el directorio especificado
por el parámetro BACKGROUND_DUMP_DEST
6Carmen Soler Chorro - http://www.linkedin.com/in/casoch
7. RECUPERAR UN MIEMBRO DE REDO LOG
PERDIDO
Si los online redo log están multiplexados, la pérdida no es un
problema.
Si existe un miembro de cada grupo de online redo log la base de datos
puede seguir funcionando y se puede abrir sin problemas.
Sin embargo, Oracle sí que lo recogerá en su alert log.
Se pueden recuperar redo log no multiplexados o si se han perdido
todos, pero queda fuera del alcance de este curso.
Para confirmar que los redo log funcionan multiplexados, ejecutar:
SELECT * FROM V$LOGFILE
Si vemos que todos los miembros tiene STATUS INVALID, debemos corregir
la situación inmediatamente.
El STATUS STALE sólo significa que el fichero no ha sido utilizado todavía.
Para recuperar los miembros de un grupo de log (por ejemplo, el grupo
3), debemos escribir:
ALTER DATABASE CLEAR LOGFILE GROUP 3;
7Carmen Soler Chorro - http://www.linkedin.com/in/casoch
8. RECUPERAR UN MIEMBRO DE REDO LOG
PERDIDO
Si al hacer un CLEAR, el grupo está ACTIVE
o UNARCHIVED (en archivelog mode), el
CLEAR fallará. Lo arreglaremos con:
ALTER SYSTEM SWITCH LOGFILE;
ALTER SYSTEM CHECKPOINT;
ALTER SYSTEM ARCHIVE LOG ALL;
8Carmen Soler Chorro - http://www.linkedin.com/in/casoch
9. PERDER UN DATAFILE EN MODO NOARCHIVELOG
La única manera de recuperar los datos, es
restaurar la base de datos completa.
Si tenemos un backup de los redo log, los
debemos restaurar también y sino, los
deberemos regenerar al abrir la base de
datos, con este comando:
ALTER DATABASE OPEN RESETLOGS;
9Carmen Soler Chorro - http://www.linkedin.com/in/casoch
10. PERDER UN DATAFILE EN MODO ARCHIVELOG
Podemos recuperar el datafile perdido de la
siguiente manera:
Montamos la base de datos
Ponemos los ficheros dañados a offline.
Abrimos la base de datos.
Restauramos los ficheros perdidos.
Los recuperamos (con los logs)
Pasamos los ficheros a online.
10Carmen Soler Chorro - http://www.linkedin.com/in/casoch
11. HEALTH MONITOR Y ADR
Health Monitor es una herramienta que hace
una serie de comprobaciones automáticamente
cuando se produce un error o, bien, cuando se
lo indica el DBA.
Los resultados de estas comprobaciones se
almacenan en un fichero (no en la base de
datos).
Este fichero está en el directorio especificado
por el parámetro DIAGNOSTIC_DEST
11Carmen Soler Chorro - http://www.linkedin.com/in/casoch
12. HEALTH MONITOR Y ADR
Comprobaciones que puede hacer, dependiendo del
estado de la base de datos:
En nomount:
DB Structure Integrity
Comprueba la integridad de los controlfiles.
En mount:
DB Structure Integrity
Comprueba la integridad de los controlfiles, de los online redo logs y de
las cabeceras de los datafiles.
Redo Integrity Check
Comprueba que los redo log y los archived sean accesibles y no estén
corruptos.
En open:
Comprueba que los bloques no estén corruptos.
Comprueba la integridad del diccionario de datos y de los
segmentos de undo.
12Carmen Soler Chorro - http://www.linkedin.com/in/casoch
13. HEALTH MONITOR Y ADR
Las interfaces que nos permiten interactuar
con el Health Monitor están disponibles en
open:
Podemos trabajar desde SQL*Plus y desde
Database Control.
13Carmen Soler Chorro - http://www.linkedin.com/in/casoch
14. LIMITACIONES DE DRA
El DRA (Data Recovery Advisor), para que
funcione, la base de datos debe estar al
menos en nomount.
Según el estado de la base de datos, puede
hacer más operaciones o menos.
Sólo funciona para bases de datos de una
sola instancia.
14Carmen Soler Chorro - http://www.linkedin.com/in/casoch
15. TALLER 1
Utilizar DRA para diagnosticar problemas.
Carmen Soler Chorro - http://www.linkedin.com/in/casoch 15
16. UTILIZAR DRA PARA HACER RECUPERACIONES.
El DRA (Data Recovery Advisor) utiliza la información
de el Health Monitor para encontrar problemas y
contruye scrips de RMAN que permiten repararlos.
DRA funciona en estas fases:
Valora los errores de datos
Los errores que le envía el Health Monitor.
Lista errores
Lista los errores clasificándolos según su importancia.
Aconseja una reparación
Genera scripts de RMAN que permiten reparar los errores.
Ejecuta los scripts
Los scripts que llevan a cabo la recuperación.
16Carmen Soler Chorro - http://www.linkedin.com/in/casoch
17. TALLER 2
Arreglando un error a partir de DRA.
Carmen Soler Chorro - http://www.linkedin.com/in/casoch 17