在RAC数据库中,RMAN备份的时候需要找到所有的归档日志,如何让RMAN发现所有的归档日志呢?
下面是几个常用的方法:
1、最简单就是使用OCFS了,但是目前只能限于WINDOWS和Linux上面,当然UNIX上也有相应的cluster
filesystem,但是都是要付费的,OCFS是免费的,一直听说Oracle要发布
Solaris上面的OCFS,但是到现在还没有消息。
如果如用OCFS作为归档日志存放地,那么每个节点的实例都把归档日志放到同一个OCFS上面,这样RMAN备份就可以
RMAN>backup
archivelog all delete all input format
'.......';
因为RMAN可以发现所有的归档日志。
2、使用UNIX使用NFS,WINDOWS使用网络驱动器方式。这样也可以做到,在一个节点上RMAN就能发现所有的归档日志了。
3、使用cross-instance
archival方式,比如有两个RAC实例:rac1和rac2
rac1和rac2的
log_archive_dest_1='location=c:\arch'
可以设置
rac1的
log_archive_dest_2='service=rac2 arch'
rac2的 log_archive_dest_2='service=rac1
arch'
类似standby数据库的设置,这样也可以做到每个节点都有所有的归档日志。
4、归档日志就存放在本地的硬盘上面,这也,任何节点只有它自己的归档日志。
处理结果:
对于方式1、2
RMAN备份归档日志很简单,只需要分配一个通道就可以了,并且备份完成后RMAN可以删除所有节点上的归档日志。
对于3,虽然可以只用一个通道就可以备份说有的归档日志,但是RMAN删除的时候不会把所有归档日志删除,而是保留每个实例通过log_archive_dest_2得到归档日志。不过这样也
有一个好处:在数据库recover的时候,不用restore归档日志。
对于4,如果没有带库,要使用下面的方法来备份归档日志:
run16:52
2010-4-2
{
allocate channel type d1 type disk connect
'sys/sys@rac1';
allocate channel type d2 type disk connect
'sys/sys@rac2';
backup archivelog all delete all input format
'........';
release channel d1;
release channel
d2;
}
RAC建立归档步骤:
1.建立所需的目录arch1,arch2,并修改相应的权限,通过nfs,在两个节点上分别mount上去
2.修改spfile相关的参数文件
alter
system set log_archive_dest_1='LOCATION=/arch1' scope=spfile sid='*'
alter
system set log_archive_dest_2='LOCATION=/arch2' scope=spfile sid='*'
alter
system set cluster_databae=false scope=spfile
sid='node1'
3.关闭两个节点
shutdown immediate
4.启动节点到mount状态
startup
mount
5.修改为archivelog状态
alter database
archivelog;
6.修改cluster_database为true
alter system set
cluster_database=true scope=spfile sid='*'
shutdown
immediate
7.重新启动2个实例
阅读(6932) | 评论(0) | 转发(0) |