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
Il database è in stato open
Collegarsi tramire RMAN dal db Catalog.
[oracle@rmancat ~]$ rman target sys/system@primary catalog rcatown/rcatown@rcatpdbRMAN> 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