te muestro cómo proceder si se pierde un datafile en un entorno de base de datos que no está en modo archive log.
Supongamos que tenemos una base de datos Oracle 19c con los datafiles almacenados en ASM y que no 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/system01.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/system01.dbf'
ORA-01110: data file '+DATA/orcl/datafile/system01.dbf': 'SYSTEM' tablespace
Como era de esperarse, la base de datos no puede abrirse debido a la falta del datafile.
- Utiliza RMAN para restaurar el datafile:
RMAN> RESTORE DATAFILE '+DATA/orcl/datafile/system01.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=1 name=+DATA/orcl/datafile/system01.dbf
output file name=+DATA/orcl/datafile/system01.dbf RECID=1 STAMP=1234567890
channel ORA_DISK_1: restore complete
Finished restore at 27-DIC-24
5. Recupera la base de datos:
RMAN> RECOVER DATAFILE '+DATA/orcl/datafile/system01.dbf';
Starting recover at 27-DIC-24
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=12 device type=DISK
media recovery complete, elapsed time: 00:10:00
Finished recover at 27-DIC-24
- 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 correctamente:
SQL> SELECT NAME, ONLINE_STATUS FROM V$DATAFILE;
NAME ONLINE_STATUS
---------------------------------------------------- ---------------
+DATA/orcl/datafile/system01.dbf ONLINE
+DATA/orcl/datafile/sysaux01.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 el datafile.
- Recuperado la base de datos.
- Abierto la base de datos.
- Verificado que el datafile haya sido restaurado correctamente.
Es importante tener en cuenta que, al realizar esta restauración en un entorno que no está en modo archive log, RMAN solo puede restaurar el datafile a partir de los backups completos, ya que no hay archivos de redo log disponibles para recuperar los cambios más recientes. En un entorno en modo archive log, RMAN también podría utilizar los archivos de redo log para recuperar la base de datos de una manera más completa.
Si tienes alguna otra pregunta, no dudes en consultarme.






Deja un comentario