多租户-完全恢复switch to copy
1 使用switch to copy来恢复CDB中的数据文件
To switch a data file in a CDB, connect to the root and use the same steps that you would use for a non-CDB.
针对于CDB中的数据文件丢失,利用Image copy备份来恢复和non-CDB恢复方式一样
2 在CDB中使用switch to copy来恢复PDB中的数据文件
2.1 在pdb中创建scott用户
cp $ORACLE_HOME/rdbms/admin/utlsampl.sql $ORACLE_HOME/rdbms/admin/utlsampl.sql.bak vi $ORACLE_HOME/rdbms/admin/utlsampl.sql
修改
2.2 连接pdb执行脚本
sqlplus sys/oracle@pdb2 as sysdba @$ORACLE_HOME/rdbms/admin/utlsampl.sql
2.3 Image copy备份
rman target sys/oracle@cdb3 report schema;
为PDB2的16号文件执行Image copy备份
backup as copy datafile 16 format ‘/u01/app/cp_bak/df16.bak‘;
list datafilecopy all;
2.4 模拟故障
rm /u01/app/oracle/oradata/CDB3/pdb2/users01.dbf
sqlplus sys/oracle@pdb2 as sysdba alter system flush buffer_cache; select * from scott.emp;
2.5 故障恢复
alter database datafile 16 offline;
switch datafile 16 to copy;
recover datafile 16;
alter database datafile 16 online;
2.6 修改数据文件路径
col name for a50 select file#,name from v$datafile;
修改路径
alter tablespace users offline; !mv /u01/app/cp_bak/df16.bak /u01/app/oracle/oradata/CDB3/pdb2/users01.dbf alter tablespace users rename datafile ‘/u01/app/cp_bak/df16.bak‘ to ‘/u01/app/oracle/oradata/CDB3/pdb2/users01.dbf‘; alter tablespace users online;
2.7 验证数据
alter system flush buffer_cache; select * from scott.emp;
3 在PDB中使用switch to copy来恢复PDB中的数据文件
use the SWITCH DATABASE or SWITCH DATAFILE command to switch data files in that PDB.
使用SWITCH DATABASE或SWITCH DATAFILE命令切换该PDB中的数据文件
类似于non-CDB操作