1. 常見備份分析mysql
2. mysqldump操做流程sql
徹底備份 # 溫備 mysqldump --all-databases --lock-all-tables > /tmp/a.sql # 熱備 mysqldump --all-databases --single-transaction > /tmp/a.sql 增量備份 # 完整備份少不了 mysqldump --all-databases --singel-transaction --fulsh-logs --master-data=2 > /tmp/a.sql # --master-data=2 (記錄二進制還原點信息) 天天一下計劃任務 備份上次記錄的二進制日誌 . 還原流程 對於徹底備份的 mysql < /tmp/a.sql . 對於增量的 mysql < /tmp/a.sql 還要導入增量信息 mysqlbinlog --start-position=pos --stop-position=pos /path/to/binfile | mysql 這裏的start-position就是上一次 --master-data=2 在 /tmp/a.sql中記錄的信息 . 備註 --events: 備份事件調度器代碼 --routines: 備份存儲過程和存儲函數 --triggers:備份觸發器
3. lvm快照數據庫
徹底備份 FLUSH TABLES WITH READ LOCK; FLUSH LOGS; mysql -e 'show master status' > /path/to/somefile lvcreate -s -n /back/path/file 50M /dev/to/devname mount /back/path/file /tmp/backup tar cf /tmp/backup/* /tmp/back1404.tar.xz 增量備份 與mysqldump無異 . 還原流程 複製物理文件 + 二進制恢復(與mysqldump無異)
4. select .. infile多線程
部分備份 select * into outfile '/path/to/file' fields terminated by ',' optionally enclosed by '"' lines terminated by '\n' from db.table # 注意此處僅有數據,那麼在部分恢復的時候須要表結構 部分恢復 load data infile '/path/to/file' into table db.table fields terminated by ',' optionally enclosed by '"' lines terminated by '\n'
常見5. innobackupexapp
徹底備份 innobackupex --user=backuser --password=backpass /tmp/backup 還原完整備份 # 整理備份(關鍵事務整理) innobackupex --apply-log /tmp/backup/2014-04-11_23-43-04 還原完整備份 # 注意數據目錄須要爲空 innobackupex --copy-back /tmp/backup/2014-04-11_23-43-04 . . 增量備份 innobackupex --user=backuser --password=backpass --incremental /tmp/backup --incremental-basedir=/tmp/backup/2014-04-11_23-43-04/ 還原增量備份 # 整理增量備份至徹底備份(事務回滾) innobackupex --user=backuser --password=backpass --apply-log --redo-only /tmp/backup/2014-04-11_23-43-04/ --incremental-dir=/tmp/backup/2014-04-11_23-49-04/ 還原增量備份 innobackupex --copy-back /tmp/backup/2014-04-11_23-43-04/ 注意: #若要還原部分數據仍是用二進制方式 . 備註: --compress 開啓壓縮 --compress-threads 壓縮線程數 --databases=LIST 指定數據庫備份 --decrypt=ENCRYPTION-ALGORITHM 指定備份加密 --export --incremental DIRECTORY 增量放置目錄 --host 主機 --password 密碼 --port 端口 --parallel=NUMBER-OF-THREADS 開啓多線程備份 --redo-only 回滾 --incremental-dir DIRECTORY 還原增量放置目錄 --incremental-basedir=DIRECTORY 基於完整備份作增量 --stream=STREAMNAME 流模式(遠程傳輸) --defaults-file 多實例場景 . 流式壓縮轉移到其餘主機 innobackupex --compress --stream=tar /tmp/backup/2014-04-11_23-43-04/ | ssh root@172.16.43.1 cat ">" /tmp/backup.tar