我有一个从服务器,大约在一个月前出现错误,并且远远落后于主服务器。我修复了错误,现在正在追赶主服务器,但速度非常慢。它的速度是实际时间的 1.3 倍。当这些写入首次发生时,我使用的数据库资源不到 10%,因此服务器的速度不应该成为问题。
有什么设置可以切换来帮助从属设备赶上主设备吗?
答案1
MySQL 仅使用从服务器上的一个线程来应用来自主服务器的复制语句。
在主服务器中,SQL 语句以多线程并发方式执行,但在从服务器中应用时,它们会被序列化。这就是为什么您的从服务器可能看起来未得到充分利用,而实际上却在努力追赶。
如果您的服务器远远落后于主服务器,那么一个选项是在从服务器上恢复主数据库的最新备份,并从该点重新配置复制。
我建议您查看此站点以获取有关复制滞后的更多详细信息。http://www.mysqlperformanceblog.com/2007/10/12/managing-slave-lag-with-mysql-replication/
还有一个工具马特吉特您可能考虑的工具集:
此工具实现了 Paul Tuckfield 著名的“oracle”算法,用于提前读取中继日志中的从属 SQL 线程,将查询重写为 SELECT 并执行它们以预热从属缓存。这可以帮助受 I/O 限制的从属 SQL 线程在某些情况下运行得更快,因为它不必等待那么多 I/O 完成。
仅我个人意见。
祝你好运。
弗兰。