RAC下的REDO和UNDO管理

如果对Oracle的redo和undo比较了解的话,就会知道这两个的重要性了,通过这两个重要的部分,Oracle保证体系的安全性,数据恢复和事务都是他们的主要目的。 

在RAC的环境下,Redo管理同单实例的系统一样,每个节点实例都需要至少2组logfile。各节点实例有自己独立的重做日志线程(由初始化参数thread定义),例如: 
SQL> select b.THREAD#,a.GROUP#,a.STATUS,a.MEMBER,b.BYTES,b.ARCHIVED,b.STATUS from v$logfile a,v$log b where a.GROUP#=b.GROUP#; 

THREAD# GROUP# STATUS MEMBER BYTES ARCHIVED STATUS 
------------------- ------- -------------------------------------------------- 
1 1 STALE +ORADATA/inth/onlinelog/group_1.257.660614753 52428800 YES INACTIVE 
1 2 +ORADATA/inth/onlinelog/group_2.258.660614755 52428800 NO CURRENT 
2 3 +ORADATA/inth/onlinelog/group_3.265.660615545 52428800 NO CURRENT 
2 4 STALE +ORADATA/inth/onlinelog/group_4.266.660615543 52428800 YES INACTIVE 

每个RAC的节点都有自己各自的log file group,相互分开,虽然每个实例各自独立的redo log file但是还是需要部署到共享存储中,必须保证可被所有的集群内的节点实例访问。当某个节点实例进行实例/介质恢复的时候,该节点上的实例将可以应用集群下所有节点实例上的重做日志文件(如果需要),从而保证恢复可以在任意可用节点进行。 

在RAC环境下,当我们运行alter system switch logfile的时候,仅仅对当前的节点上的相应的current redo thread进行日志切换并归档,并不作用于其他的节点 

但是对于alter system archive log current命令则有些差异,当运行altere system archive log current的时候,则是对所有的可用节点作用,所有节点实例上的redo thread进行切换并归档到归档文件里。 如果节点是不可用的,但是其redo log一样在共享储存里,所以一样可以作用到。 

对于undo,我们看到上面的介绍以后,也可以想象的到他的处理,对,和redo log一样,每个实例都有各自的undo段,可以用过XXX.undo_tablespace来指定。同样,虽然各自独立,但是考虑到整个CRS都需要他们进行一致性读和恢复的需要,这些undo也是存储在共享区域的。只有这样,当莫个节点crash以后,不在线或者不可用,但是其undo段一样可以被其他的节点使用,从而保证一致性读和可恢复性。 

以上仅是有关redo和udno在RAC环境下的基础知识,随着对RAC的研究,我们有深入的地方以后再总结。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

inthirties

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值