今天把公司測試數據庫作了GTID的主從,可是當時沒有中止主庫,直接經過xtrabackup進行備份,而後把數據恢復到從庫,而後直接執行start salve進行主從複製,發現老是報以下之類的錯誤:html
折騰了一下午,上網查了n多資料以後發現這個問題仍是有辦法解決的,並且解決這個問題以後還能夠作到不停庫進行主從複製的配置。mysql
innobackupex -uxxxx -pxxxx . --stream=tar|gzip -> backup.tar.gz
直接備份成tar.gz的格式,而後傳到從庫服務器;tar xvf *.tar.xz /usr/local/mysql/data/
,我發現xtrabackup --copy-back也可使用cp或者rsync替換,我此處直接就解壓到數據目錄了;set @@global.gtid_purged='xxxxxx:xx'
命令跳過備份項,不然會出現我以前出現的錯誤。執行set @@global.gtid_purged='xxxxxx:xx'
發現報錯了,錯誤以下:ERROR 1840 (HY000): Unknown error 1840,上網查詢資料發現能夠執行reset master,而後就可以正常執行命令跳過備份包含的gtid了;sql
而後再執行change master to 命令開始主從便可。數據庫
change master to master_host='ip', master_port=port, master_user='username', master_password='password', master_auto_position=1;
reset slave all
清除全部的主從配置信息。必定要注意配置的順序,必須是先執行global_purge,而後再執行change master to;服務器
通過一下午的折騰發現仍是對數據庫不夠了解,對GTID和數據庫的事務老是迷迷糊糊的,還有不少須要學習的地方。
參考了這兩篇文章,感謝做者:
http://www.javashuo.com/article/p-oiyqmdti-bc.html
http://blog.51cto.com/arthur376/1792551app