分庫分布的幾件小事(二)如何進行分庫分表的數據遷移


1.停機遷移方案

這是最簡單的也是最low的遷移方案了,如果系統就算短期停機也沒有關系或者造不成多大的影響,可以選用此方案。

首先停掉機器,將系統全都停掉,不要再有新的數據進來,然后使用之前寫好的程序,連接舊的數據庫,將舊數據庫里面的數據讀出來,然后通過數據分發中間件寫到分庫分好的數據里面去。然后修改系統是數據庫連接、分庫分表配置,然后重新上線。

2.雙寫不停機遷移方案

雙寫遷移方案的核心在雙寫,首先要修改系統所有需要寫庫的地方,將雖有對數據的寫操作不但要寫入就庫,也要同時寫入新庫。

然后使用寫好的數據遷移程序,去讀取老數據庫的數據寫入到新的數據庫里面去,寫的時候要根據數據的最后更新時間去判斷數據,如果讀出來的數據新庫沒有直接寫入,如果新庫也有,查看最后更新時間,舊庫的新就覆蓋寫入,如果新庫的新就放棄這條數據。

導完一輪數據之后,有可能數據還是存在不一致,那么就寫個程序做一輪校驗,對比老庫和新庫的每條數據,如果存在不一樣的,就針對這些不一樣的,再次去進行數據同步。反復循環,直到數據完全一致。

接着當數據完全一致了,就ok了,基於僅僅使用分庫分表的最新代碼,重新部署一次,不就僅僅基於分庫分表在操作了么,還沒有幾個小時的停機時間,很穩。所以現在基本玩兒數據遷移之類的,都是這么干了。


免責聲明!

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



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