重做日志组

更新时间:2023-10-01 01:52

重做日志组是在集群环境中,每个节点上的数据库实例都需要自己的重做日志组。

由来

在集群环境中,每个节点上的数据库实例都需要自己的重做日志组。例如,如果集群数据库拥有三个节点和实例,每个实例至少有两个重做日志组,则整个集群至少需要6个联机重做日志组。

一般而言,两个日志组是最低限量,工程上可以给每个实例更多的组。一则提高效率,二则提高恢复性。但无论多少组,所有日志文件存放于共享存储介质上,并可以被其他实例访问。

实例恢复过程

在集群数据库中,实例恢复的过程与单节点是一样的,都是通过存储在联机重做日志中的日志信息自动进行实例恢复。不同的是,在集群环境中,所有节点的重做日志都必须可被其他所有节点访问。当由于这个节点的突然崩溃事故而进行实例恢复时。其他仍然完好的节点数据库实例就可以对其联机重做日志进行访问,执行实例恢复。即便崩溃的实例无法再行启动,其重做日志仍可访问,其日志数据仍可被其他实例使用,进行已提交事务的前滚和未提交事务的回滚,从而实现集群角度的崩溃恢复。

由于实例恢复由集群中完好的集群节点完成,所以崩溃的节点重新启动时,无须进行实例恢复。同理,只要集群还有一个存活节点,数据库数据就是完整的。如果所有节点全部崩溃,则第一个再启动节点将完成恢复操作。

由于每个节点都需要有自己的私有日志组,所以在集群数据库节点上,每个实例都会有一个独立的日志线程号,这个线程号由参数THREAD确定,不会改变。在下例中,服务器参数文件中的thread参数定义了节点一(orcl1)实例的线程号为1,而节点而节点二(orcl2)实例的线程号为2。

免责声明
隐私政策
用户协议
目录 22
0{{catalogNumber[index]}}. {{item.title}}
{{item.title}}