reset master 不能亂用呀


 

在主從環境了  用這個  從會掛掉的呢

談談這兩天做mysql guid主從的痛

需求1:

將一個單點mysql進行遷移

這個比較簡單,我搭建了同版本的mysql,然后mysqldump備份數據導入,數據沒有更新,完整就直接導入了

需求2:

覺得單點比較不靠譜,決定將以前的一個從庫,注意這個從庫是很久之前的舊的mysql主的從庫,重新作為新的主庫的從庫

首先我直接向gtid可以自動尋找,那就直接將這個從庫指向新的主庫吧,結果報錯找不到log文件,難道是以為從庫是舊的,保留的都是曾經的主的gtid的信息,所以不行,這里我還是疑惑的

后來決定重新拿一份新主的最新備份,導入從庫,重新做主從,還是報錯1146,不知道為啥

我很氣

我又重新搭建了最新的從庫導入數據,也報錯,我還鬼使神差的在主上執行了 reset master ,然后我就導入着數據,回家了,早晨來一看,主上的binlog沒了,只剩00001了,又沒有完整的日志文件了

 

現在我沒轍 繼續重新那一份最新的數據導入一下吧

 

如果你這么干了,恢復的方法

1.從主庫拿一份最新的數據,新的程度要在做reset master; 這個操作之后

2.從庫上(別執行,下邊還有呢,看完了再說)

stop slave;

reset slave;

導入數據;

重新指定主;

start slave;

然后報錯如下:

  Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: 'Slave has more GTIDs than the master has, using the master's SERVER_UUID. This may indicate that the end of the binary log was truncated or that the last binary log file was lost, e.g., after a power or disk failure when sync_binlog != 1. The master may or may not have rolled back transactions that were already replica'

解決方法:

在從上執行 reset master;

在從庫上執行這個命令的作用是 清空從庫的gtid

然后繼續觀察

如果還報錯 就

stop slave;

reset slave;

重新指定主;

start slave;

reset master;

然后我的繼續報錯

  Last_SQL_Errno: 1007
               Last_SQL_Error: Error 'Can't create database 'mm'; database exists' on query. Default database: 'mm'. Query: 'create database mm'
這種錯誤叫可控的錯誤

兩種方法:

在配置文件里設置跳過這個錯誤

在從庫上刪除這個庫,然后stop slave; start slave;

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM