您当前的位置: 首页 > 数据库教程 > MySQL教程 > MySQL Replication 遇到 error 1236错误的修复方法

MySQL Replication 遇到 error 1236错误的修复方法

作者:不详 来源:网络 发布时间: 2014-07-22 09:41 点击:
MySQL Replication 遇到 error 1236 就有点麻烦了~ 通常都是 binlog 出问题造成的~ (Master 或 Slave 的 binlog 坏掉都有可能造成此错误) 通常遇到这个状况, 都是 Slave 的 binlog 坏掉, 就 Slave DB 的资料重倒来解决, 但是此次遇到是 Master 的 binlog 坏掉, 就有点

MySQL Replication 遇到 error 1236错误的修复方法

  MySQL Replication 遇到 error 1236 就有点麻烦了~ 通常都是 binlog 出问题造成的~ (Master 或 Slave 的 binlog 坏掉都有可能造成此错误)

  通常遇到这个状况, 都是 Slave 的 binlog 坏掉, 就 Slave DB 的资料重倒来解决, 但是此次遇到是 Master 的 binlog 坏掉, 就有点苦了~

  错误讯息如下:

  Last_IO_Errno: 1236

  Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: 1Client requested master to start replication from impossible position2 the first event 1mysql-bin.0035831 at 45997491, the last event read from 1./mysql-bin.0035831 at 4, the last byte read from 1./mysql-bin.0035831 at 4.1

  MySQL Replication 遇到 Got fatal error 1236 from master 修復

  mysql> SHOW SLAVE STATUSG

  错误讯息如下: (已经把不必要得删除)

  Master_Log_File: mysql-bin.003583

  Read_Master_Log_Pos: 45997491

  Relay_Log_File: mysqld-relay-bin.006789

  Relay_Log_Pos: 103569723

  Relay_Master_Log_File: mysql-bin.003361

  Slave_IO_Running: No

  Slave_SQL_Running: Yes

  Last_Errno: 0

  Skip_Counter: 0

  Last_IO_Errno: 1236 Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: 1Client requested master to start replication from impossible position2 the first event 1mysql-bin.0035831 at 45997491, the last event read from 1./mysql-bin.0035831 at 4, the last byte read from 1./mysql-bin.0035831 at 4.1

  註: Debian / Ubuntu Linux 预设 MySQL data path: /var/lib/mysql, 所以下述 binlog 可於此路径寻找.

  Slave binlog 坏掉的解法

  一般常见是 Slave binlog 坏掉, 所以都会先去 Slave 找 mysql-bin.003583 档案.

  再把 mysql-bin.003583 的资料用 mysqlbinlog dump 出来, 指到下一个 position 即可.

  Slave: ls /var/lib/mysql/mysql-bin.003583 # not found.

  Slave 不存在档案, 才发现到坏的是 Master.

  Master binlog 坏掉的解法

  Master: # mysqlbinlog /var/lib/mysql/mysql-bin.003583 > ~/3583

  ERROR: Error in Log_event::read_log_event(): 1read error1, data_len: 27, event_type: 16

  最苦的状况是 Master 的 binlog 坏掉了, 所以所有 Slave 都死光光. XD

  此时可以考虑几种作法:

  全部 Slave 重倒 (最保险, no data lost)

  先让 Replication 可以啟动, 再来 重倒 / sync 一定需要同步的资料即可. (Cache … 那种就可以不用理他)

  下面是採用第二种作法:

  mysql> STOP SLAVE2

  mysql> CHANGE MASTER TO master_log_file = 1mysql-bin.0035841, master_log_pos = 02 # 先指到下一个 binlog 档, pos 指 0 或 4, 都是一样意思.

  mysql> START SLAVE2

  mysql> SHOW SLAVE STATUS G # 於此应该就恢復了.

  然后在对重要的 Table 用 pt-table-sync 来补一补即可. (apt-get install percona-toolkit)
分享到:
本文"MySQL Replication 遇到 error 1236错误的修复方法"由远航站长收集整理而来,仅供大家学习与参考使用。更多网站制作教程尽在远航站长站。
顶一下
(0)
0%
踩一下
(0)
0%
[点击 次] [返回上一页] [打印]
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
关于本站 - 联系我们 - 网站声明 - 友情连接- 网站地图 - 站点地图 - 返回顶部
Copyright © 2007-2013 www.yhzhan.com(远航站长). All Rights Reserved .
远航站长:为中小站长提供最佳的学习与交流平台,提供网页制作与网站编程等各类网站制作教程.
官方QQ:445490277 网站群:26680406 网站备案号:豫ICP备07500620号-4