如何使用NBU热备份Oracle系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
注:在这里,我只会讲到如何修改备份脚本来进行备份,如果用户对于如何创建oracle备份策略、如何运行全备份和增量备份、如何寻找NBU提供的备份脚本模板等问题存在疑惑的话,请参加前文《用NBU备份oracle系统-冷备份》。
数据库级热备份:
对于数据库级热备份来说,我们可以利用NBU提供的脚本文件:
/usr/openv/netbackup/ext/db_ext/oracle/samples/rman/hot_database_backu p.sh,这是一个可执行脚本,内容就是在设置好运行oracle rman程序所需的一些环境变量后,从root用户切换到oracle系统用户的帐号下,利用rman程序,将数据库的数据文件、归档日志文件和控制文件备份到用户指定的存储单元中。
在该文件中,我们需要修改如下参数(建议将该文件拷贝一份出来做修改,以免改错):
ORACLE_HOME:表示oracle所在的目录,NBU需要到其目录下执行相应的rman 命令;
ORACLE_SID:指明需要冷备份的数据库;
ORACLE_USER:oracle数据库所属的系统用户,NBU会先用该用户登录,再执行各种备份操作;
TARGET_CONNECT_STR:登录oracle数据库的帐号,必须是系统管理员,因为冷备份需要停止oracle数据库先;
热备份和冷备份模板脚本修改的区别在于:冷备份需要指定oracle启动文件参数,这是因为冷备份需要关闭和重新启动数据库,所以需要启动配置文件;而热备份不关闭数据库,所以不需要该变量。
重要:另外需要用户注意的是,NBU提供的脚本运行时,会在脚本所在目录下生成一个同名的.out文件,里面记录了NBU脚本运行时产生的日志,然而该脚本会将这个日志名称作为参数传递给rman,而rman无法识别该参数中“.out”中的“.”,所以当运行该脚本时,会出现图一所示的错误,解决办法是:要么用户在hot_database_backup.sh脚本中,将这条rman命令中的记录日志相关内容删除(图二);要么利用转义字符处理该字符串,使得rman可以正确识别该命令。
图一:执行NBU脚本出现的问题
图二:用户需要在脚本中所做的删除
这样,用户就可以将该脚本放到oracle备份策略中的备份选择中并执行它了。
小窍门:为了保证NBU脚本没有问题,用户在运行NBU备份策略之前,最好手动运行该脚本,并通过查看相关的“.out”文件来检查是否脚本可以运行正确,如果脚本运行错误,则用户输入“# echo $?”则返回非零值,在这种情况下,用户需要从输入文件中发现错误原因并修改运行脚本。
只有该脚本可以手动运行成功后,才能在备份策略中运行成功。
表空间级热备份:
在使用表空间级备份之前,我们需要先解释一下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_tnsnam e是刚才创建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_back up.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的理解。