ORACLE数据库PDB管理-备份与恢复(数据文件)
1 文件结构图如下:
Oracle 12c中当对指定的PDB进行不完全恢复的时候,其它的PDBS是完全不受影响的,多租户特性的好处就在于此,并且在恢复完成后老的PDB备份仍然有效,我们也不用为这个PDB创建新的备份。在实验的时候我遇到了一个小问题,就是在进行recover操作时会启动辅助实例,辅助实例则会使用到fast recovery area,如果fast recovery area的空间不够了,recover时会报错。后来手动使用AUXILIARY DESTINATION子句来为辅助实例指定一个临时的位置,就没有问题了。
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未重置)
- 恢复单个表空间
-
restore tablespace orcl:sysaux;
- recover tablespace orcl:sysaux;
- alter pluggable database orcl open;
- 普通 表空间
- alter session set congtainer=orcl;
- alter tablespace users offline;
- rman target /
- restore tablespace orcl:users;
- recover tablespace orcl:USERS;
- alter tablespace users online;