mysqldump工具基本使用
1. mysqldump [OPTIONS] database [tables…]
還原時庫必須存在,不存在需要手動創建
--all-databases: 備份所有庫 --databases db1 db2 ...: 備份指定的多個庫,如果使用此命令,恢復時將不用手動創建庫 --lock-all-tables:請求鎖定所有表之后再備份,對MyISAM、InnoDB、Aria做溫備 --lock-table: 對正在備份的表加鎖,但是不建議使用,如果其它表被修改,則備份后表與表之間將不同步 --single-transaction: 能夠對InnoDB存儲引擎實現熱備; 啟動一個很大的大事物,基於MOCC可以保證在事物內的表版本一致 自動加鎖不需要,再加--lock-table, 可以實現熱備 備份代碼: --events: 備份事件調度器代碼 --routines: 備份存儲過程和存儲函數 --triggers:備份觸發器 備份時滾動日志: --flush-logs: 備份前、請求到鎖之后滾動日志; 方恢復備份時間點以后的內容 復制時的同步位置標記:主從架構中的,主服務器數據。效果相當於標記一個時間點。 --master-data=[0|1|2] 0: 不記錄 1:記錄為CHANGE MASTER語句 2:記錄為注釋的CHANGE MASTER語句
創建專門用於備份的用戶
MariaDB > GRANT RELOAD,LOCK TABLES,SUPER,REPLICATION CLIENT ON *.* TO 'backup'@'%' IDENTIFIED BY '123456'; MariaDB > FLUSH PRIVILEGES;
mysqldump -ubackup -p123456 --single-transaction --flush-logs --master-data=2 --databases ttt > /data/backup.sql