Restore e Rocover di un Datafile

Supponiamo di aver cancellato un datafile sul database "primary" per il quale è stato fatto un backup.
Il database è in stato open

Collegarsi tramire RMAN dal db Catalog.

[oracle@rmancat ~]$ rman target sys/system@primary catalog rcatown/rcatown@rcatpdb


RMAN> LIST FAILURE;
Database Role: PRIMARY
List of Database Failures
=========================
Failure ID Priority Status    Time Detected Summary
---------- -------- --------- ------------- -------
2542       HIGH     OPEN      11-MAR-21     One or more non-system datafiles are missing


RMAN> validate database;

Starting validate at 11-MAR-21
using channel ORA_DISK_1
RMAN-06169: could not read file header for datafile 23 error reason 5
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of validate command at 03/11/2021 14:41:59
RMAN-06056: could not access datafile 23

RMAN> validate datafile 23;

Starting validate at 11-MAR-21
using channel ORA_DISK_1
RMAN-06169: could not read file header for datafile 23 error reason 5
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of validate command at 03/11/2021 14:42:08
RMAN-06056: could not access datafile 23

RMAN> validate pluggable database pdb1;

Starting validate at 11-MAR-21
using channel ORA_DISK_1
RMAN-06169: could not read file header for datafile 23 error reason 5
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of validate command at 03/11/2021 14:43:17
RMAN-06056: could not access datafile 23

Abiamo individuato che il datafile da recuperare è il 23.
Risaliamo al nome del datafile.

RMAN> report schema;

Report of database schema for database with db_unique_name ORCL

List of Permanent Datafiles
===========================
File Size(MB) Tablespace           RB segs Datafile Name
---- -------- -------------------- ------- ------------------------
1    800      SYSTEM               YES     /u01/app/oracle/oradata/orcl/system01.dbf
3    550      SYSAUX               NO      /u01/app/oracle/oradata/orcl/sysaux01.dbf
4    70       UNDOTBS1             YES     /u01/app/oracle/oradata/orcl/undotbs01.dbf
5    250      PDB$SEED:SYSTEM      NO      /u01/app/oracle/oradata/orcl/pdbseed/system01.dbf
6    330      PDB$SEED:SYSAUX      NO      /u01/app/oracle/oradata/orcl/pdbseed/sysaux01.dbf
7    5        USERS                NO      /u01/app/oracle/oradata/orcl/users01.dbf
8    100      PDB$SEED:UNDOTBS1    NO      /u01/app/oracle/oradata/orcl/pdbseed/undotbs01.dbf
9    250      PDB1:SYSTEM          YES     /u01/app/oracle/oradata/orcl/pdb1/system01.dbf
10   360      PDB1:SYSAUX          NO      /u01/app/oracle/oradata/orcl/pdb1/sysaux01.dbf
11   100      PDB1:UNDOTBS1        YES     /u01/app/oracle/oradata/orcl/pdb1/undotbs01.dbf
12   5        PDB1:USERS           NO      /u01/app/oracle/oradata/orcl/pdb1/users01.dbf
16   10       PDB1:TBS_DATA        NO      /u01/app/oracle/oradata/tbs_data01.dbs
17   10       PDB1:TBS_INDX        NO      /u01/app/oracle/oradata/tbs_indx01.dbs
18   10       PDB1:TBS_DATA        NO      /u01/app/oracle/oradata/tbs_data02.dbf
23   1        PDB1:TBS_BAT         NO      /u01/app/oracle/oradata/orcl/pdb1/tbs_bat01,dbf
24   2        PDB1:TBS_BAT         NO      /u01/app/oracle/oradata/orcl/pdb1/tbs_bat02.df

List of Temporary Files
=======================
File Size(MB) Tablespace           Maxsize(MB) Tempfile Name
---- -------- -------------------- ----------- --------------------
1    131      TEMP                 32767       /u01/app/oracle/oradata/orcl/temp01.dbf
2    64       PDB$SEED:TEMP        32767       /u01/app/oracle/oradata/orcl/pdbseed/temp012021-01-25_16-05-05-794-PM.dbf
3    129      PDB1:TEMP            32767       /u01/app/oracle/oradata/orcl/pdb1/temp01.dbf

Se il databse è aperto mettere offline il datafile 23 sul database pdb1
SQL> alter session set container=pdb1;

SQL> alter database datafile 23 offline;

Effettuare il restore e recover 
RMAN> RESTORE DATAFILE 23;

RMAN> RECOVER DATAFILE 23;

Mettere online il datafile 23 sul database pdb1
SQL> alter database datafile 23 online;

Verificare che il datafile sia stato ripristinato nel path giusto e con alcune query se i dati sono quelli attesi.
Una prima verifica può essere la seguente:
RMAN> list failure ;
Database Role: PRIMARY
no failures found that match specification

Post popolari in questo blog

ORA-12154: TNS: il listener non è attualmente a conoscenza del servizio richiesto nel descrittore di connessione

Create e Drop Pluggable Database