12C 的RMAN和Oracle Enterprise Manager Cloud Control工具支持多租户环境下的备份和恢复,RMAN可以连接到目标数据库、Data Guard、辅助实例或辅助数据库,通过连接数据库的类型不同,所完成的数据库操作也不相同,在这里我们主要描述CDB和PDB备份恢复操作,在PDB环境中支持备份或恢复单个数据文件或表空间。
在从数据丢失恢复能力而言,单独备份根和所有的PDB相当于备份整个CDB。主要的区别是在RMAN命令的数目,您必须输入和恢复时间。恢复整个CDB$ROOT的时间要比所有的PDB的时间少。
1.1. RMAN连接数据库
RMAN可通过操作系统认证和密码文件两种方式连接到一个目标数据库,使用RMAN备份恢复工具的用户需要具有SYSDBA或SYSBACKUP系统权限,如果用户需要连接到恢复目录,需要被授予RECOVERY_CATALOG_OWNER对象权限。
操作系统认证
我们在LINUX环境中使用操作系统认证方式连接到数据库,我们需要满足以下两个条件:
设定ORACLE_SID变量,例如数据库的SID为orcl,因此我们在.bash_profile文件或者命令行设置ORACLE_SID变量。
ORACLE_SID=orcl; export ORACLE_SID
执行rman命令用户需要具有SYSDBA或者SYSBACKUP权限,Linux环境下的OSDBA用户组为dba。
具有SYSDBA权限用户连接到RMAN
rman target '"/ as sysdba"'
具有SYSBACKUP权限用户连接到RMAN
rman target '"/ as sysbackup"'
具有SYSDBA权限用户隐式连接到RMAN
rman target /
密码文件认证
数据库使用密码文件认证管理用户,RMAN可以使用密码连接。使用本地或远程访问的密码文件。使用服务名方式连接数据库时,数据库必须使用一个密码文件,同样连接到数据库的用户需要具有SYSDBA或SYSBACKUP权限。
密码文件认证具有SYSDBA权限用户连接到RMAN
rman target '"zlhis@orcl assysdba"'
target database Password: password
connected to target database: orcl(DBID=39525561)
密码文件认证具有SYSBACKUP权限用户连接到RMAN
rman target '"zlhis@orcl as sysbackup"'
target database Password: password
connected to target database: orcl(DBID=39525561)
1.2. 只备份CDB
只备份CDB数据库需要具有SYSDBA或SYSBACKUP权限用户连接到CDB的root环境下,执行backupdatabase root命令即可完成对CDB的备份,方法如下:
RMAN> backupdatabase root;
启动 backup 于 17-3月 -16
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=50 设备类型=DISK
通道 ORA_DISK_1: 正在启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集内的数据文件
输入数据文件: 文件号=00001 名称=/u01/app/oracle/oradata/cdb/system01.dbf
输入数据文件: 文件号=00003 名称=/u01/app/oracle/oradata/cdb/sysaux01.dbf
输入数据文件: 文件号=00004 名称=/u01/app/oracle/oradata/cdb/undotbs01.dbf
输入数据文件: 文件号=00006 名称=/u01/app/oracle/oradata/cdb/users01.dbf
通道 ORA_DISK_1: 正在启动段 1 于 17-3月 -16
通道 ORA_DISK_1: 已完成段 1 于 17-3月 -16
段句柄=/u01/app/oracle/fast_recovery_area/CDB/backupset/2016_03_17/o1_mf_nnndf_TAG20160317T152301_cgnptp1s_.bkp标记=TAG20160317T152301 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:01:55
完成 backup 于 17-3月 -16
启动 Control File and SPFILE Autobackup 于 17-3月 -16段handle=/u01/app/oracle/fast_recovery_area/CDB/autobackup/2016_03_17/o1_mf_s_906737097_cgnpydod_.bkpcomment=NONE
完成 Control File and SPFILE Autobackup 于 17-3月 -16
执行backup database root不给数据文件保存位置时,备份文件默认存放在快速恢复区中。
1.3. 备份整个CDB及其下面的所有PDB
备份整个CDB数据库及其下面的所有PDB类似于非CDB数据库方法相同,使用具有SYSDBA或SYSBACKUP权限用户连接到CDB的root环境下面,然后执行backupdatabase命令即可完成整个CDB的备份,方法如下:
RMAN> backup database;
启动 backup 于 17-3月 -16
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=50 设备类型=DISK
通道 ORA_DISK_1: 正在启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集内的数据文件
输入数据文件: 文件号=00001 名称=/u01/app/oracle/oradata/cdb/system01.dbf
输入数据文件: 文件号=00003 名称=/u01/app/oracle/oradata/cdb/sysaux01.dbf
输入数据文件: 文件号=00004 名称=/u01/app/oracle/oradata/cdb/undotbs01.dbf
输入数据文件: 文件号=00006 名称=/u01/app/oracle/oradata/cdb/users01.dbf
输入数据文件: 文件号=00009 名称=/u01/app/oracle/oradata/cdb/pdb1/sysaux01.dbf
输入数据文件: 文件号=00008 名称=/u01/app/oracle/oradata/cdb/pdb1/system01.dbf
输入数据文件: 文件号=00010 名称=/u01/app/oracle/oradata/cdb/pdb1/pdb1_users01.dbf
通道 ORA_DISK_1: 正在启动段 1 于 17-3月 -16
通道 ORA_DISK_1: 已完成段 1 于 17-3月 -16
段句柄=/u01/app/oracle/fast_recovery_area/CDB/backupset/2016_03_17/o1_mf_nnndf_TAG20160317T152301_cgnptp1s_.bkp标记=TAG20160317T152301注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:01:55
完成 backup 于 17-3月 -16
启动 Control File andSPFILE Autobackup 于17-3月-16段handle=/u01/app/oracle/fast_recovery_area/CDB/autobackup/2016_03_17/o1_mf_s_906737097_cgnpydod_.bkpcomment=NONE
完成 Control File andSPFILE Autobackup 于17-3月-16
1.4. 备份单个和多个PDB
在CDB中允许备份一个或多少PDB数据库,备份一个PDB数据库可以通过以下两个方式备份:
在CDB根(root)使用BACKUP PLUGGABLE DATABASE命令备份一个或多个PDB数据库。
[oracle@localhost ~]$ rman target /
恢复管理器: Release 12.1.0.2.0 - Production on 星期二 3月 22 17:11:27 2016
Copyright (c) 1982, 2014, Oracle and/or itsaffiliates. All rights reserved.
已连接到目标数据库: CDB (DBID=2023252752)
RMAN> backuppluggable database pdb1;
启动 backup 于 22-3月 -16
使用目标数据库控制文件替代恢复目录
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=57 设备类型=DISK
通道 ORA_DISK_1: 正在启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集内的数据文件
输入数据文件: 文件号=00009 名称=/u01/app/oracle/oradata/cdb/pdb1/sysaux01.dbf
输入数据文件: 文件号=00008 名称=/u01/app/oracle/oradata/cdb/pdb1/system01.dbf
输入数据文件: 文件号=00010 名称=/u01/app/oracle/oradata/cdb/pdb1/pdb1_users01.dbf
通道 ORA_DISK_1: 正在启动段 1 于 22-3月 -16