簡述MySQL分片中快速數(shù)據(jù)遷移
推薦閱讀:MySQL 數(shù)據(jù)庫跨操作系統(tǒng)的最快遷移方法
操作實踐背景:
travelrecord表定義為10個分片,嘗試將10個分片中的2個分片轉(zhuǎn)移到第二臺MySQL上,并完成記錄, 要求最快的數(shù)據(jù)遷移做法,中斷業(yè)務時間最短
思路一利用mysqldump:
在這里我們只針對mysql innodb engine,而且配置bin-log的數(shù)據(jù)庫進行分析。因為是將10個分片中的兩個分片進行遷移,其實就是數(shù)據(jù)庫的遷移過程,就是將10個數(shù)據(jù)庫中的兩個數(shù)據(jù)遷移到另外一臺機器;中斷業(yè)務最短的做法就是:
1) 準備mycat新的配置文件備用,以便快速切換配置文件。
2) 在業(yè)務地峰期間,如凌晨,使用mysqldump進行數(shù)據(jù)庫的全量備份(附帶--flush-logs);
3) 將兩個分片數(shù)據(jù)庫的全量備份第二臺機器上進行全量恢復;
4) 停止mycat服務器,
5) 停止第一臺機器的mycat實例(假設(shè)原來的分片在一個mysql實例)
6) 拷貝第一臺機器的binlog文件到第二臺機器,并使用mysql的mysqlbinlog工具進行這兩個數(shù)據(jù)庫的增量數(shù)據(jù)的恢復。
7) 啟動第一臺數(shù)據(jù)實例,校驗遷移的兩個分片數(shù)據(jù)正確性(主要看記錄數(shù))
8) 替換mycat的配置文件并啟動mycat實例
在該方案中,業(yè)務中斷的時間主要是處理mysqlbinlog的增量數(shù)據(jù)恢復。
思路二利用mysql的ms機制做級聯(lián)復制
在這里二個片比如第一個分片db11,第二個分片db21,我在db11上面再做個級聯(lián)主從,db11-->db16,在db21上面做個級聯(lián)主從db21->db26,這樣到時候數(shù)據(jù)實時同步,中斷業(yè)務比較短的做法是:
1)準備mycat新配置文件備用,以便快速切換配置文件。
2)在業(yè)務低峰期間,比如凌晨時分,開始操作,停止mycat服務器
3)進行db11-db16主備切換,進行db21-db26主備切換
4)停止第一臺機器的mycat實例
5)在主備切換過程中,舊的主db11、db21上面的binlog中如果有新的dml、ddl操作,就用mysqlbinlog解析出來,在新的主db16和db26上面重做一遍
6)使用mk-table-checksum工具檢查新主從db16->db11、db26->db21的數(shù)據(jù)一致性。
7)替換mycat的配置文件并啟動mycat實例
好了,關(guān)于MySQL分片中快速數(shù)據(jù)遷移相關(guān)知識就給大家介紹到這里,希望對大家有所幫助,更多有關(guān)mysql數(shù)據(jù)遷移知識請登錄chabaoo.cn 了解更多!
相關(guān)文章
在OneProxy的基礎(chǔ)上實行MySQL讀寫分離與負載均衡
基于Libevent機制實現(xiàn),單個實例可以實現(xiàn)25萬的SQL轉(zhuǎn)發(fā)能力,用一個OneProxy節(jié)點可以帶動整個MySQL集群,為業(yè)務發(fā)展貢獻一份力量,下面由小編來為大家簡單說說2019-05-05Mysql關(guān)于數(shù)據(jù)庫是否應該使用外鍵約束詳解說明
MySQL 外鍵約束(FOREIGN KEY)是表的一個特殊字段,經(jīng)常與主鍵約束一起使用。對于兩個具有關(guān)聯(lián)關(guān)系的表而言,相關(guān)聯(lián)字段中主鍵所在的表就是主表,外鍵所在的表就是從表。外鍵用來建立主表與從表的關(guān)聯(lián)關(guān)系,為兩個表的數(shù)據(jù)建立連接,約束兩個表中數(shù)據(jù)的一致性和完整性2021-10-10SQL中寫入包含有英文單引號“ '''' ”失敗問題深入詳解
這篇文章主要介紹了SQL中寫入包含有英文單引號“ ' ”失敗問題深入詳解,列舉了具體實例講解,有感興趣的同學可以研究下2021-03-03MySQL中VARCHAR與CHAR格式數(shù)據(jù)的區(qū)別
char是一種固定長度的類型,varchar則是一種可變長度的類型,那么他們具體使用過程中有什么區(qū)別嗎2015-09-09