Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1908631
  • 博文数量: 346
  • 博客积分: 10221
  • 博客等级: 上将
  • 技术积分: 4079
  • 用 户 组: 普通用户
  • 注册时间: 2009-06-01 19:43
文章分类

全部博文(346)

文章存档

2012年(1)

2011年(102)

2010年(116)

2009年(127)

我的朋友

分类: Oracle

2011-05-09 22:38:04

在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个实例
阅读(6881) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~