Oracle RAC环境中归档日志的存放方式有如下几种方式:
1. 本地文件系统
2. 集群文件系统
3. 网络文件系统(NFS)
4. 自动存储管理(ASM)
归档日志的存放方式决定了归档日志可以采用的备份方式。对于方式2、3、4,归档日志的备份与单实例归档日志的备份是一样的,对于方式1,归档日志的备份要复杂一些,可以通过每个节点各自进行备份,也可在备份软件(这里只Veritas Netbackup)端进行一定的设置,然后统一备份所有节点的归档日志。但要注意归档日志的恢复,应该让所有thread生成的归档对应用归档的实例可见。
方式2、3、4,RMAN脚本如下:
RUN {
ALLOCATE CHANNEL ch00 device type sbt;
sql 'alter system archive log current';
BACKUP
FORMAT 'arch_%d_%s_%p_%t'
(archivelog all delete input);
RELEASE CHANNEL ch00;
}
备注:在采用NFS方式进行归档日志备份时可能会遇到如下错误:
ORA-27054: NFS file system where the file is created or resides is not mounted with correct options
该错误的解决方法有两种:
1.在进行NFS文件系统mount的时候指定rszie、wsize大于等于32768
2.通过在数据库参数文件中加入*.event='10298 trace name context forever, level 32',跳过oracle10g对NFS文件系统的检查
对于方式1,RMAN脚本如下:
方法一:其中like后指定的路径可区分出不同thread的归档即可,RMAN脚本如下:
RUN {
ALLOCATE CHANNEL ch00 device type sbt;
sql 'alter system archive log current';
BACKUP
FORMAT 'arch_%d_%s_%p_%t'
(archivelog like '/archive2/%' delete input);
RELEASE CHANNEL ch00;
}
方法二:在Veritas Netbackup中进行特定设置
首先设置TNS可以连接到不同的节点,然后在NBU中建立两个Policy,policy1指定备份脚本,policy2的备份脚本为空,policy2的只设置Application Backup类型的schedule。RMAN脚本如下:
RUN {
ALLOCATE CHANNEL ch00 device type sbt connect'sys/sys@node1'parms "ENV=(NB_ORA_POLICY=node1_policy, NB_ORA_CLIENT=node1_vip)";
ALLOCATE CHANNEL ch01 device type sbt connect'sys/sys@node2'parms "ENV=(NB_ORA_POLICY=node2_policy, NB_ORA_CLIENT=node2_vip) ";
sql 'alter system archive log current';
BACKUP
FORMAT 'arch_%d_%s_%p_%t'
(archivelog all);
RELEASE CHANNEL ch00;
RELEASE CHANNEL ch01;
}