我已经使用2x128Gram 24核心云服务器设置了MYSql复制。我们有一个庞大的实时数据库,由于大量的数据输入,无法体验停机时间。
我已经发现,在处理主从服务器时,如果重新启动服务,bin_log和位置更改。因此,需要更新从服务器,即使这样,也会丢失它没有新的bin_log集的期间的数据。
处理我的数据库是400多个大,并要求在99%的时间,我无法锁定表,转储,传输和导入。
由于所有读取都是从它完成的,并且数据与当前用户交互高度相关,因此,从服务器也是非常无效的,因此不能体验缺少数据或停机时间。
此外,我正在使用MySQL5.5
因此,我的问题如下:
1)如果有什么可以导致主服务器上的bin_log发生更改的话,还会发生什么呢?( 2)如何使我的奴隶在不重做整个奴隶的情况下,巩固和追赶丢失的数据。
任何帮助都将不胜感激。
发布于 2015-01-27 13:48:23
1)在主目录上执行的任何INSERT、UPDATE、ALTER等类型查询都将写入二进制日志,从而导致MASTER_LOG_POS增加
此外,如果Master正在接收来自另一个Master的更新(在Master安装程序中),如果您启用了LOG_SLAVE_UPDATES,那么这些更新也会写入二进制日志。
每次重新启动服务时,二进制日志都会被刷新,并将其递增1。
2)在奴隶上运行SHOW SLAVE STATUS,并记录下MASTER_LOG_FILE。现在检查一下,这个文件仍然存在于主服务器上吗?如果没有,那么您就有了问题,并且需要从主副本(例如MYSQLDUMP)重新构建从属程序。
假设它确实存在,您应该只需发出一个START SLAVE命令,它就会开始追赶(希望如此)
接下来,再次运行SHOW SLAVE STATUS并检查SLAVE_IO_RUNNING和SLAVE_SQL_RUNNING。他们都是YES,那么一切都很好。寻找SECONDS_BEHIND_MASTER,让您了解它的背后有多远。
如果其中任何一个是NO,请查看错误(LAST_IO_ERROR或LAST_SQL_ERROR),以了解问题所在。
https://dba.stackexchange.com/questions/90299
复制相似问题