Oracle RAC SCN传播方式(Broadcast-On-Commit)
BOC的SCN传播方式的前提是,只有当某个节点的SCN发生改变时才进行传播,LGWR进程会与LMS进程协同工作来同步节点间的SCN,LGWR负责将redo信息写入重做日志文件并发送最新的SCN,LMS进程负责节点间SCN信息的传播。
BOC的SCN传播方式分为两种:间接方式和直接方式 间接方式需要经历8个步骤: 步骤1:用户进程提交事务,并通知LGWR进程,之后进入等待状态,对应的等待事件是log file sync。 步骤2:LGWR进程将事务的提交SCN发送给本地的一个LMS进程。 步骤3:LGWR进程将事务对应的重新信息写入重做日志文件。 步骤4:本地节点的LMS进程将包含了SCN的信息发送给所有远程节点的LMS进程。 步骤5:所有远程节点的LMS进程接收到了SCN信息并反馈给本地节点的LMS进程。 步骤6:重新信息的I/O请求完成,并反馈给LGWR进程。 步骤7:本地节点的LMS进程通知LGWR,所有远程节点都已经收到了事务的SCN。 步骤8:本地节点的LGWR进程通知用户进程事务提交结束。 步骤2和步骤3是同时发生的,目的是为了提高SCN的传播效率 步骤5和步骤6的发生顺序可能是相反的,取决于集群私网和重做日志文件所在磁盘的I/O性能 直接方式需要经历7个步骤 步骤1:用户进程提交事务,并通知LGWR进程,之后进入等待状态,对应的等待事件是log file sync。 步骤2:LGWR进程直接将包含了事务提交SCN的信息发送给所有远程节点的LMS进程 步骤3:LGWR进程将事务对应的重新信息写入重做日志文件。 步骤4:所有远程节点的LMS进程接收到了SCN信息并反馈给本地节点的LMS进程 步骤5:重新信息的I/O请求完成,并反馈给LGWR进程。 步骤6:本地节点的LMS进程通知LGWR,所有远程节点都已经收到了事务的SCN。 步骤7:本地节点的LGWR进程通知用户进程事务提交结束。 直接方式比间接方式少了一个步骤,由LGWR根据系统负载自行决定使用哪种SCN的传播方式。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |