一、rman备份
1. rman连接到CDB:
rman target /
2. rman连接特定的pdb:
rman target pdbuser/pdbpwd@pdbname;
3. 确定连接的是CDB还是PDB:
report schema;
4. rman备份整个数据库和所有pdb:
rman target /
backup database;
5. rman连接CDB并备份一个或多个pdb:
rman target /
backup pluggable database pdbname1,pdbname2,pdbname3;
(如果要备份根容器需要加"")
6. rman连接pdb并备份:
rman target pdbuser1/pdbpwd1@pdbname;
backup database;
注:此时不需要指定pluggable关键字,因此这是从pdb角度执行备份。虽然控制文件和spfile在整个容器上共享,控制文件也 包含在完整备份中。
二、rman恢复
1. 恢复控制文件:
关闭数据库:
sqlplus / as sysdba
shutdown immediate
rman登录:
rman target /
startup nomount
restore controlefile from autobackup;
alter database mount;
recover database;
alter database open resetlogs;
alter pluggable database all open;
2. 恢复system或undo表空间
关闭数据库:
sqlplus / as sysdba
shutdown immediate
rman登录:
rman target /
startup mount
restore tablespace system;
recover tablespace system;
alter database open;
alter pluggable database all open;
3. 恢复SYSAUX或其他根表空间
不需要关闭数据库
rman登录:
alter tablespace sysaux offline immediate;
restore tablespace sysaux;
recover tablespace sysaux;
alter tablespace sysaux online;
4. 恢复PDB数据文件
(1)丢失未开启pdb的system表空间(CDB和其他PDB在还原和恢复期间仍可打开)
rman登录:
restore tablespace pdborcl:system;
recover tablespace pdborcl:system;
alter pluggable database pdborcl open;
注:若pdb已开启,此时丢失system表空间,则要关闭整个CDB。
(2)丢失PDB非system数据文件
sqlplus / as sysdba conn pdbcloud/pdbcloud@pdbcloud; alter tablespace cloud offline;
登录rman:
restore tablespace pdbcloud:cloud;
recover tablespace pdbcloud:cloud;
sqlplus / as sysdba
conn pdborcl/pdborcl@pdborcl;
alter tablespace cloud offline;