【MySQL】【備份】使用XtraBackup物理備份MySQL的流程

來源:互聯網
上載者:User

標籤:之間   arc   com   相關   變化   nobackup   備份檔案   檢測   語句   

簡介:

? XtraBackup包含兩個主要的工具即:xtrabackup和innobackupex

? xtrabackup:只能備份InnoDB和XtraDB兩種事務引擎的表,不支援備份非事務引擎的表。

? innobackupex:封裝了xtrabackup的perl指令碼,支援在全域讀鎖下的非事務表備份,支援無全域讀鎖下的事務表。

安裝:

? 推薦安裝percona公司的源然後yum安裝

yum -y install https://www.percona.com/redir/downloads/percona-release/redhat/percona-release-0.1-4.noarch.rpmyum -y install percona-xtrabackup-24
innobackupex備份流程:

? 1.備份開始時先開啟一個後台檢測進程,即時監測redo的變化,一但發現redo中有新日誌寫入,立刻將日誌記入其的後台記錄檔(xtrabackup_log)中,

? 2.複製InnoDB表的資料檔案,系統資料表空間檔案ibdata1,完成後進入下一步,

? 3.執行全域讀鎖,鎖住所有的表(事務,非事務),拷貝非事務表的檔案(.frm .MYI .MYD),擷取binlog位置,解鎖全部表

? 4.停止xtrabackup_log,結束備份

階段 解釋
產生xtrabackup記錄檔 軟體本身開啟一個用來儲存redo的日誌
拷貝InnoDB相關檔案(.ibd表資料檔案,ibdata1復原空間)
FTWRL,全域讀鎖 非事務表不支援用事務保證一致性,需要讀鎖
拷貝innodb表結構檔案frm,非事務表的全部檔案
擷取binlog位置 以此位置作為備份的全域位置
釋放全域讀鎖 備份初步結束
停止xtrabackup的日誌工作。 備份結束

? 備份語句:

innobackupex --defaults-file=/etc/my.cnf --user=bak --password=bak123 --stream=xbstream .|gzip cat ->xtrabak.xb.gz

?

innobackupex恢複流程:

? 啟動XtraBackup軟體包內建的InnoDB執行個體,回放xtrabackup過程中收集的xtrabackup_log:

? 根據binlog,回放binlog中已經登記,但redo中未提交但已經prepare的事務。

? 根據binlog,復原binlog中未登記,但redo中已經prepare的事務

? 將應用好的檔案拷回要被恢複執行個體的資料目錄,賦予mysql使用者的許可權即可。

#解壓gunzip all.xb.gz -c|xbstream -x -C /data/full#應用xtrabackup_loginnobackupex --apply-log --use-memory=1G /data/full#拷回預備恢複的檔案,也可以用手工拷貝代替innobackupex --defaults-file=/etc/my.cnf --copy-back --rsync /data/full#將拷回的檔案所有權賦給mysql使用者chown -R mysql.mysql /data/mysql/3306#啟動資料庫mysqld --defaults-file=/etc/my.cnf
附:

1.使用xbstream而不是tar的原因:

? 傳統複製的情況下,從從庫備份,需要獲得從庫的複製資訊,可以使用--slave-info參數,這樣複製資訊會附加在備份檔案包中,但是用tar的時候總是會截斷一部分複製資訊的描述檔案。轉用xbstream流傳輸後沒有問題/另外,如果使用GTID,不考慮擷取binlog file和pos的話,tar或者xbstream都可以接受。

2.不推薦使用增備的原因:

? 1.增備恢複步驟繁瑣(需要在最後一個增備之前,只應用redo,最後一個才應用全部xtrabackup_log,拷回也麻煩)

? 2.與全備加binlogserver相比,不能恢複增備之間任意時間點的資料。

3.總的來看,XtraBackup仍是物理備份為主,輔以邏輯備份完成資料一致性的備份方式。

?

?

【MySQL】【備份】使用XtraBackup物理備份MySQL的流程

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.