GENERALIDADES DEL
DATAR RECOVERY ADVISOR.
El
Data Recovery Advisor (DRA) es una instalación para diagnostico y reparación de
problemas con una Base de Datos. Hay dos interfaces: el ejecutable RMAN y
Enterprise Manager. El DRA es capaz de
generar script para reparar daños a DataFiles y (en algunas circunstancias) ControlFile:
no asesora problemas con spfile o con online redo log files. Depende del
Automatic Diagnostic Repository (ADR) y el Health Monitor. La información que
reúne el Health Monitor y el consejo del DRA da a seguir el mismo diagnostico y
método de reparación que el DBA seguirá sin ellos-pero hacen el proceso más
rápido y menos propenso a error.
La perdida de Archivos de Bases de Datos no es razón para perder datos-siempre que las precauciones apropiadas han sido tomadas:
·
Multiplexar
los ControlFiles.
·
Multiplexar
los Online Redo Log Files.
·
Backup
a ControlFiles y los DataFiles.
·
Ejecutando
la Base de Datos en Modo archivelog
Dependiendo el tipo
de archivo que se pierde, hay diferentes técnicas para la recuperación.
RECUPERACION DE LA
PÉRDIDA DEL CONTROLFILE.
Un
punto a enfatizar es que el ControlFile nunca debe ser completamente perdido: debe
ser multiplexado, de modo que si una copia de este es perdido, otra copia
todavía estará disponible. Si una copia de ControlFile está dañada. La
instancia de Base de Datos inmediatamente abortará. Si usted intenta iniciarla, la instancia ira a modo NOMOUNT
pero se detendrá ahí: no va a montar la Base de Datos a menos que todas las
copias del ControlFile, según lo especificado por el parámetro de instancia
CONTROL_FILES, son validos.
EXAMEN
El daño a cualquier copia de
ControlFile abortará la instancia inmediatamente. No será posible montar la
Base de Datos hasta que el problema ha sido resuelto.
Para confirmar que el ControlFile
está multiplexado, cuando en modo MOUNT u OPEN emita esta consulta:
select name from v$controlfile;
El
cual listara todas las copias de los ControlFiles. Si esta consulta regresa
solo un registro, el ControlFile no está multiplexado. Corregir esta situación
durante el próximo periodo de
inactividad programado, y si no está programado el tiempo de inactividad, debe
programar un periodo pronto como sea posible. El proceso es:
·
Shutdown
a la Base de Datos.
·
Copie
el ControlFile.
·
Inicie
la instancia en modo NOMOUNT.
·
Cambie
el parámetro CONTROLFILES para incluir la nueva copia.
·
Shutdown
nuevamente.
·
Inicie
la Base de Datos en modo OPEN.
Ejecute la consulta dada previamente ahora listara ambas copias. La necesidad de un Shutdown es obtener unacopia consistente del ControlFile. Si fueron copiados cuando la Base de Datos estaña OPEN o MOUNT, la copia no sería válida.
Si el inicio se detiene en modo NOMOUNT porque la Base de Datos no puede ser montada, determine que copia de ControlFiles, busque con esta consulta.
Ejecute la consulta dada previamente ahora listara ambas copias. La necesidad de un Shutdown es obtener unacopia consistente del ControlFile. Si fueron copiados cuando la Base de Datos estaña OPEN o MOUNT, la copia no sería válida.
Si el inicio se detiene en modo NOMOUNT porque la Base de Datos no puede ser montada, determine que copia de ControlFiles, busque con esta consulta.
select value from v$parameter where
name='control_files';
Para saber que copia está
dañada o perdida, busque en el Alert Log. Este es el archivo
alert_instancename.ora en el directorio señalado por el parámetro
BACKGROUND_DUMP_DEST. Las ultimas líneas será algo como esto:
ALTER DATABASE MOUNT
ORA-00210: cannot open
the specified control file
ORA-00202: control
file: 'D:\APP\ORACLE\ORADATA\ORCL11G\CONTROL02.CTL'
ORA-27041: unable to
open file
OSD-04002: unable to open file
O/S-Error: (OS 2) The system cannot find the file
specified.
Mon Fe:b 18 09:01:10 2008
Checker run found 1 new persistent data failures
ORA-205 signalled
during: ALTER DATABASE MOUNT...
Para reparar el daño, copia un archivo
sobreviviente (uno de los archives listado en la consulta contra V$PARAMETER) sobre
el archivo dañado (el archivo mencionado en el Alert Log).
EN EL TRABAJO
Este método de recuperación, aunque
es manual, es generalmente el más rápido. Pero estar absolutamente seguro de que no
accidentalmente copie el archivo dañado sobre el bueno. No te rías. Es muy fácil cometer un error como ese, sobre todo cuando se
trabaja a toda prisa.
RECUPERACION DE LA
PERDIDA DE UN ONLINE REDO LOG FILE MEMBER.
Si su Online Redo Log File Groups
son multiplexados, la pérdida de un solo miembro no es un problema. Mientras
haya al menos un miembro valido de cada Online Redo Log File Group, la Base de
Datos continuará ejecutándose, y si se apaga, se abrirá sin problemas. Pero
Oracle no estará feliz: habrá muchos mensajes escritos en el Alert Log.
EN EL TRABAJO
Un Redo Log File Member perdido no
será reportado por el Server Alert System.
La situación donde todos los
miembros de un grupo son perdidos ( en cuyo caso la instancia abortará y no se
puede abrir) esta mas allá del alcance del primer examen.
Para confirmar si el Online Redo Log
File Members está multiplexados y para ver el status de cada archivo, ejecute
esta consulta:
select * from v$logfile;
Si cualquier miembro tiene un STATUS
de INVALID, usted debe tomar medidas inmediatas para corregir la situación. El
status STALE puede ser reportado-esto no es un problema; solo muestra que el
archivo no se ha usado todavía. Para reparar un miembro dañado, la técnica más
simple es utilizar el comando CLEAR. Este instruirá a Oracle a Eliminar y
Recrear todos los miembros del Log File Group 3:
alter database clear logfile group 3;
Si el Log File Group es actual, activo, o (en
modo archivelog) unarchived, el CLEAR fallará con un mensaje de error
apropiado. Este comando solucionará estas
cuestiones:
alter system switch logfile;
alter system checkpoint;
alter system archive log all;
EXAMEN
El daño a un miembro Online Redo Log
File no hará que la instancia aborte o evitar la apertura de la Base de Datos,
siempre y cuando haya al menos un miembro en funcionamiento por cada grupo.
PERDIDA DE CUALQUIER
DATAFILE EN MODO NOARCHIVELOG
En modo NOARCHIVELOG, no puede haber
concepto de recuperación: El Redo es necesario para traer un Backup restaurado
hacia adelante en el tiempo no está disponible. No es posible abrir una Base de
Datos con un DataFile que esta fuera de fecha. Si lo fuera, la integridad del
Sistema se vería comprometida. Si cualquier archivo está dañado, las únicas
opciones son instruir a Oracle nunca a buscar el archivo otra vez para eliminar
el Tablespace del cual es parte, o restaurar la Base de Datos completamente: el
conjunto completo de DataFiles y los ControlFiles desde el último Backup. Si
usted tiene el Online Redo Log Files así (que por lo general tienen si está haciendo copias de
seguridad gestionados por el usuario) restaurar estos también y
abra la Base de Datos. Si usted no tiene Backups de Online Redo Log Files,
vuelva a crear mediante la apertura de la Base de Datos con este comando:
alter database open
resetlogs;
PERDIDA DE UN
DATAFILE EN MODO ARCHIVELOG
Los DataFiles que conforman los
Tablespace SYSTEM y UNDO son críticos. Si alguno de estos es dañado mientras la
Base de Datos está abierta, abortará. Los otros DataFiles son no críticos: La
Base de Datos los tomará fuera de línea automáticamente, y la Base de Datos se
mantendrá abierta. Si la Base de Dato se cierra, si el DataFile Dañado o
perdido es crítico no será posible abrir la Base de Datos hasta que se haya
restaurado y recuperado. Si el DataFile es no crítico, debe ser tomado fuera de
línea manualmente antes de que la Base de Datos pueda ser abierta, y entonces
puede ser restaurado y recuperado mientras las Base de Datos es abierta.
Durante el periodo que la Base de Datos es abierta pero un archivo no crítico es fuera de línea, las aplicaciones pueden comportarse de maneras inesperadas. Cualquier índice con Extents en el archivo fuera de línea será inutilizable, cual puede conducir a una degradación del rendimiento y también bloqueos a tablas por la imposibilidad de comprobar restricciones. Cualquier tabla con Extents en el archivo fuera de línea será inutilizable, aunque las consultas que se pueden satisfacer con columnas incluidas en los índices pueden todavía trabajar.
Para el diagnostico daño a DataFiles, ejecute esta consulta en modo MOUNT o OPEN.
select name,online_status,error from
v$datafile join v$recover_file using (file#);
Si la Base de Datos esta abajo, los pasos
para reparar un DataFile dañado no critico son:
·
Montar
la base de Datos (MOUNT).
·
Tomar
los archivos dañados fuera de línea.
·
Abrir
la Base de Datos (OPEN).
·
Restaurar
los archivos dañados (RESTORE).
·
Recuperarlos
(RECOVER).
·
Traer
los archivos dañado online.
El paso 3 debe ser pospuesto hasta el final
si no te importa el periodo de tiempo de inactividad. Si la Base de Datos es abierta,
solo los últimos tres pasos son necesarios.
Daño a un DataFile crítico solo puede ser
reparado en modo MOUNT, por lo que hay cuatro pasos:
·
Montar
la Base de Datos (MOUNT).
·
Restaurar
el Archivo Dañado (RESTORE).
·
Recuperarlo
(RECOVER).
·
Abrir
la Base de Datos.
EXAMEN
Abrir una Base de Datos es posible a
partir de daños causados a cualquier DataFiles
que no pertenecen al Tablespace SYSTEM o UNDO.
EL HEALTH MONITOR Y
EL ADR
El Health Monitor es un conjunto de
comprobaciones que se ejecutan automáticamente cuando se presentan ciertas
condiciones de error, o manualmente en respuesta a instrucciones del DBA. Los
resultados de las comprobaciones no son almacenadas en la Base de Datos, sino
en el Sistema de Archivos. Esto es porque la naturaleza de algunos errores es
tal que la Base de Datos no está disponible. Es por lo tanto esencial tener un
repositorio externo para los resultados del Health Monitor. Este repositorio es
el ADR, que se encuentra en el directorio especificado por el parámetro de
instancia DIAGNOSTIC_DEST.
Diferentes comprobaciones del Health
Monitor pueden ejecutarse en varias etapas:
·
En
modo NOMOUNT, solo la comprobación “DB Structure Integrity” puede ejecutarse, y
puede únicamente comprobar la integridad del ControlFiles.
·
En
modo MOUNT, la comprobación “DB Structure Integrity” comprobará la integridad de los ControlFiles,
y de los Online Redo Log File y los DataFile Headers. El “Redo Integrity Check”
puede también ejecutarse, que comprobará los Online y Archive Log Files por la accesibilidad y
corrupción.
·
En
modo OPEN, es posible ejecutar comprobaciones
que escanearan cada Data Block por corrupción, y comprobara la
integridad del Diccionario de Datos y los Segmentos UNDO.
Las interfaces que permitirán la ejecución manual de comprobaciones del Health Monitor están disponibles solo cuando la Base de Datos está abierta (OPEN). Hay dos interfaces: utilizando SQL*PLUS para invocar procedimientos del paquete PL/SQL DBMS_HM, y el Database Control. La figura 17-1 muestra la interfaz Database Control. Para alcanzar esta ventana desde la pagina principal del Database Control, tome el Link Advisor Central en la sección de enlaces relacionados, y luego la ficha Checkers.
Desde la ventana mostrada en la figura 17-1, usted puede ver los resultados de todas las ejecuciones de Health Monitor (se ejecutan en respuesta a errores y ejecuciones manuales) y también ejecutar comprobaciones en demanda.
LAS CAPACIDADES Y
LIMITACIONES DEL DRA.
El DRA no puede hacer nada a menos
que la instancia este en el Modo NOMOUNT o más. Viene que no puede ayudar si
hay un problema con el archivo de inicialización. En modo NOMOUNT, puede
diagnosticar problemas con el ControlFile y generar script para restaurar, ya
sea mediante el uso de una copia valida o (si no está disponible) mediante la
extracción de una copia desde un conjunto de Backup – lo proporciono para
encontrar uno. Una vez que la Base de Datos puede llegar a modo MOUNT, el DRA
puede diagnosticar problemas con la falta o daño a DataFiles y falta de Online
Log File Groups y generar script para reparar.
El DRA (en la actual versión) solo soporta Bases de Datos de single-instance. Si un fallo trae abajo una Base de Datos RAC, usted puede montar en modo Single-Instance, utilizar el DRA para reparar el daño, y luego apagarlo y abrirlo en modo RAC. Esta técnica puede no ser capaz para reparar daños que es local a una instancia. El DRA no puede reparar fallos en una Base de Datos primaria mediante el uso de Blocks o archivos desde una base de datos standby, y no puede reparar fallos en una Base de Datos standby.
EXAMEN
El DRA solo funcionará para Bases de
Datos Single-Instance. No puede trabajar con una Base de Datos en cluster RAC, ni
con una Base de Datos Data Guard en espera.
EJERCICIO 17-1
UTILICE EL DRA PARA
DIAGNOSTICAR Y ASESORAR SOBRE LOS PROBLEMAS.
En este ejercicio, usted causará un
problema con la Base de Datos y utilizará el DRA para informar sobre el mismo.
1.
Desde
un prompt de sistema operativo, lance el ejecutable RMAN:
rman target /
2.
Confirme
que existe una copia Backup completa de todo el Tablespace SYSAUX.
list
backup of tablespace sysaux;
Si esta no regresar por lo menos un conjunto
backup de tipo FULL, repita el ejercicio 16-2, pasos 6-8.
3.
Baje
la instancia y salir de RMAN.
shutdown
immediate;
exit;
4.
Utilizando
una Utilidad de sistema operativo, elimine los DataFiles del Tablespace SYSAUX
que fueron listados en el paso 2. Si utilizas Windows, puede que tenga que
detener el Servicio Windows con la instancia que se está ejecutando para
liberar el bloqueo a archivos antes de la eliminación.
5.
Conectese
a la Base de Datos con SQL*PLUS, y intente iniciar:
startup;
Esta se detendrá en modo MOUNT, con un error
recuperando el archivo perdido. Si utiliza Windows, asegúrese que el servicio
ha sido iniciado.
6.
Lance
el ejecutable RMAN y conéctese, como el paso 1.
7.
Diagnosticar
el problema:
8.
Generar
recomendación sobre el fallo:
advise failure;
esto sugiere que debe restaurar y recuperar
el DataFile, y generar un script de reparación. Abrir el script con cualquier
editor de sistema operativo y estudiar el contenido.
No hay comentarios:
Publicar un comentario