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

2022-09-05 10:06:10 字數 568 閱讀 4544

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

首先停掉機器,將系統全都停掉,不要再有新的資料進來,然後使用之前寫好的程式,連線舊的資料庫,將舊資料庫裡面的資料讀出來,然後通過資料分發中介軟體寫到分庫分好的資料裡面去。然後修改系統是資料庫連線、分庫分表配置,然後重新上線。

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

然後使用寫好的資料遷移程式,去讀取老資料庫的資料寫入到新的資料庫裡面去,寫的時候要根據資料的最後更新時間去判斷資料,如果讀出來的資料新庫沒有直接寫入,如果新庫也有,檢視最後更新時間,舊庫的新就覆蓋寫入,如果新庫的新就放棄這條資料。

導完一輪資料之後,有可能資料還是存在不一致,那麼就寫個程式做一輪校驗,對比老庫和新庫的每條資料,如果存在不一樣的,就針對這些不一樣的,再次去進行資料同步。反覆迴圈,直到資料完全一致。

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

分庫分布的幾件小事(一)資料庫如何拆分

分庫分表說白了,就是因為資料量太大了,如果你的單錶資料量都到了千萬級別,那麼你的資料庫就無法承受高併發的要求,資料庫操作效能就會出現極大的下降。資料庫併發量太大了,一般而言,乙個資料庫最多支撐併發到2000,這時候一定要進行擴容,不然效能會出現嚴重下降。而且乙個健康的單庫併發值你最好保持在每秒100...

關於MQ的幾件小事(二)如何保證訊息佇列的高可用

rabbitmq基於主從模式實現高可用。rabbitmq有三種模式 單機模式,普通集群模式,映象集群模式。1 單機模式 單機模式就是demo級別的,生產中不會有人使用。2 普通集群模式 普通集群模式就是在多台機器上啟動多個rabbitmq例項,每個機器啟動乙個。但是建立的queue只會放在乙個rab...

關於MQ的幾件小事(二)如何保證訊息佇列的高可用

rabbitmq基於主從模式實現高可用。rabbitmq有三種模式 單機模式,普通集群模式,映象集群模式。1 單機模式 單機模式就是demo級別的,生產中不會有人使用。2 普通集群模式 普通集群模式就是在多台機器上啟動多個rabbitmq例項,每個機器啟動乙個。但是建立的queue只會放在乙個rab...