关于备份CDBs和PDBs
在12c中RMAN和Oracle Enterprise Manager Cloud Control对多租户环境提供完整的备份和恢复支持。多租户体系结构能够使一个Oracle Database作为CDB功能。你可以对整个CDB、或仅仅root、一个或多个PDB做备份和恢复。你也可以在PDB中的单个表空间和数据文件做备份和恢复。
你可能想要通过使用增量备份策略在夜间执行备份整个CDB,或者你可能想要经常对个别PDB进行备份和很少对整个CDB或者root做备份。
从对数据丢失的恢复能力,单独备份root和所有的PDB等同于备份整个CDB。两者的主要区别是在你输入RMAN命令的数量和恢复时间。恢复整个CDB比恢复root加上所有的PDB需要的时间更少。
备份整个CDB
备份整个CDB和备份非CDB类似,但你备份整个CDB,RMAN会备份root和所有的PDB,还有archived redo logs。你可以从CDB备份中恢复整个CDB,或只有root,一个或多个PDB。
备份整个CDB
按照说明在“Backing Up a Whole Database with RMAN”,使用有sysbackup或sysdba权限的公共用户(common user)连接root。
使用RMAN备份Root
你可以使用RMAN只针对root做备份。因为在整个CDB中root包含关键元数据。Oracle推荐定时备份root或备份整个CDB。
使用RMAN备份root:
- 启动RMAN并且使用有SYSBACKUP或SYSDBA权限的共有用户(common user)连接到root。
- 输入下面的命令:BACKUP DATABASE ROOT;
使用RMAN备份PDBs
RMAN可以支持对CDB中的一个或多个PDBs备份。有两种方法使用RMAN来备份PDB:
- 连接到root和使用BACKUP PLUGGABLE DATABASE命令,这种方法能够使用一个命令备份多个PDB。
当你连接到一个PDB使用root,这种备份只对root和特定的PDB,而且不是其他的PDBs。
- 连接到PDB和使用BACKUP DATABASE命令。这种方法只备份单一的PDB,而且你也可以使用相同的命令来备份non_CDB。
创建备份的时候,通过root连接,则可以连接到任意可见的PDB。
当你备份单独的PDB,archived redo log是不会被备份的。
连接到root备份一个或多个PDB:
- 启动RMAN并且使用有SYSBACKUP或SYSDBA权限的共有用户(common user)连接到root。
- 在RMAN提示符里发送BACKUP PLUGGABLE DATABASE命令。
以下例子是备份sales和hr的PDBs: BACKUP PLUGGABLE DATABASE sales, hr;
连接到PDB备份单个PDB:
- 启动RMAN并且使用有SYSBACKUP或SYSDBA权限的本地用户(local user)连接到PDB。
- 在RMAN提示符里发送BACKUP DATABASE命令。
备份在PDB中的表空间和数据文件
因为表空间在不同的PDB中可以有相同的名字,为了消除歧义,你必须直接的连接到PDB来备份一个或多个表空间。相比之下,因为数据文件的序号(numbers)和路径(paths)在CDB中是独一无二的,你可以连接到root或者PDB来备份PDB的数据文件。如果你连接到root,你可以使用一条命令来备份多个PDB的数据文件。如果你连接到PDB,你只能可以备份这个PDB的数据文件。
备份PDB中的表空间:
- 启动RMAN并且使用有SYSBACKUP或SYSDBA权限的本地用户(local user)连接到PDB。
- 发送 BACKUP TABLESPACE命令,详细描述参看 “Backing Up Tablespaces and Data Files with RMAN”。
BACKUP TABLESPACE users, examples;
备份PDB中的数据文件:
- 执行下列操作之一:
- 启动RMAN并且使用有SYSBACKUP或SYSDBA权限的共有用户(common user)连接到root。
- 启动RMAN并且使用有SYSBACKUP或SYSDBA权限的本地用户(local user)连接到PDB。
2. 发送BACKUP DATAFILE命令。
BACKUP DATAFILE 10,13,14;