我有两个数据库,通过主-主复制同步数据。
该设置是使用以下指南创建的:
- digitalocean.com/community/tutorials/how-to-set-up-mysql-master-master-replication
直到两天前,该系统已经运行良好一年多了,但现在我遇到了这个奇怪的问题。
服务器 1:
- 从属状态、主状态和 my.cnf 复制设置:https://i.cloudup.com/IjK7fPVaN9-3000x3000.jpeg
服务器2:
- 从属状态、主状态和 my.cnf 复制设置:https://i.cloudup.com/sDyBxeuqt2-1200x1200.jpeg
如您所见,服务器 2 已正确同步,但服务器 1 远远落后于服务器 2 的主位置。服务器 1 的从属读取位置不会尝试“赶上”或尝试匹配主状态。当我使用以下命令手动使它们匹配时:
CHANGE MASTER TO MASTER_HOST = 'xx.xx.xx.xx, MASTER_USER = 'username', MASTER_PASSWORD = 'password', MASTER_LOG_FILE = 'mysql-bin.000001', MASTER_LOG_POS = 001;
服务器 1 的从属服务器与服务器 2 的主服务器 bin 日志位置相匹配,但是一两个小时后,它落后了并且一直落后。
我们正在运行:
- Ubuntu(服务器 1)和 Debian(服务器 2)操作系统
- 两个 MySQL 都运行 5.5.3
我不知道为什么直到两天前,它都运行正常,而现在服务器 1 却严重落后于服务器 2。这两个服务器之间的连接是否可能存在问题?
有人可以解释一下这个问题吗?
答案1
尽管我对这个主题没有正确的了解,但尽管我有几个主主复制,我还是认为日志位置可能指的是本地服务器的位置。在我看来,将数据写入复制到 master2 的 master1 只会增加 master1 上的日志位置。而直接写入 master2 则会增加它的日志位置。
我检查了我的一个副本,它显示出与您遇到的相同差异,尽管每个数据库的内容相同。所以我不会担心这个差异。
我个人只担心 Slave_IO_Running、Slave_SQL_Running、Seconds_Behind_Master 和“从属”上的错误。