O slideshow foi denunciado.

Recuperación de la base de datos en Oracle

8.520 visualizações

Publicada em

Gestión de la recuperación de la base de datos en Oracle 11g R2

Publicada em: Educação
  • Seja o primeiro a comentar

Recuperación de la base de datos en Oracle

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

×