Comunidad Oracle Hispana

Hola a todos,

Me gustaría saber cual es el método mas recomendable para detectar bloques corruptos en una base de datos, quiero realizar un análisis de toda la base de datos con este fin.

a) ANALYZE TABLE table_name VALIDATE STRUCTURE.
b) DBVERIFY.
c) DB_BLOCK_CHECKING parametro.
d) DBMS_REPAIR

 

Base de Datos Oracle 9i sobre Solaris 10.


Muchas gracias por la ayuda.

Visitas: 170

Responde a esto

Respuestas a esta discusión

Si el fin es realizar solo un análisis, yo te haría unas preguntas:

1. Con qué frecuencia harias el monitoreo de los bloques corruptos?

2. Hay métodos mas agresivos que otros, así que depende de la carga de tu BD para ejecutarlos.

3. En el caso de DBVERIFY puede ser ejecutado online, pero puede bloquear el acceso a las tablas si tu DF es demasiado grande y tarda mucho la verificación.

4. Depende del tamaño de tu BD, por ejemplo, yo administro una BD con mas de 2000 DFs, imaginate ejecutar un reporte de bloques corruptos diario, esta de locos....

saludos

Muchas gracias Amin por responder,

Exactamente es lo que quiero evitar, el bloqueo de alguna tabla, esta es una de las razones de mi consulta. No tenia pensado realizarlo de manera rutinaria.

¿es recomendable realizar un análisis a la base de datos para detectar estos casos o normalmente se realizan cuando ocurre un problema de bloques corruptos para detectar donde?

El administrador anterior llego a decirme que no use export/import porque la base de datos tiene algunos bloques corruptos, entonces esto me preocupa porque quiero detectar estos bloques y repararlos, estoy preparando la base de datos para que me realice un backup completo (Offline) semanal por medio de RMAN y he tratado de encontrar documentación para saber si estos bloques afectarían la integridad del backup, osea, que si estos bloques dañan al backup y no podre usarlo para una recuperación.

Amin dice:

Si el fin es realizar solo un análisis, yo te haría unas preguntas:

1. Con qué frecuencia harias el monitoreo de los bloques corruptos?

2. Hay métodos mas agresivos que otros, así que depende de la carga de tu BD para ejecutarlos.

3. En el caso de DBVERIFY puede ser ejecutado online, pero puede bloquear el acceso a las tablas si tu DF es demasiado grande y tarda mucho la verificación.

4. Depende del tamaño de tu BD, por ejemplo, yo administro una BD con mas de 2000 DFs, imaginate ejecutar un reporte de bloques corruptos diario, esta de locos....

saludos

Bingo! en este caso si te dijo el anterior DBA que hay bloques corruptos, POR FAVOR, no te quedes con la duda y compruébalo tú mismo... yo recomiendo usar DBVERIFY para todos los DFs, así deeterminas si es un bloque corrupto físicamente o lógicamente. Si vas a ldía con tus respaldos con RMAN puedes reparar esos bloques corruptos, sino estas PERDIDO! 

 

Hay otras opciones, como decirle a ORACLE que evite esos bloques corruptos en consultas exp/imp, etc, para que no mande mensajes de error, pero inevitablemente perderás esos bloques de información.

Una vez que detectaste los bloques vs tablas o índices, determina qué vas hacer? Crea un TB nuevo y mueve todos tus objetos ahí, luego elimina esos DFs con bloques corruptos para siempre de la BD.

Espero te ayude de algo.

Responder a debate

RSS

© 2013   Creado por Fernando Garcia.

Insignias  |  Informar un problema  |  Términos de servicio