Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 886|回复: 0

MySQL Master Crash, Slave Replication 快速修復

[复制链接]

该用户从未签到

发表于 2011-10-17 13:37:47 | 显示全部楼层 |阅读模式
MySQL Master 如果意外的當掉, 重新開機.. 等等狀況, 造成 Replication 不會動, 通常會是 binlog 壞掉造成的, 通常看到這個能做的大多是重新把 Master 的資料倒出來, 再倒回 Slave, 然後重新開始, 但是當運氣不太好, 三天兩頭就有機器又燒起來的狀況, 就會去想更好的解法......
先來看看 Replication 出問題該怎麼查:
mysql -u root # 先進入 mysql
show slave status # 看看 Last_error 有沒有其它狀況(最常見是 Duplicate Key)
處理步驟:
若發現是 Slave_IO_Running: No, 然後沒有 Last_error: 那就先將 mysql restart 看看 還是沒有錯誤就去看 mysql error log(系統上的錯誤訊息, ex: /var/log/) 若 mysql error log 還是空的, 代表 mysql 之前應該沒有停完全, mysql stop (ps auxwww 看看, 不行就 kill), 再 start, 應該就有錯誤訊息了. 再來若錯誤訊息看到的是 xx bin log 壞掉, 就是本篇要討論的重點.
mysql bin log 是 Master 的 SQL 指令寫入, 再傳遞到 Slave, Slave 去執行那 bin log 的指令, 若 Master 來的 bin log 壞掉了, 那 Slave 就會停止此動作, 等到人來手動修復 bin log.
通常會用 mysqlbinlog xx.bin.025(filename) > /tmp/xx.binlog, 將 bin log 的內容都倒出來, 然後找到出問題的資料, 記錄下一筆Pos, 然後用 CHANGE MASTER TO ..... 將記錄指到下一筆的 Pos 就可以繼續開始.
但是現在遇到的狀況就是, mysqlbinlog 也沒辦法正常的將 bin log 倒出來(bin log 檔 因異常當機, 沒寫完整, 壞掉了).
那解法也很簡單, 因為是異常寫壞了, 就先檢查看看 Slave 寫到哪一筆了, 補齊後, 再把 Pos 指到下一個正確的檔案即可.
做法如下:
  tail -10 xx.bin.025 > /tmp/xx.binlog # 會是很多行 SQL 的集合, 主要看 Primary key 就是了.
  再來 去 SELECT 那些 Primary Key 是不是都已經被寫入了, 通常都會被寫入成功(因為 Master 寫壞的, 一定都是最後一筆), 沒有寫入成功的再自行補上即可.
  確認完此壞掉的 bin log 都已經寫完(除了最後那筆壞掉的外), 那就可以捨棄此檔了. 只要使用下面指令即可.
  CHANGE MASTER TO MASTER_LOG_FILE='xx-bin.026', MASTER_LOG_POS=4;
  026 是 025 的下一個(Replication 是照順序的), 新 bin log 的MASTER_LOG_POS 開頭一定是 4, 所以這樣子設就可以跳到下一個檔案.
  再 start slave, 等 DB(Slave) sync 後就可以上線了.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

GMT+8, 2024-5-22 10:39 , Processed in 0.393052 second(s), 34 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表