A continuación te muestro cómo simular la pérdida de un datafile en un entorno de base de datos que está en modo archive log.
Supongamos que tenemos una base de datos Oracle 19c con los datafiles almacenados en ASM y que está configurada en modo archive log.
- Inicia la sesión de RMAN:
$ rman target /
Recovery Manager: Release 19.0.0.0.0 - Production on Wed Dec 27 12:34:56 2024
Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.
RMAN>
- Simula la pérdida de un datafile:
SQL> ALTER SYSTEM CHECKPOINT;
SQL> !rm +DATA/orcl/datafile/users01.dbf
Ahora, uno de los datafiles ha sido eliminado.
- Intenta abrir la base de datos:
SQL> STARTUP
ORACLE instance started.
ORA-01116: error in opening database file '+DATA/orcl/datafile/users01.dbf'
ORA-01110: data file '+DATA/orcl/datafile/users01.dbf': 'USERS' tablespace
Como era de esperarse, la base de datos no puede abrirse debido a la falta del datafile.
- Utiliza RMAN para restaurar y recuperar el datafile:
RMAN> RESTORE DATAFILE '+DATA/orcl/datafile/users01.dbf';
Starting restore at 27-DIC-24
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=12 device type=DISK
channel ORA_DISK_1: restoring datafile
input datafile file number=4 name=+DATA/orcl/datafile/users01.dbf
output file name=+DATA/orcl/datafile/users01.dbf RECID=1 STAMP=1234567890
channel ORA_DISK_1: restore complete
Finished restore at 27-DIC-24
RMAN> RECOVER DATAFILE '+DATA/orcl/datafile/users01.dbf';
Starting recover at 27-DIC-24
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=12 device type=DISK
archived log for thread 1 with sequence 1234 is already on disk as file /rman_backups/archivelog_20241227_123456.arc
archived log file name=/rman_backups/archivelog_20241227_123456.arc thread=1 sequence=1234
media recovery complete, elapsed time: 00:10:00
Finished recover at 27-DIC-24
5. Abre la base de datos:
SQL> ALTER DATABASE OPEN;
Database altered.
Ahora la base de datos está abierta y operativa.
- Verifica que el datafile haya sido restaurado y recuperado correctamente:
SQL> SELECT NAME, ONLINE_STATUS FROM V$DATAFILE;
NAME ONLINE_STATUS
---------------------------------------------------- ---------------
+DATA/orcl/datafile/system01.dbf ONLINE
+DATA/orcl/datafile/sysaux01.dbf ONLINE
+DATA/orcl/datafile/users01.dbf ONLINE
[...]
En este ejemplo, hemos:
- Iniciado la sesión de RMAN.
- Simulado la pérdida de un datafile.
- Intentado abrir la base de datos, lo cual falló debido a la falta del datafile.
- Utilizado RMAN para restaurar y recuperar el datafile.
- Abierto la base de datos.
- Verificado que el datafile haya sido restaurado y recuperado correctamente.
En este caso, al estar la base de datos en modo archive log, RMAN puede utilizar tanto los backups completos como los archivos de redo log para recuperar el datafile a su estado más reciente. Esto proporciona una mayor flexibilidad y protección en caso de pérdida o corrupción de los datos.
Si tienes alguna otra pregunta, no dudes en consultarme.






Deja un comentario