ORACLE数据库PDB管理-备份与恢复(数据文件)

1 文件结构图如下:

Oracle 12c中当对指定的PDB进行不完全恢复的时候,其它的PDBS是完全不受影响的,多租户特性的好处就在于此,并且在恢复完成后老的PDB备份仍然有效,我们也不用为这个PDB创建新的备份。在实验的时候我遇到了一个小问题,就是在进行recover操作时会启动辅助实例,辅助实例则会使用到fast recovery area,如果fast recovery area的空间不够了,recover时会报错。后来手动使用AUXILIARY DESTINATION子句来为辅助实例指定一个临时的位置,就没有问题了。​​​​​​​

ORACLE数据库PDB管理-备份与恢复(数据文件)

12.2版本出现local undo方式,UNDO文件也单独使用。

2 备份cdb

backup database root;

3 备份pdb

rman target /

backup pluggable database pdb1;

backup pluggable database pdb2;

3  还原操作 ;

RUN {
set newname for database to '+DATAC1';
restore database root;
restore database "PDB$SEED";
restore pluggable database BPMDB_PRD;
}

RUN {
switch database "PDB$SEED" to copy;
switch pluggable database BPMDB_PRD to copy;
switch database root to copy;
}

3 恢复操作

3.1 完全恢复整个pdb1 

  • 备份pdb orcl

backup pluggable database orcl;

alter pluggable database close immediate;

rm 全部orcl对应的数据文件 

  • 完全恢复pdb orcl

正常开启pdb,

sqlplus / as sysdba

startup

show pdbs

orcl mointed

rman target /

restore pluggable database orcl;

recover pluggable database orcl;

  •  不完全恢复pdb orcl

Oracle 12c中当对指定的PDB进行不完全恢复的时候,其它的PDBS是完全不受影响的,多租户特性的好处就在于此,并且在恢复完成后老的PDB备份仍然有效,我们也不用为这个PDB创建新的备份。在实验的时候我遇到了一个小问题,就是在进行recover操作时会启动辅助实例,辅助实例则会使用到fast recovery area,如果fast recovery area的空间不够了,recover时会报错。后来手动使用AUXILIARY DESTINATION子句来为辅助实例指定一个临时的位置,就没有问题了。​​​​​​​

在cdb启动到mount的状态下进行恢复pdb报错如下:

RMAN-05141:TARGET DATABASE MUST BE OPEND FOR FLASHBACK PDB OR PDB POINT-IN-TIME-RECOVERY.

srvctl start instance -d orcl -n rac1

show pdbs;

rman target /

recover pluggable database orcl until scn xxxxxxx auxiliary destination '/home/oracle';

alter pluggable database orcl open resetlogs;(整体的sequence未重置)

  • 恢复单个表空间
  1. restore tablespace orcl:sysaux;

  2. recover tablespace orcl:sysaux;
  3. alter pluggable database orcl open;
  4. 普通 表空间
  5. alter session set congtainer=orcl;
  6. alter tablespace users offline;
  7. rman target /
  8. restore tablespace orcl:users;
  9. recover tablespace orcl:USERS;
  10. alter tablespace users online;