最近服務(wù)器從一家云(A云)上遷移到另外一家云(B云)上, 具體的過程如下
1. 數(shù)據(jù)庫遷移, A云上的數(shù)據(jù)庫有A-master和若干A-slave1, A-slave2, A-slave3..., 在B云上建立B-Master, B-slave1, B-slave2, B-slave3...
2. 把A-slave3去掉負(fù)載, 然后以鎖表的方式dump出來數(shù)據(jù), 在B-master上導(dǎo)入
mysqldump -uroot -p -E -R --default-character-set=utf8mb4 --master-data -A | gzip >? all_backup.gz
3. 把B-master作為A-slave3的從庫, 從A云上同步數(shù)據(jù).
4. 把所有數(shù)據(jù)庫設(shè)為只讀,當(dāng)完成同步之后,把B-master的寫打開.?
5. 把A上的nginx作為代理, 指向B云. 保證DNS沒有生效之前老的服務(wù)器也是可用的.
6. 更改DNS.
如果中間過程中出錯(cuò), 需要切回A, 并把B-master上的數(shù)據(jù)回流到A-master