我使用MySQL设置了2台服务器。它使用标准的复制设置,只有一个从设备,没有循环复制。
有没有办法以编程方式告知从属设备在从二进制日志中读取数据的距离?
如果我运行声明:
SHOW MASTER STATUS;
在主人身上,然后运行
SHOW SLAVE STATUS;
在从站上,我可以比较主状态中的位置列和从站状态的Read_Master_Log_Pos列,以确定从站后面的距离。
但是,这仅在从属设备正在从主设备写入的同一文件中读取时才有效。因此,如果从站仍在读取先前的日志文件,因为它正在后面运行,我无法弄清楚如何确定剩余多少数据,直到它赶上主机所在的当前位置。仅使用SQL的解决方案将是最佳的,但我对其他解决方案持开放态度。希望不是需要读取包含日志文件的目录的那个。
答案 0 :(得分:0)
我喜欢使用SHOW SLAVE STATUS中的'Seconds_behind_master'字段来确定MASTER-SLAVE服务器是否被捕获。作为辅助保护,我还对两个服务器上的特定表(即经常更新的表)进行COUNT(*)查询,然后比较记录计数。