表空间级热备份:
在使用表空间级备份之前,我们需要先解释一下catalog数据库(此catalog非NBU之catalog,是oracle的内容)。Catalog也是一个数据库(几十兆而已),只不过这个数据库用来保存备份信息,一个恢复目录可以用来备份多个数据库。RMAN可以在没有恢复目录(NOCATALOG)下运行,这个时候备份信息保存在控制文件。保存在控制文件的备份信息是很危险的,如果控制文件的破坏将导致备份信息的丢失与恢复的失败,而且,没有恢复目录,很多RMAN的命令将不被支持。所以对于重要的数据库,建议创建恢复目录。
在表空间级热备份中,需要首先创建一个catalog数据库,所需命令如下:
1, 为目录创建一个单独的表空间:
SQL>Create tablespace TS_RMAN datafile '/oracle/catalog_rman.bdf size 50m;
2, 创建RMAN用户:
SQL>Create user RMAN identified by RMAN default tablespace TS_RMAN temporary tablespace temp;
3, 给RMAN授予权限:
SQL>Grant connect , resource , recovery_catalog_owner to rman;
4, 连接到目标数据库和CATALOG数据库:
rman target system/manager@target_tnsname rcvcat rman/rman@catalog_tnsname
其中,target_tnsname是我们想要备份的数据库名称,catalog_tnsname是刚才创建rman表空间和rman用户所在数据库的名称,可以和备份数据库一个,因为我们这里仅仅是备份其他表空间。
5, 创建CATALOG用户的表:
rman>create catalog
6, 登记目标数据库:
rman>register database
这样,我们就成功创建了catalog表空间来存放备份信息。
为了使得用户可以热备份oracle表空间,NBU为用户提供了一个模板脚本:/usr/openv/netbackup/ext/db_ext/oracle/samples/rman/hot_tablespace_backup.sh。用户需要修改的内容,除了和上述数据库级热备份需要的参数外,还需要下列参数:
RCVCAT_TNS:就是catalog表空间所在的数据库名称;
RCVCAT_CONNECT_STR:就是连接RCVCAT_TNS数据库所需要的rman的帐号信息,在本例中就是“RCVCAT_CONNECT_STR=rman/rman”。
此外,在模板脚本中,只是热备份用户的SYSTEM表空间,而用户可以修改脚本,使得可以热备份其他的表空间。首先我们需要查找到数据库中所有的表空间,见图三:

图三:查看数据库的表空间
在找到需要热备份的表空间后,用户需要修改hot_tablespace_backup.sh脚本中的字段,见图四:

图四:修改表空间名称
由图四可知,我们在脚本中修改黄圈以内的名称为任何存在的表空间名称即可。
这样,对于表空间级的备份脚本就修改完毕了,用户可以试着运行该脚本,并通过输入文件hot_tablespace_backup.sh.out来解决可能出现的错误(一步一步教着,应该没什么错误吧!),如果脚本可以运行正常,那么就需要将其加入到NBU的备份策略中,并设置好全备份和差分备份的日程表即可。
通过本文的介绍,用户可以通过修改NBU自带的备份脚本,对oracle系统做数据库级或者表空间级的热备份了。希望本文可以在用户使用NBU oracle代理的过程中,加深用户对于oracle数据库和NBU的理解。