五 注意事項(xiàng)
介紹完不同場(chǎng)景的遷移方案,需要注意如下幾點(diǎn):
- 數(shù)據(jù)庫(kù)遷移,如果涉及事件,記住主節(jié)點(diǎn)打開 event_scheduler 參數(shù);
- 不管什么場(chǎng)景下的遷移,都要隨時(shí)關(guān)注服務(wù)器狀態(tài),比如磁盤空間,網(wǎng)絡(luò)抖動(dòng);另外,對(duì)業(yè)務(wù)的持續(xù)監(jiān)控也是必不可少的;
- CHANGE MASTER TO 的 LOG FILE 和 LOG POS 切記不要找錯(cuò),如果指定錯(cuò)了,帶來(lái)的后果就是數(shù)據(jù)不一致或者搭建主從關(guān)系失??;
- 執(zhí)行腳本不要在 $HOME 目錄,記住在數(shù)據(jù)目錄;
- 遷移工作可以使用腳本做到自動(dòng)化,但不要弄巧成拙,任何腳本都要經(jīng)過(guò)測(cè)試;
- 每執(zhí)行一條命令都要三思和后行,每個(gè)命令的參數(shù)含義都要搞明白;
- 多實(shí)例環(huán)境下,關(guān)閉 MySQL 采用 mysqladmin 的形式,不要把正在使用的實(shí)例關(guān)閉了;
- 從庫(kù)記得把 read_only = 1 加上,這會(huì)避免很多問(wèn)題;
- 每臺(tái)機(jī)器的 server_id 必須保證不一致,否則會(huì)出現(xiàn)同步異常的情況;
- 正確配置 replicate-ignore-db 和 replicate-wild-do-table;
- 新建的實(shí)例記得把 innodb_file_per_table 設(shè)置為 1,上述中的部分場(chǎng)景,因?yàn)橹暗膶?shí)例此參數(shù)為 0,導(dǎo)致 ibdata1 過(guò)大,備份和傳輸都消耗了很多時(shí)間;
- 使用 gzip 壓縮數(shù)據(jù)時(shí),注意壓縮完成后,gzip 會(huì)把源文件刪除;
- 所有的操作務(wù)必在從節(jié)點(diǎn)或者備節(jié)點(diǎn)操作,如果在主節(jié)點(diǎn)操作,主節(jié)點(diǎn)很可能會(huì)宕機(jī);
- xtrabackup 備份不會(huì)鎖定 InnoDB 表,但會(huì)鎖定 MyISAM 表。所以,操作之前記得檢查下當(dāng)前數(shù)據(jù)庫(kù)的表是否有使用 MyISAM 存儲(chǔ)引擎的,如果有,要么單獨(dú)處理,要么更改表的 Engine。
更多建議: