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