1.環境
os: centos 6.5 x64
mysql: 5.6 for linux (x86_64)
2.最簡單的備份
mysqldump -uroot -p
--single-transaction
--all-databases > backup.sql
--single-transaction引數的使用是假設備份的表是innodb表,備份是乙個事務中完成,只在備份開始時獲取一下全域性讀鎖,然後不再鎖表。
3.mysqldump方式增量備份
週日全量備份:
mysqldump -uroot -p --single-transaction
--flush-logs --master-data=2
incase > backup.sql
此時備份檔案裡會增加一條:
---- position to start replication or point-in-time recovery from
---- change master to master_log_file='
mysql-bin.000019', master_log_pos=120;
周一增量備份:
mysqladmin -uroot -p
flush-logs
這時會產生新的日誌檔案,例如
mysql-bin.000021
,日誌檔案的檢視可以到日誌目錄(預設是資料目錄)下用ll -rth檢視,也可以登入mysql客戶端執行show master logs;檢視。
只要把mysql-bin.000019,mysql-bin.000020複製走就可以了。
如果嫌日誌檔案太多,在執行全量備份時可以刪除不再需要的日誌:
mysqldump -uroot -p --single-transaction --flush-logs --master-data=2
--delete-master-logs
incase > backup.sql
刪除日誌需慎重,如果只備份乙個庫,日誌也會被刪除,這時別的庫可能還需要這些日誌檔案。
4.mysqldump方式恢復
mysql -uroot -p < backup.sql #先從全量備份裡恢復
#假如備份的日誌檔案為mysql-bin.000019,
mysql-bin.000020,執行以下命令:
mysqlbinlogmysql-bin.000019
mysql-bin.000020 | mysql -uroot -p***x
如果需要執行的日誌太多,可以用以下方式執行:
export tmpdir=/my/big/disk/tmp
mysqlbinlog mysql-bin.* | mysql -uroot -p***x
這樣會將當前目錄下所有的mysql-bin按順序執行。
5.xtrabackup進行增量備份,恢復
mysql 備份與恢復 MySQL 備份與恢復
1 檢視資料庫的資料儲存在哪個目錄下 shiyanlou mysql uroot e show variables like datadir variable name value datadir var lib mysql 2 備份資料的方法 select into outfile 檔名 或者 s...
mysql備份和恢復 mysql備份和恢復
目標 備份和恢復的3種方法,掌握mysqldump命令匯出資料,source命令匯入資料 備份必要性 重要資料不丟失 資料轉移 mysqldump客戶端 作用 轉儲資料庫 搜尋資料庫進行備份 將資料轉移到另乙個sql伺服器 不一定是mysql伺服器 mysqldump h 主機名 u使用者名稱 p ...
mysql 備份與恢復 Mysql 備份與恢復
資料檔案一致性處理 在完全備份的情況下,檔案不是時間點一致的,因為進行快照的時間點不一樣。如果嘗 試在未prepare資料的情況下還原資料庫,雖然操作上支援恢復,但是在啟動的時候仍會 進行資料recovery。執行帶 prepare 選項的 mariabackup 命令會使資料檔案進行統一,達到資料...