登录
首页 >  数据库 >  MySQL

新特性解读 | 组复制成员的自动保护模式

来源:SegmentFault

时间:2023-01-29 09:35:06 344浏览 收藏

来到golang学习网的大家,相信都是编程学习爱好者,希望在这里学习数据库相关编程知识。下面本篇文章就来带大家聊聊《新特性解读 | 组复制成员的自动保护模式》,介绍一下MySQL、数据库,希望对大家的知识积累有所帮助,助力实战开发!

原文:https://mysqlhighavailability...

MySQL 通过组复制,可以提升数据库服务的高可用。即使某台服务器出现故障,只要不是全部或大多数,系统仍可保持服务是可用的。

小组成员无意中离开小组的集中情况:

  1. 遇到申请错误之后
  2. 遇到恢复错误之后
  3. 在大多数成员都与之失联的情况下(
    group_replication_unreachable_majority_timeout
    的值不为 0)
  4. 当该组的另一名成员怀疑超时使之被驱逐
  5. 在同步组更改时遇到报错之后
  6. 选主错误之后
  7. 当自动归队开启,但尝试后未成功

离开小组后,失效成员的行为由选项

group_replication_exit_state_action
决定。

直到 8.0.17,此行为可能是:

  • READ_ONLY 禁用服务器上的写操作(默认)
  • ABORT_SERVER 关闭服务器

在 8.0.18 中新增:

  • OFFLINE_MODE 关闭所有链接,并禁止没有 CONNECTION_ADMINSUPER 权限的用户建立新的连接。

此模式包括 READ_ONLY 效果,否则具有 CONNECTION_ADMINSUPER 权限的用户将能够进行无法同步到复制组的更改。

DBA 可为服务器自定义发生故障后的行为,并在严重情况下保持整个系统的正常运行。例如,在所有成员由于内网故障导致不可访问的情况下,所有成员将遵循选项配置的行为。

如果 DBA 配置为 READ_ONLY,则只能阻止写入。使用 OFFLINE_MODE 阻止所有操作;甚至使用 ABORT_SERVER 完全停止服务器。

当配置

group_replication_exit_state_action = OFFLINE_MODE
值的服务器故障离组时,我们可以在
performance_schema.replication_group_members
表上看到其 ERROR 的状态:

SELECT * FROM performance_schema.replication_group_members;

离线模式可以通过以下方式检查:

SELECT @@GLOBAL.offline_mode;

修复导致意外退出的故障后,DBA 需要取消 OFFLINE_MODE 的设置:

SET @@GLOBAL.offline_mode = OFF;

除了重新加入该成员之外。

结论

我希望这种新的防护模式可以帮助您改善和更好地配置系统的高可用性,从而使您可以专注于应用程序!

今天带大家了解了MySQL、数据库的相关知识,希望对你有所帮助;关于数据库的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

声明:本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>
评论列表