You are hereRecuperacion de base de datos Oracle con Data Unloading

Recuperacion de base de datos Oracle con Data Unloading


By IgnacioRuiz - Posted on 02 September 2010

Lo que les voy a compartir es una experiencia reciente de como se puede recupera de una situacion aparentemente terminal cuando una base de datos se corrompe por una falla de storage.

Durante los ultimos 2 dias, estuve en sitio con un cliente, donde el arreglo de discos donde residia la base de datos, sufrio una falla doble en uno de los conjuntos en RAID-5, por lo tanto cayendo y perdiendo información. Cuando nos preguntamos por un respaldo... no habia ninguno!!! y desafortunadamente la base de datos no era respaldada regularmente (siendo administrada por un equipo de aplicaciones, no las areas formales de Storage-SO-BD), ademas la base de datos estaba en modo NOARCHIVE y encima de eso, todos los objetos tenian deshabilitado el LOGGING (recuerden que sin embargo, los indices si pueden estar en NOLOGGING).

Esta situación podría parecer un caso terminal, de cual no se puede escapar... pero Oracle provee un servicio de Data Unloading cuando alguna falla de hardware o corrupción nos deja la base sin poder abrirla; formo parte de Soporte - Advanced Customer Services en Oracle Corporation y nuestro equipo es el responsable de realizar esos servicios, previo contrato de servicios firmado. Vale la pena mencionar que no se garantiza que tanta información puede ser recuperada y la herramienta se ocupa de automatizar la recuperación de datos contenidos en datafiles/bloques, definiciones DDL requieren esfuerzo adicional... ¡¡¡pero vamos!!! ya es una gran ayuda. (Recuerden, tambien el diccionario de datos tiene tablas).

Sin embargo, este caso fue de dificultad incrementada ya que el cliente no posee ambientes de DESA o QA, de donde poder obtener DDL de los objetos o código fuente de vistas o stored procedures, asi que tuve que extraer de forma individual los objetos del diccionario de datos, cargarlos en una base de datos, distinto esquema (por supuesto no los iba a importar en SYS) y modificar algunas de las vistas DBA_ para referenciar estos objetos.

Obviamente utilizar DBMS_METADATA.GET_DDL (ver el post Extraer codigo DDL de objetos en Oracle) no es una opción pues esta codificado para utilizar objetos de SYS y no quería meterme directamente con el diccionario de la base de datos. Asi que tuve que escribir una serie de scripts para manualmente obtener los scripts con las sentencias DDL para sequencias, indices, constraints, vistas y stored procedures/funciones... ¡¡¡ Muchisimo trabajo!!! pero al final el cliente obtuvo casi el 100% de los datos, la estructura necesaria para reanudar operación y muy feliz!! asi que valio la pena el tiempo invertido... estoy seguro que esta experiecia es algo que jamas olvidarán, de hecho a resultado de esto van a entregar la administracion a los departamentos de Storage-SO-DB correspondientes.

Esa vivencia les comparto hoy, muchas gracias por su tiempo y no olviden respaldar apropiadamente sus bases de datos e información en general

Si el articulo no satisfizo tus dudas, visita nuestros foros


Visita mi pagina en Oracle Community
Visita mi blog en Blogger
Follow IgnacioRuizMX on Twitter

Suscripcion a Contenido Sindicado(RSS)

Suscribir a Databases Hispamerica por Email



Syndicate

Syndicate content

Follow DatabasesLA on Twitter

Who's online

There are currently 0 users and 6 guests online.

Estadisticas

Locations of visitors to this page

hidden hit counter