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

万里数据库分布式GreatDB机房管理接口操作说明

原创 Dbb 2024-05-16
159

机房管理接口

添加机房

存储过程mysql.greatdb_add_zone
作用集群中添加一个新的机房信息
参数1zone_name:机房名称
参数2zone_id:机房 id 值,范围0-8
参数3city:机房所属城市
参数4elect_weight:机房选举权重值,范围0-9
版本5.0.8

需要注意的是,机房属性将影响添加新的sqlnode和datanode。添加sqlnode或者datanode时,需要保证待添加节点的 gdb_zone_name 参数和 group_replication_zone_id 参数和已经添加的某个机房匹配,否则会执行失败。(当然,如果添加的NODE_SINGLE的datanode节点,不需要配置group_replication_zone_id 参数。)

关于机房的说明:

  1. 添加机房时,需要指定elect_weight选举权重参数,该参数用于更新datanode节点的group_replication_member_weight系统变量值。通过集群的统一管理,保证机房elect_weight权重更大的datanode节点,其对应的group_replication_member_weight系统变量值也更大。同时,通过数据节点的group_replication_member_weight,影响主节点故障后的选主优先级。
  2. 添加机房时,指定的zone_name和zone_id需要匹配实际的配置。
  3. 添加机房时,对于elect_weight参数值,建议主机房给定更大的数值;相应的,备机房给定一个小于主机房的参数值;如此,当主机房单一主节点故障时,新主还能落在主机房的节点中。也可以根据elect_weight权重,判别主备机房。
  4. 但本质上,集群不严格区分主备机房。不同的shard中的写入,以实际的主节点为准。在故障场景中,存在部分shard,主节点在A机房中,另一部分shard,主节点在B机房中的可能性。
  5. 关于zone_id,对应的是group_replication_zone_id参数,该参数是greatdb序列产品中引入的系统变量。在group_replication复制组中,当存在多个zone_id的情况下,在满足多数派协议的基础上,还要求每个zone_id最少有一个节点同步到了数据。利用这种特性,通过多机房部署指定不同的zone_id,可以确保备机房包含最新数据。

删除机房

存储过程mysql.greatdb_drop_zone
作用从集群中删除一个机房信息
参数zone_name:待删除的机房名称
版本5.0.8

如果该机房中还存在任何一个sqlnode或者datanode节点,将无法删除机房。

修改机房属性

存储过程mysql.greatdb_set_zone_var
作用修改机房的属性值
参数1zone_name:机房名称
参数2var_name:待修改的属性名
参数3var_value:修改后的属性值
版本5.0.8

该存储过程接口提供一个通用接口,用于修改机房的不同属性值。

当前,允许修改的属性包括(区分大小写):

  1. zone_name:修改机房名称。修改机房名称后,需要更新相应节点的gdb_zone_name系统变量值,其中,sqlnode会在更新机房名称的同时同步修改节点的gdb_zone_name;而对于datanode,会通过后台任务异步修改gdb_zone_name。
  2. city:修改机房所属城市信息。
  3. elect_weight:修改机房的选举权重, 范围为[0, 9]。对于NODE_MGR类型的datanode节点,会通过后台线程修改节点的group_replication_member_weight的系统变量值。新的变量值为 elect_weight * 10 + (old_member_weight % 10)

不允许修改的属性包括:

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

文章被以下合辑收录

评论