停機遷移方案
系統(tǒng)停機,沒有流量寫入,此時老的單庫單表數(shù)據(jù)庫靜止,然后用寫好的導(dǎo)數(shù)程序跑起來,寫入分庫分表里去。
雙寫遷移方案
簡單來說,就是在線上系統(tǒng)里面,之前所有寫庫的地方,增刪改操作,都除了對老庫增刪改,都加上對新庫的增刪改,這就是所謂雙寫,同時寫倆庫,老庫和新庫。
然后系統(tǒng)部署之后,新庫數(shù)據(jù)差太遠(yuǎn),用之前說的導(dǎo)數(shù)工具,跑起來讀老庫數(shù)據(jù)寫新庫,寫的時候要根據(jù)gmt_modified這類字段判斷這條數(shù)據(jù)最后修改的時間,除非是讀出來的數(shù)據(jù)在新庫里沒有,或者是比新庫的數(shù)據(jù)新才會寫。
接著導(dǎo)萬一輪之后,有可能數(shù)據(jù)還是存在不一致,那么就程序自動做一輪校驗,比對新老庫每個表的每條數(shù)據(jù),接著如果有不一樣的,就針對那些不一樣的,從老庫讀數(shù)據(jù)再次寫。反復(fù)循環(huán),直到兩個庫每個表的數(shù)據(jù)都完全一致為止。