mysql - 使MySQL数据库复制总是使用最空闲的节点?

标签 mysql database-replication

我们开始使用 MySQL 的多主复制管理器,我想知道是否可以将此设置视为多对称处理:进程从进程队列弹出,节点(在本例中为服务器) 最空闲的被选为作业。

似乎发生的事情是,服务仅在 mysqld 崩溃或消失时才切换到从服务器。

有没有办法使 MySQL 的数据库复制以更分布式的方式进行?也许除了 MMM 之外还有其他软件可以做到这一点?

有没有办法在 mysqld 变慢时(而不是仅在它失败时)将读取者角色切换到另一台服务器?

最佳答案

使用 Mysql 多主复制在一般情况下写入任意节点是不安全的。这是因为它是异步的。

始终写入同一个节点。我的意思是总是。仅当您确定其他节点已关闭时才写入其他节点,并且您确定在它关闭之前,整个二进制日志已被处理。

在实践中,这意味着总是写入一个节点。

无论如何,在多个节点之间分散写入对提高写入性能没有任何帮助,因为无论如何两个节点都必须完成所有写入。

关于mysql - 使MySQL数据库复制总是使用最空闲的节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2427419/

相关文章:

php - 将数组从 MySQL JOIN(有重复项)转换为嵌套关联数组

php - 无法更新 MYSQL

php - OnClick 函数获取下一条记录 PHP AJAX MYSQL

php - 实现异地备份 php/mysql 的最佳方式

mysql - 当我 SELECT multiple rows FOR UPDATE 时,我可以死锁吗?

mysql - Pentaho 报表设计器将年份显示为逗号分隔值

mysql - 在不同 mysql/mariadb 数据库上共享数据的最佳实践

cassandra - 是否可以仅从复制因子为 3 的 Cassandra 集群中的单个节点读取数据?

mysql - 为什么这个基于 CASE 的更新会导致复制偏差?

Mysql 数据库同步选项