暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

GBase 8a集群的表scn生成和应用

原创 白军奎 2022-05-16
504

GBase 8a集群的每个数据节点上的分片表都记录一个scn号。通常用户无需关注分片表的scn,但因为一些原因(如为紧急恢复任务,清理了FEVENTLOG事件记录),当主备分片出现不一致状态且无FEVENTLOG记录时,我们可以通过主备分片的scn号进行一致性判断。

SCN的生成:

SCN由gcware管理集群维护,当用户向GBase 8a集群下发一个写操作时,gcware为这个写操作分配一个集群中当前最大scn号,并通过hint的方式随写操作一起下发到gnode计算节点。计算节点完成写操作后,进行提交时,将该写操作带有的scn一并写入到表元数据中。即:

  • scn是全局的,由gcware维护,可通过gcware的python接口查看当前最大scn取值,以及初始化集群的scn值。
  • scn采用int64存储,是个超大值,正常使用不会出现越界;
  • 只在执行了写操作上修改分片表的scn,其他未进行写入的分片表不调整scn。如有M个分片,一个update操作只影响到_n1分片,_n1分片表的scn设置为最新值,则_n2分片~_nM分片的scn保持不变。
SCN的应用:
通过scn可以人工判断GBase 8a集群主备分片的数据一致性,包括GBase 8a集群的双活集群中的主备集群的数据一致性。
表的scn的通过gnode数据库查询获取,SQL为:select TABLE_SCHEMA,TABLE_NAME,SCN from information_schema.tables where TABLE_SCHEMA='test' and table_name='tt1_n1'  。
在主备分片节点上,查询同一个分片表的scn,如不同,则表示主备分片表不一致;
在主备集群上,查询同一个表的所有分片的scn,所有分片的scn对应一致,则表示主备集群上该表的数据是一样的。为简化处理,可以找到scn最大的分片,如果分片编号一样、scn一样,则表示数据一致。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论