美文网首页
MGR管理专题

MGR管理专题

作者: 这货不是王马勺 | 来源:发表于2021-09-30 17:51 被阅读0次

    一.自增id

    如果在数据库内使用到了自增的字段,最好在/etc/my.cnf中添加auto_increment_increment、auto_increment_offset两个参数,防止发生事务冲突(MGR其实本身就有防止自增量事务冲突的能力,运用了GROUP_REPLICATION_AUTO_INCREMENT_INCREMENT这个参数,但如果不去手动设置,自增量的间隔会非常奇怪)。

    show variables like '%increment%'
    

    默认间隔为7,auto_increment_offset和server_id相同;当组复制正常停止时,自动修改的的值会被还原为原始值。自动设置自增值避免了人工为组成员设置自增值时,不小心设置了相同的自增值导致写操作被回滚的风险。默认值7是在组复制最大成员数量(9个成员)基础上的一个均衡值。
    注意:只有当系统变量auto_increment_increment和auto_increment_offset保持默认值时,才会按照上述规则对自增值执行自动修改与恢复操作。否则,组复制不会自动修改。从MySQL 8.0开始,当组复制处于单主模式时(只有一个主要节点可提供写操作),组复制也不会自动修改自增。
    从官网查到的文档上,建议最好为:
    auto_increment_increment=n(组内成员数)
    auto_increment_offset=server_id(这里的server_id最好为1,2,3这样的自增量,且每台都不同)

    我们单主模式就直接都改成1了:

    set @@global.auto_increment_increment = 1; 
    set @@auto_increment_increment = 1;
    
    set @@global.auto_increment_offset = 1;
    set @@auto_increment_offset = 1;
    

    自增ID 重新增长:

    ALTER TABLE 表名 AUTO_INCREMENT=1;
    

    切换多主模式参考https://www.cnblogs.com/nothingonyou/p/12145348.html

    相关文章

      网友评论

          本文标题:MGR管理专题

          本文链接:https://www.haomeiwen.com/subject/iwyenltx.html