XtraBackup實現MySQL資料備份

2021-08-14 01:59:03 字數 2664 閱讀 1583

xtrabackup是由percona提供的mysql資料庫備份工具,據官方介紹,是一款開源能夠對innodb和xtradb資料庫進行熱備的工具,支援完全備份和增量備份。

特點:

(1)備份過程快速、可靠

(2)備份過程不會打斷正在執行的事務

(3)能夠基於壓縮等功能節約磁碟空間和流量

(4)自動實現備份檢驗

(5)還原速度快

~]# yum install xtrabackup

安全起見,建立最小許可權備份使用者

每個innodb的頁面都會包含乙個儲存資訊,每當相關的資料發生改變,相關的頁面的儲存就會自動增長。這正是innodb表可以進行增量備份的基礎,即innobackupex通過備份上次完全備份之後發生改變的頁面來實現

innobackupex命令會在備份目錄中建立乙個新的以時間命名的目錄以存放所有的增量備份資料。另外,在執行過增量備份之後再一次進行增量備份時,其–incremental-basedir應該指向上一次的增量備份所在的目錄

注:增量備份僅能應用於innodb或xtradb表,對於myisam表而言,執行增量備份時其實進行的是完全備份

新增資料

增量後的資料如下:

執行增量備份

一般情況下,在備份完成後,資料尚且不能用於恢復操作,因為備份的資料中可能會包含尚未提交的事務或已經提交但尚未同步至資料檔案中的事務。因此,此時資料檔案仍處理不一致狀態。"準備"的主要作用正是通過回滾未提交的事務及同步已經提交的事務至資料檔案也使得資料檔案處於一致性狀態

"準備"(prepare)增量備份與整理完全備份有著一些不同,尤其要注意的是:

(1)需要在每個備份(包括完全和各個增量備份)上,將已經提交的事務進行"重放"。"重放"之後,所有的備份資料將合併到完全備份上。

(2)基於所有的備份將未提交的事務進行"回滾"

執行操作:

接著執行(增量):

模擬資料庫錯誤

~]# rm -rf /var/lib/mysql/*

停止資料庫服務

~]# systemctl stop mariadb

用完全備份目錄進行恢復

~]# innobackupex --copy-back /backup/2017-12-26_09-33-14/

171226 10:14:54 completed ok!

資料庫檔案目錄檔案恢復

改資料庫檔案許可權

~]# chown -r mysql.mysql /var/lib/mysql/

開啟mysql資料庫服務

~]# systemctl start mariadb

登入資料庫

~]# mysql -uroot -pcentos

完全備份,增量備份的資料都恢復了,資料恢復完成

使用Xtrabackup來備份你的mysql

參考 使用 xtrabackup 來備份你的 mysql 一 xtrabackup的基礎知識 innodb 有個商業的 innodb hotbackup 可以對 innodb percona 出品的xtrabackup 是innodb hotbackup innodb xtradb 引擎的表進行物理...

python實現excel資料匯入mysql

excel資料格式 總行數 len df nums df.shape 0 資料清洗nan預設為0 df.fillna 0,inplace true 刪除第一行無用資料 ds df.drop index 0,0 nums nums 1 資料庫操作 class mysqlact object def i...

xtrabackup備份說明

通過最簡單的備份事例,說明備份所包含的內容等資訊 xtrabackup backup target dir tmp backup指定用於備份,預設全備 target dir指定備份檔案目錄 生成備份目錄xtrabackup backupfiles cd xtrabackup backupfiles ...