You are on page 1of 13

Isabel Terrero Gómez Recuperación de instancias con RMAN

Recuperación de instancias 
dañadas usando RMAN

Isabel Terrero Gómez

SGBD 1
Isabel Terrero Gómez Recuperación de instancias con RMAN

Herramientas de recuperación :

­Ficheros redo­logs: 
● Ficheros de cambio de almacenamiento en la BD (Recovery).
● Se almacenan los cambios realizados y no realizados, actualiza la bd a partir 
del fallo:
○ Online   redo   log:   proceso   LGWR,   cada   registro   contiene   el   valor 
antiguo y el nuevo.
○ Archived redo log: almacenaje de archive de redo log antes de su 
reutilización(modo arcrivelog).

­Ficheros de control: 
● Almacena el estado de la estructura física de la BD.
● Contiene:
○ Nombre de la BD
○ Localización de los ficheros de datos y redo log
○ Nombre de los Tablespaces
○ Número de secuencia de log actual
○ Log histórico
○ Información de las copias de seguridad (backup)
● Es necesario para montar, abrir y mantener la BD
● Guían la recuperación. Sin este fichero la BD no podrá ser montada y la
recuperación sería dificultosa.
● Se recomienda como mínimo dos ficheros de control en discos diferentes.

­Rollback segments: 
● Almacenan las últimas sentencias realizadas sobre la BD.
● Almacena las transacciones que no se han validado.
● Problemas con segmentos de Rollback.

­Backups de la BD: 
● Copias de Seguridad de los datos. Copias de la información de la BD
necesaria para reconstruir la BD a partir de un estado no utilizable de la
misma.
     Del SO
     Físicos:      En Frío
● Clasificación. Tipos de      En Caliente
Backups
      Lógicos: Import/Export

● La copia de seguridad puede convertirse en la única oportunidad contra
fallo de del sistema.

SGBD 2
Isabel Terrero Gómez Recuperación de instancias con RMAN

­Copias de seguridad del backup:

● Backup Físicos: Copian físicamente los datos de la BD.
○ Backup en frío: Hay que parar las BD en modo normal y copiar 
losficheros sobre los que se asienta. Una vez realizada la copia 
se puede volver a arrancar.
○ Backup en caliente: Se hace la copia mientras la BD está abierta y
funcionando en modo ARCHIVELOG. Consiste en copiar todos 
los ficheros correspondientes a un tablespace determinado, para 
todos los tablespace de la BD.
○ Backup del SO: Consume mucho tiempo y se hace inaccesible al
sistema mientras se lleva a cabo. Aprovecha el backup del SO 
para hacer el de la BD.
● Los backups lógicos se hacen con la herramienta export que copia los datos 
y la definición de la BD en un fichero en un formato Oracle. Copian el 
contenido de la BD pero sin almacenar de los datos.
○  Esta utilidad permiten al administrador de la base de copias de 
determinados objetos de la BD, así como restaurarlos moverlos de 
una BD a otra.
● Desde archivos de comandos y OEM/utilidades:
○  Export (EXP)
○  Data Pump Export (EXPDP). (nuevo de Oracle10g)

­ Catálogo de RMAN y las vistas dinámicas de la base de datos.

El catálogo de  RMAN  es donde se almacena este repositorio y aunque existe la posibilidad de 


almacenar parte de esta información en el control file de la base de datos de la cual se obtienen los 
backups   (target   database),   esta   opción   se   recomienda   únicamente   para   bases   de   datos   muy 
pequeñas. De igual forma al utilizar al control file para almacenar el repositorio de RMAN ciertas 
opciones   estan   restringidas,   como   por   ejemplo   el   almacenamiento   de   scripts   para   automatizar 
procesos de backups. Las vistas dinámicas registran el flujo de la actividad de la bd.

Activar archive log :
1.­Modificamos el init.ora
log_archive_start=true
log_archive_dest_1=“location=/database/archivelog/bbdd REOPEN=5″
log_archive_format = arch_%t_%s.arc 

SGBD 3
Isabel Terrero Gómez Recuperación de instancias con RMAN

2.­Si la bd esta arrancada la paramos: (sql plus)
shutdown immediate ;
3.­Montamos la bd:(sql plus)
startup mount;

4.­Despues ejecutamos lo siguiente:
alter database archivelog;
5.­Despues abrimos la bd y activamos el archivado automatico
alter database open;

alter system archive log start;

SGBD 4
Isabel Terrero Gómez Recuperación de instancias con RMAN

ya debe estar activado el modo archivelog, lo puedes comprobar en el enterprise manager:

Si por algun caso concreto debemos desactivar el modo archivelog seria de la siguiente forma :
­ Nos conectamos a la base de datos y la paramos, despues de pararla la montamos
shutdown immediate

startup mount

­ Desactivamos el modo archivelog

alter database noarchivelog

­ Abrimos la base de datos

alter database open

­ Desactivamos el archivado automático

alter system archive log stop;

SGBD 5
Isabel Terrero Gómez Recuperación de instancias con RMAN

Copias de seguridad con rman:

1.­ Nos conectamos a rman mediante la ventana de comandos de windows poniendo el comando 
rman y nos conectamos como connect target nombre_usuario/contraseña@Nombre_Base_Datos 

2.­Vamos a realizar una copia de seguridad mediante un script:
A continuación ejecutaremos el siguiente script, tal y como os explicamos:

run {

allocate channel C1 device type DISK format 'c:/temp/csbd_%d_%u_%t.bak';

backup database include current controlfile plus archivelog delete all input;

• "C:/temp" será la carpeta de destino de la copia (debe existir previamente).

• %d: le indicamos con este parámetro que nos incluya en el nombre del fichero el nombre de 
la base de datos.

• %u: le indicamos que incluya el identificador de la base de datos.

• %t: le indicamos que incluya la fecha y hora de creación del fichero.

SGBD 6
Isabel Terrero Gómez Recuperación de instancias con RMAN

Con ese script tan sencillo iniciaremos una copia de seguridad en el sitio indicado anteriormente, 
una vez haya finalizado comprobamos que realmente ha creado la copia de seguridad:

Cómo recuperar un fichero corrupto/dañado/eliminado de un 
tablespace de Oracle:
1.­ Vamos a comprobar los tablespaces y el estado en el que se encuentran.Lo ejecutaremos 
mediante la interfaz de comandos de windows:

­sqlplus /nolog

2.­ Nos conectamos a Oracle utilizando el usuario del sistema operativo :

­connect /as sysdba

Tambien tenemos la opcion de conectarnos con un usuario concreto a una base de datos concreta :

­connect usuario/contraseña@base_datos as sysdba

SGBD 7
Isabel Terrero Gómez Recuperación de instancias con RMAN

3.­ Para mostrar los tablespaces y el estado ejecutamos la siguiente sentecia:

­select tablespace_name, status from dba_tablespaces;

Con ese comando obtenemos lo siguiente:

Para mostrar los ficheros de los tablespaces, la ubicación y el estado dejecutaremos la sentencia 
SQL:

­ select file#, status, enabled, name from v$datafile;

SGBD 8
Isabel Terrero Gómez Recuperación de instancias con RMAN

4.­ A continuación voy a parar la BD para comenzar a simular una pérdida de un tablespace 
users01.dbf 

­ shutdown immediate;

5.­ Después elimino el tablespace  manualmente

6.­ Si intentamos inciar la base de datos ahora con el comando:

­ startup;

Nos aparecerá el siguiente mensaje de error:

SGBD 9
Isabel Terrero Gómez Recuperación de instancias con RMAN

Indica que falta un fichero de datos y que la base de datos no se ha podido abrir. Para comprobar el 
estado de la base de datos ejecutaremos:

­ select status from v$instance;

Nos devolverá:

STATUS
­­­­­­­­­­­­
MOUNTED

 Ahora procederemos a recuperar el tablespace borrado  mediante RMAN. Para ello abriremos una 
ventana de comandos de windows y ejecutamos los siguientes comandos:

­ RMAN

Nos conectaremos a la base de datos :

Para mostrar las copias de seguridad actuales ejecutamos el comando:

SGBD 10
Isabel Terrero Gómez Recuperación de instancias con RMAN

­ list backup;

En la imagen observamos  que el tablespace que hemos borrado se encuentra en el archivo de 
control 4 de catálogo de recuperación, entonces ejecutamos el siguiente comando:

­ recover datafile 4;

El resultado de este comando será:

Iniciando recover en 14/02/10
usando el canal ORA_DISK_1
iniciando la recuperación del medio físico
recuperación del medio físico terminada, tiempo transcurrido: 00:00:01
recover terminado en 14/02/10

Por último abriremos la base de datos con el comando:

­ alter database open;

SGBD 11
Isabel Terrero Gómez Recuperación de instancias con RMAN

Recuperar el fichero init.ora:
Buscamos una copia del init.ora que tengamos, si no la tenemos podemos crearlo de la siguiente
manera:

1.-Nos conectamos al SQLPLUS desde la ventana de comandos de windows:

C:\> sqlplus /nolog


SQL> conn sys/sys as sysdba
SQL> startup nomount;

SQL> create pfile='c:\init.ora' from spfile;

2.-La desconectamos y la volvemos a levantar y ya tenemos el fichero init.ora.

Cambiar de ubicación los ficheros de control
Antes de empezar, para cambiar el nombre o cambiar de ubicación a los redo logs, debemos tener el 
privilegio ALTER DATABASE. Además, necesitamos privilegios del sistema operativo para copiar 
los archivos a la ubicación deseada y privilegios para abrir y respaldar la base de datos.

1.­ Desconectamos la base de datos:

­shutdown 

2.­ Copiar los redo redo log files a la nueva localización manualmente.

3.­ Levantamos la BD:

­ startup mount;

4.­ Utilizando la sentencia ALTER DATABASE con la cláusula RENAME FILE renombramos los 

SGBD 12
Isabel Terrero Gómez Recuperación de instancias con RMAN

redo logs:

­ALTER DATABASE
RENAME FILE ‘/origen/log1a.rdo’, ‘/origen/log2a.rdo’
TO ‘/destino/log1c.rdo’, ‘/destino/log2c.rdo’;

5.­ Por último abrimos la base de datos  y ya esta finalizado el proceso de reubicación del redolog:

ALTER DATABASE OPEN; 

SGBD 13

You might also like