NDB 集群内部机制  /  NDB 集群启动阶段  /  NDB_STTOR 阶段 2

5.8 NDB_STTOR 阶段 2

DBLQH 块允许它与 DBTUPDBACC 交换内部记录,而 DBTC 允许它与 DBDIH 交换内部记录。DBDIH 内核块创建 NDB 内核使用的互斥锁,并使用 READ_NODESREQ 信号读取节点。通过对该信号响应的数据,DBDIH 可以创建节点列表、节点组等。对于节点重启和初始节点重启,DBDIH 也会请求主节点执行重启的许可。主节点会询问所有“活动”节点是否准备允许新节点加入集群。如果要执行初始节点重启,那么所有 LCP 在此阶段都将失效。

在初始节点重启时,不在集群中的节点的 LCP 不会失效。这是因为,在完成节点重启(包括本地检查点)之前,节点无法加入集群,也无法成为主节点,因此永远不会有机会使用任何已失效的 LCP 来重启系统。

CMVMI 内核块激活发送打包信号,这仅在数据库操作期间才会发生。在执行重做日志或节点恢复阶段期间,必须先启用打包才能开始任何此类操作。

DBTUX 块设置当前正在进行的启动类型,而 BACKUP 块设置要执行的重启类型(如果有)。在这两种情况下,块实际上都是设置了一个变量,其值反映了启动或重启类型。在此阶段,SUMA 块保持不活动状态。

PGMAN 内核块开始生成两个重复信号,第一个信号处理清理操作。此信号每 200 毫秒发送一次。另一个信号处理统计信息,每秒发送一次。