您好,匿名用户
随意问技术百科期待您的加入

MySQL主从

0 投票

MySQL5.5.8 binlog主从replication,从库所在主机磁盘满,发现后清理磁盘,得出空余空间。在磁盘满期间,从库报出空间不足的异常,恢复磁盘空间后,从库与主库的数据是否会不一致?还是会将磁盘满期间的数据在清理磁盘后重做?

更新

slave在同步master的数据时有会有两个线程,IO线程和SQL线程,前者负责同步master的Binlog日志生成RelayLog,SQL负责根据RelayLog中的内容中执行SQL在slave端进行数据重做。现在虽然slave出了问题,但是情况比较特殊,是磁盘满了。所以我把问题细化下,看看大家对这几个分开的问题怎么理解?
1.假设不是磁盘满的情况下,IO线程同步没有问题,那relaylog将继续与master的binlog同步,但是slave的SQL线程执行出错,此时slave的SQL线程是否会挂起不再继续执行relaylog后续的SQL,还是会自动跳过(亦或是需要手动执行跳过)当前SQL继续执行relaylog后续的SQL?
2.当前的情况是磁盘满,那么relaylog没有空间追加,报出空间不足的异常,这样IO线程是会不管异常如何,继续同步binlog,还是会挂起等待空间恢复后继续同步?如果relaylog无法写入,SQL线程是不是就无新的SQL可执行,同时将会挂起?如果relaylog写完那一刻满了,SQL线程执行SQL要写入数据文件时发现磁盘满报出异常,SQL线程是否会跳过当前的SQL继续往后执行(即使失败了),还是会挂起等待重做?
希望能按情况具体讨论下这个问题....

用户头像 提问 2012年 12月1日 @ Ziggs 上等兵 (345 威望)
分享到:

1个回答

0 投票

大盗贼的答案,所说的串行部分是对的。
刚才问了专家,专家表示:
slave上sql执行失败以后,binlog同步不会继续,会停下来,就停在错误的地方。
除非你在my.cnf里配置 slave_skip_errors 调过错误。

用户头像 回复 2012年 12月1日 @ Alistar 上等兵 (326 威望)
提一个问题:

相关问题

+1 投票
1 回复 23 阅读
用户头像 提问 2012年 12月1日 @ Hecarim 上等兵 (361 威望)
+1 投票
1 回复 1,800 阅读
0 投票
1 回复 34 阅读
用户头像 提问 2012年 12月1日 @ Teemo 上等兵 (318 威望)
0 投票
0 回复 41 阅读
0 投票
1 回复 33 阅读

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...