【RECO_ORACLE】Oracle 12c之CDB与PDB的备份与恢复(四)PDB的几种恢复方式

来源:这里教程网 时间:2026-03-03 17:01:20 作者:

说明

相关文章连接:

Oracle 12c之CDB与PDB的备份与恢复(一)什么是CDB与PDB?: http://blog.itpub.net/69992972/viewspace-2793217/

Oracle 12c之CDB与PDB的备份与恢复(二)备份恢复之前你需要知道的: http://blog.itpub.net/69992972/viewspace-2794508/

Oracle 12c之CDB与PDB的备份与恢复(三)CDB与PDB的备份方式: http://blog.itpub.net/69992972/viewspace-2794518/

Oracle 12c之CDB与PDB的备份与恢复(四)PDB的几种恢复方式: http://blog.itpub.net/69992972/viewspace-2794540/

PDB的几种恢复方式 1. PDB库TESTPDB1的system表空间的数据文件丢失如果PDB的system丢失,会导致该PDB崩溃,但是CDB和其他PDB不会被影响到。这种情况下,必须先从CDB开始恢复!方法如下:$ rman target sys/sys@test_cdbRMAN> RESTORE DATAFILE 7;RMAN> RECOVER DATAFILE 7;RMAN> ALTER PLUGGABLE DATABASE TESTPDB1 OPEN; 注: 目前发型的版本,某个PDB的system数据文件丢失有概率造成CDB和其他PDB崩溃,此时需要将CDB启动到mount 状态,才能恢复PDB的system数据文件。这个问题Oracle官方表明会在以后的版本修复这个问题。 2. PDB的非系统数据文件丢失假如USER表空间的9号数据文件丢失。根据实际情况, 丢失的数据文件可能已经是 offline 状态,如果没有,必须先 offline:$ rman target sys/sys@test_pdb  RMAN> ALTER DATABASE DATAFILE 10 OFFLINE;    --先脱机RMAN> RESTORE DATAFILE 9;RMAN> RECOVER DATAFILE 9;RMAN> ALTER DATABASE DATAFILE 10 ONLINE;    --恢复后再联机  3. PDB的某个表空间的所有数据文件都丢失某个表空间丢失(比如USERS表空间),但是该PDB还处于打开状态。$ rman target sys/oracle@ test_pdbRMAN> ALTER TABLESPACE USERS OFFLINE;    --先脱机RMAN> RESTORE TABLESPACE USERS;RMAN> RECOVER TABLESPACE USERS;RMAN> ALTER TABLESPACE USERS ONLINE;    --恢复后再联机  4: 可插拔数据库的所有数据文件都丢失$ rman target sys/sys@ test_cdbRMAN> RESTORE PLUGGABLE DATABASE TESTPDB1;RMAN> RECOVER PLUGGABLE DATABASE TESTPDB1;RMAN> ALTER PLUGGABLE DATABASE TESTPDB1 open; 注:1. 可能会混淆的一个地方是:如果某个PDB如果丢失了,并不等同于删除了该PDB。因为PDB的丢失可能是指因为一些意外情况下的数据库以及文件的误删除或者损坏, 但是它的metadata数据还是存在的。在这种metadata还存在的情况下,从备份中恢复出来是可行的。 但如果是删除了可插拔数据库,这样同样会把metadata从repository中删除。这种情况下做restore就会遇到错误: RMAN-06813: could not translate pluggable database TESTPDB1 2. 最重要的一点是:如果我们只对单个PDB备份进行备份,是不能够恢复不同服务器中的单个可插拔数据库或执行时间点恢复,必须要同时拥有PDB和对应的CDB的备份! 

相关推荐