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
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
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
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
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
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
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
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
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
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
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
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
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
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
TALLER 1
Utilizar DRA para diagnosticar problemas.
Carmen Soler Chorro - http://www.linkedin.com/in/casoch 15
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
TALLER 2
Arreglando un error a partir de DRA.
Carmen Soler Chorro - http://www.linkedin.com/in/casoch 17

Recuperación de la base de datos en Oracle

  • 1.
    ADMINISTRACIÓN DE ORACLE11G 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 DATARECOVERY 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 CONTROLFILEPERDIDO  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 MULTIPLEXAREL 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 CONTROLFILE  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 MIEMBRODE 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 MIEMBRODE 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 DATAFILEEN 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 DATAFILEEN 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 YADR  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 YADR  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 YADR  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 DRApara diagnosticar problemas. Carmen Soler Chorro - http://www.linkedin.com/in/casoch 15
  • 16.
    UTILIZAR DRA PARAHACER 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 unerror a partir de DRA. Carmen Soler Chorro - http://www.linkedin.com/in/casoch 17