因爲阿里雲經典網絡遷移到專用網絡,一不當心沒有先預備方案調整網段, 致使實例沒法之內網IP形式訪問數據庫,被迫進行數據庫停機後網絡網段調整,致使宕機了幾個小時。。。被客戶各類投訴爆了。。mysql
基於此次數據庫恢復血淚史, 特整理解決辦法, 讓往後同窗避免再犯。sql
數據庫master庫重啓後, 確保能正常提供服務。因爲生產上BI系統使用的是slave從庫作數據查詢, 從庫的數據庫已經落後了master好幾天,數據庫
查看從庫狀態:vim
mysql> show slave status\G;
顯示網絡
Slave_IO_Running: No
Slave_SQL_Running: No
說明從庫還沒有啓動數據庫同步, 因爲幾天的binlog的數據量太大, 找binlog開始位置找了很久沒找到, 索性先把當前的master數據庫導出一份拷貝到從庫, 按照導出的時間找binlog位置點。socket
使用 mysqldump 命令導出整個master 到文件 hairdonkey.sql.2018-07-20阿里雲
從庫先刪除後新增spa
# 刪除從庫的數據庫 drop database hairdonkey; # 建立新數據庫 CREATE DATABASE `hairdonkey` /*!40100 DEFAULT CHARACTER SET utf8mb4 */; # 導入備份的數據 use hairdonkey; source /data/db_backup/master/hairdonkey.sql.2018-07-20 # 用戶受權 grant select, delete, insert, update on hairdonkey.* to onlyreader@'172.%'; flush privileges;
從庫導入完畢後,開始關鍵的一步: 找binlog開始同步的位置!.net
/data/mysql/bin/mysqldump --socket=/data/mysql/mysql.sock -h172.17.120.167 -uhairdonkey -p123 -B hairdonkey --table sms_message_log --opt --extended-insert=false --single-transaction > sms_message_log.sql;
source /data/work/sms_message_log.sql
select * from hairdonkey.mid_sms_message_log a where not exists( select 1 from sms_message_log b where a.id = b.id ) order by id desc;
mysqlbinlog -uhairdonkey -p123 -P3306 -h172.17.120.167 --start-datetime="2018-07-21 19:55:40" --stop-datetime="2018-07-21 19:55:59" --read-from-remote-server -vv mysql-bin.000772 >row3.sql
mysqlbinlog -uhairdonkey -p123 -P3306 -h172.17.120.167 --start-position="875932395" --stop-position="878561125" --read-from-remote-server -vv mysql-bin.000772 >row2.sql
change master to master_host='172.17.120.167',master_user='hairdonkey',master_password='123',master_log_file='mysql-bin.000772',master_log_pos=875845853;
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
附加:日誌
mysql主從複製,常常會遇到錯誤而致使slave端複製中斷,這個時候通常就須要人工干預,跳過錯誤才能繼續
跳過錯誤有兩種方式:
1.跳過指定數量的事務:
mysql>slave stop;
mysql>SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1 #跳過一個事務
mysql>slave start
2.修改mysql的配置文件,經過slave_skip_errors參數來跳全部錯誤或指定類型的錯誤vi /etc/my.cnf[mysqld]#slave-skip-errors=1062,1053,1146 #跳過指定error no類型的錯誤#slave-skip-errors=all #跳過全部錯誤--------------------- 做者:seteor 來源:CSDN 原文:https://blog.csdn.net/seteor/article/details/17264633 版權聲明:本文爲博主原創文章,轉載請附上博文連接!