MySQL 備份恢復

2021-07-14 12:15:42 字數 1476 閱讀 1172

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 命令會使資料檔案進行統一,達到資料...