喜欢IT的一个“武痴”! 喜欢追求新技术、探索技术!
分类: Oracle
2014-11-03 10:59:48
使用OSB进行ORACLE rac数据库的备份
王路平
ORACLE数据库备份支持disk和tape两种类型,disk方式使用format指定备份的目录,而使用tape类型,则需要第三方备份软件或者采用ORACLE的OSB备份软件来提供sbt备份存储类型的支持。
本文主要讲述OSB进行ORACLE数据库RAC的备份设置,该备份软件的具体设置,比如带库和带机的设置在此不做详细述说,如果备份服务器端配置好了后,只需要使用RMAN脚本,将设备改成type sbt方式备份即可,所有的schedule定制都需要再ORACLE ENTERPRISE MANAGER界面上完成。
1. RMAN访问带库的设置
ORACLE 11g的database中,已经集成了OSB的相关软件,所以以前的libobk.so符号链接不需要再做了。
OSB只要在数据库服务器上安装client端即可,在setup的时候只选择C选项。
2. RMAN用户的设置
在OSB web管理界面上选择configure的users中,一般选择ORACLE用户,点击EDIT,将rman和cmdline两项赋予oracle用户即可。同样可以使用obtool命令来创建,示例如下:
mkuser -c oracle -p oracle -U oracle -G dba -N no -h *:*:*+rman+cmdline oracle
3. 创建MF(media family)
该步骤如果没有手工创建media family,那么rman备份的时候会自动缺省使用rman-default的MF,建议创建自己的一个MF。
完成以上的步骤后,即可使用rman的脚本进行数据库的备份测试了,
4. 创建备份脚本
#!/bin/sh
ORAHOME=/opt/oracle/app/oracle/product/11g/db
ORAOWNER=oracle
dt=`date +%m%d`
rman target / >> /export/home/oracle/db_level0_$dt.log << EOF
run{
allocate channel ch1 type sbt;
allocate channel ch2 type sbt;
backup incremental level 0 database;
sql 'alter system archive log current';
release channel ch1;
release channel ch2;
}
run
{
allocate channel ch1 type sbt connect sys/Shyzy123@SPZXDB1;
allocate channel ch2 type sbt connect sys/Shyzy123@SPZXDB2;
backup archivelog all;
crosscheck backup;
delete noprompt obsolete;
delete noprompt expired backup;
release channel ch2;
release channel ch1;
}
EOF
以上脚本已经通过测试,下面对脚本稍加说明:
a. RAC的备份只要在一个节点上进行脚本的执行就可以了,因为,RAC环境中,数据库数据都是存放在在存储上的,比如使用了ASM或者CLUSTER File System等方式进行存放。
b. 通过OSB备份软件,只需要指定备份类型为sbt即可,OSB的进程能够知道去哪儿找到带库,并mount相应的磁带。
c. 如果RAC的归档日志存放在不同的节点上话,如果需要备份这些日志,以及备份好这些日志删除的话,由于只在一个节点上进行备份,这样脚本就有可能存在权限问题,解决方法就是分别connect对应的实例,使用rman的configure命令。
d. 在执行脚本节点的tnsnames.ora文件中加入各个节点实例名的解析,比如inst1,inst2,需要注意的地方是,service?_name一定都要用RAC的service_name。
5. 备份策略的制定
备份策略可以按照0级备份和增量1级和2级的备份来制定灵活的备份方案policy,所涉及到的备份策略可以通过OEM管理软件来进行设置和定制,也可以通过以上的备份脚本,进行crontab的制定。