主副本数据并不是同时落磁盘,是先写入主分片的磁盘文件落地后,然后把数据转发给副本,副本数据再落磁盘,然后再转发给下一个副本,副本数据再落磁盘。
出现节点表数据不一致时,集群的自动同步程序会自动进行表分片数据的同步,并针对该表设置recover lock锁,会阻塞针对该表的ddl操作,但不会阻塞针对该表的select、insert、udpate、delete及数据加载操作;
同时,节点数据同步采用增量追加同步的方式进行,即在同步期间,该表新增的数据在同步结束后,会继续追加同步新发生的数据变化。
集群是基于SCN同步,SCN与时间无关,是集群gcluster层的全局参数,每次数据库有变动SCN值会加1. 有节点宕机,其他节点的SCN仍然会根据数据库变动增加,宕机节点重新启用后会跟SCN最大的节点同步。
NTP同步只是为了日志记录和分析精确,各日志中都会有具体时间记录,如果各节点时间不统一,对于各节点日志分析会带来误导。
集群升级时需要备份的表数据清单
'/opt/gcluster/userdata/gcluster/gbase/table_distribution.frm',
'/opt/gcluster/userdata/gcluster/gbase/table_distribution.MYD',
'/opt/gcluster/userdata/gcluster/gbase/table_distribution.MYI',
'/opt/gcluster/userdata/gcluster/gbase/nodedatamap.frm',
'/opt/gcluster/userdata/gcluster/gbase/nodedatamap.MYD',
'/opt/gcluster/userdata/gcluster/gbase/nodedatamap.MYI',
'/opt/gcluster/userdata/gcluster/gbase/audit_log.frm',
'/opt/gcluster/userdata/gcluster/gbase/audit_log.MYD',
'/opt/gcluster/userdata/gcluster/gbase/audit_log.MYI',
'/opt/gnode/userdata/gbase/gbase/audit_log.frm',
'/opt/gnode/userdata/gbase/gbase/audit_log.MYD',
'/opt/gnode/userdata/gbase/gbase/audit_log.MYI'
8512集群是对称部署方式,映射到8611集群的概念就是每一个物理节点上同时安装了coordinator和data集群节点。从8512升级到8611集群时,需要设置所有的集群节点都是coordinator节点和data节点。
例如8512版本2sg*2nodes的4节点集群升级到8611版本:
4节点集群从8512版本升级到8611时,不支持直接从4节点升级为4data+2coordinator,需要先升级为4data+4coordinator,然后再缩减2个coordinator。