具有故障转移功能的 MariaDb 主从

标签 mariadb

我有一个与 MariaDb 实例相关的业务需求,该实例应该在具有故障转移功能的主从配置中工作。

查看我看到的文档,可以配置多集群主机 (galera) 或简单的主从副本。

配置主从+故障转移有什么建议吗?

非常感谢 罗伯托

最佳答案

MySQL/MariaDB 主从复制非常适合处理读取密集型工作负载。它还用作提高数据库可用性的冗余策略和备份策略(即在从服务器上拍摄快照/备份以避免中断主服务器)。如果您不需要多主机解决方案带来的所有麻烦——即使使用 MySQL 集群或 MariaDB Galera 集群——这是一个很好的选择。

配置需要一些努力。有几个指南包含相互矛盾的信息(例如 MySQL 与 MariaDB、位置与 GTID)和几个可能影响您的实现的决策点(例如行与语句二进制日志格式、存储引擎选择),您可能需要拼接将各个部分组合在一起形成您的最终解决方案。我在 MariaDB 10.1(GTID,行 binlog 格式)和混合的 MyISAM 和 InnoDB 存储引擎方面运气不错。我在主服务器上为每个从服务器创建一个从服务器用户,并且我不复制 mysql 数据库。 YMMV。这guide是一个很好的起点,但它并没有真正涵盖 GTID .

故障转移是一个完全独立的蜡球。您将需要某种反向代理(例如 MaxScale 或 HAproxy)或 float IP 地址在您的 master 前面,以适应 master 的变化。 (可能有一种方法可以在客户端执行此操作,但我不推荐它。)必须监视集群的运行状况,并且当需要将从属提升为新主控时,有一个整体必须执行的步骤顺序。 MySQL 提供了一个名为 mysqlfailover 的实用程序以促进此过程,但据我所知,它与 MariaDB 不兼容。相反,你可以看看 replication-manager ,这似乎是 MariaDB 对 mysqlfailover 的基于 Go 的回答。它似乎是一个非常复杂的工具。

关于具有故障转移功能的 MariaDb 主从,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39243894/

相关文章:

docker - InnoDB:为文件 XXX.ibd 预分配 147456 字节失败,错误 2

mysql - 需要帮助合并三个表的外键

SQL(Mariadb)将逗号分隔的字符串拆分为行

mysql - MariaDB 无法更改/禁用 sql 模式

mysql - 带有子查询的 HAVING 子句中使用的非分组字段

mysql - MariaDB node.js 的 pool.getConnection 的 typescript 错误

mysql - 在没有 Intersect 的 MariaDB 中进行 Intersect 查询时出错

mysql - WSO2 API Manager Mysql数据库初始化

mysql - 为什么运行 docker 容器后 mysql 数据所有权更改为 systemd-journal-remote

mysql - 奇怪的 MySQL 复制更新错误 (Magento)