我有一个MySQL-MMM集群,有三个数据库服务器(两个主服务器和一个从服务器)。 最近复制被直接插入到从属数据库服务器的人破坏了。 在我发现这个之后,我重新build立了从db1系统到db2和db3系统的复制。 现在复制正在运行, mmm_control show显示服务器全部在线:
[root@host ~]# mmm_control show db1(10.1.0.21) master/ONLINE. Roles: reader(10.1.0.31), writer(10.1.0.30) db2(10.1.0.22) master/ONLINE. Roles: reader(10.1.0.32) db3(10.1.0.23) slave/ONLINE. Roles: reader(10.1.0.33)
但是,当我检查所有的状态检查,我看到db1已经打破复制:
[root@host ~]# mmm_control checks all db2 ping [last change: 2010/11/24 03:57:48] OK db2 mysql [last change: 2010/11/27 03:21:42] OK db2 rep_threads [last change: 2010/11/27 03:23:19] OK db2 rep_backlog [last change: 2010/11/24 03:57:48] OK: Backlog is null db3 ping [last change: 2010/11/24 03:58:15] OK db3 mysql [last change: 2010/11/27 03:19:21] OK db3 rep_threads [last change: 2010/11/27 03:23:06] OK db3 rep_backlog [last change: 2010/11/24 03:58:23] OK: Backlog is null db1 ping [last change: 2010/11/24 03:57:48] OK db1 mysql [last change: 2010/11/27 03:22:27] OK db1 rep_threads [last change: 2010/11/27 02:14:46] ERROR: Replication is broken db1 rep_backlog [last change: 2010/11/24 03:58:00] OK: Backlog is null
我需要做什么来修复db1复制,因为看起来数据库是同步的?
login到db1的mysql并执行“show slave status”,这会告诉你什么是错的。 如果您看到“I / O线程正在运行”和“正在运行的SQL线程”为“是”,则复制就可以了。 MMM可能会感到困惑。
在旁注:我认为你的MMMconfiguration是次优的。 与我在你的mmm_control显示输出中看到的一样,如果你的主节点主机出现故障,你的从节点将把业务量增加一倍,除非负载均衡(它将从主节点获得读者angular色,因为没有主节点可以拥有多于一个angular色更多,然后任何其他主机)。 更可取的select是两个主人和两个奴隶,其中主人只有作家angular色,奴隶都有一个读者angular色。 只是我2美分:)
这意味着复制线程处于脱机状态 – 请检查/ var / log / mysql-mmm / logs以获取可能的线索。 你可以运行一个简单的'mmm_control set_offline db1',后跟一个'mmm_control set_online db1'来查看是否打开它来恢复连接。
检查你的日志是关键,虽然 – 你想知道为什么repl线程死了 – 是否有一个声明失败? 这可能意味着如果错误不能被跳过,那么你的DB1不同步。