domingo, 20 de marzo de 2011

Recuperar Base de Datos Oracle Sin Backup

Esta nota pretende mostrar un ejemplo de cómo recuperar una base de datos cuando no tenemos un backup y por ejemplo perdemos un disco ó tenemos un datafile corrupto; tal vez no logremos recuperar la información del disco, pero podremos poner de nuevo la base de datos en uso, aunque sin algún(os) tablespace(s).

Cuando encontramos una base de datos abajo e intentamos darle startup nos encontraremos con algo como:

SQL> startup
ORACLE instance started.


Total System Global Area 1593835520 bytes
Fixed Size                  1262020 bytes
Variable Size             385879612 bytes
Database Buffers         1191182336 bytes
Redo Buffers               15511552 bytes
Database mounted.
ORA-01157: cannot identify/lock data file 7 - see DBWR trace file
ORA-01110: data file 7: '/u2/oradata/TEST/prueba.dbf'

Si no contamos con un backup, entonces podremos usar el comando
SQL> alter database datafile  '/u2/oradata/TEST/prueba.dbf'  offline drop;

Este comando no significa que vamos a borrar el datafile, significa que vamos a ponerlo fuera de línea para posteriormente tener la intención de borrar el tablespace, de esta forma oracle no lo accederá, aunque todavía lo vea como parte del tablespace, así podremos subir nuestra base de datos con un datafile no critico perdido.

SQL> alter database open;
Database altered.

Despues de esto podremos decidir que hacer con el tablespace que contiene el datafile perdido o corrupto.

1 comentario: