簡記MySQL的邏輯備份(mydumper+mysqldump)

weixin_33766168發表於2016-06-15
雖說MySQL的邏輯備份經常會由於鎖表等缺陷遭到詬病, 實際上在停機視窗時間內, 如果資料量不是太高的話, 做邏輯備份還是挺簡單的~

準備工作:
1. 目標庫(從這個庫備份資料)先要有足夠許可權的賬號(臨時的root就可以了~用完就刪);
2. 對應的工具要安裝好, 如mydumper;
3. 準備好指令碼/命令, 不放心就在測試環境演練一下~

一切準備就緒之後就可以等停機了~

這裡記下備份&恢復用的命令:

備份:

點選(此處)摺疊或開啟

  1. nohup mysqldump -h<host> -u<user> -p<password> --triggers --routines --events --set-gtid-purged=OFF -B <dbname> -d > /home/backup/<dbname>.sql &
  2. nohup mydumper -h <host> -P 3306 -u <user> -p <password> -t 4 -m -B <dbname> -o /home/backup/mydumper_<dbname> &
幾個需要注意的點:
1. mydumper無法匯出檢視, 觸發器, 儲存過程等物件, 所以用mysqldump來匯出各種物件的結構;
2. mydumper能做多執行緒匯出, 所以導具體的資料時, mydumper會比mysqldump多很多;
3. --set-gtid-purged=OFF 主要適用於開啟了GTID的資料庫, 如果沒有開啟, 那麼就把這個選項去掉;
4. 如果是在從庫上進行備份, 那麼記得加上--dump-slave引數, 把slave status的資訊dump出來;

恢復:

點選(此處)摺疊或開啟

  1. nohup mysql -u<user> -p<password> -h<host> -e "source /home/backup/<dbname>.sql" &
  2. nohup myloader -u <user> -p <password> -h <host> -e -B <dbname> -d /home/backup/mydumper_<dbname>/ &
幾個需要注意的點:
1. myloader的命令之間要注意空格;
2. myloader的-e引數會把恢復資料時的SQL寫進binlog, 可以用來進行同步or故障排查or其他;

相關文章