MySQL物理備份與恢復(fù)工具XtraBackup使用小結(jié)
1.描述
借助Percona XtraBackup工具實現(xiàn)MySQL的物理備份與恢復(fù),相當(dāng)于將整個MySQL進(jìn)行了復(fù)制,再粘貼到其他地方運行。
2.安裝
XtraBackup與MySQL版本對應(yīng)關(guān)系:
| XtraBackup | MySQL |
|---|---|
| percona-xtrabackup-24 | 5.7 |
| percona-xtrabackup-80 | 8 |
| percona-xtrabackup-81 | 8.1 |
| percona-xtrabackup-82 | 8.2 |
| percona-xtrabackup-83 | 8.3 |
yum -y install percona-xtrabackup-24 yum -y install rsync yum -y install perl-Digest-MD5 yum -y install qpress
3.使用
3.1 備份源數(shù)據(jù)庫
#讀取指定配置文件中的信息,壓縮mysql的數(shù)據(jù),輸出到/mysql目錄下,再重定向到test.xbstream文件中(相當(dāng)于tar包)。 innobackupex --defaults-file=/etc/my.cnf --user=root --password='123456' --port=3306 --socket=/tmp/mysql.sock --stream=xbstream --compress --parallel=8 --compress-threads=8 /mysql > /databak/test.xbstream
–defaults-file指定mysql配置文件,需要包含datadir等信息
–stream采用流的方式備份,這樣可以選擇輸出到本地或遠(yuǎn)程
3.2 恢復(fù)到目標(biāo)數(shù)據(jù)庫
如果恢復(fù)位置不在同一臺服務(wù)器,可以通過scp進(jìn)行文件傳輸。
3.2.1 恢復(fù)目錄
#相當(dāng)于解壓tar包,輸出到指定目錄下 xbstream -x < /databak/test.xbstream -C /databak/test
3.2.2 解壓文件
#對前一步輸出目錄下的所有壓縮文件進(jìn)行解壓 innobackupex --decompress --parallel=8 --compress-threads=8 /databak/test
3.2.3 應(yīng)用日志
#通過redo同步已提交的事務(wù),使數(shù)據(jù)文件保持一致 innobackupex --apply-log /databak/test
3.2.4 復(fù)制數(shù)據(jù)
復(fù)制數(shù)據(jù)前,先停止目標(biāo)MySQL,刪除他的data目錄和日志目錄
#將數(shù)據(jù)文件拷貝到目標(biāo)MySQL的數(shù)據(jù)目錄下 innobackupex --defaults-file=/etc/my.cnf --parallel=8 --copy-back /databak/test
3.2.5 啟動
#修改mysql相關(guān)的文件持有者為mysql用戶 chown -R mysql.mysql /data/mysql #啟動mysql systemctl start mysqld
如果是目標(biāo)MySQL是從服務(wù)器,需要恢復(fù)主從關(guān)系
#查看備份的數(shù)據(jù)最后的binlog的偏移量,或者gtid cat /databak/test/xtrabackup_binlog_info #格式如下: #mysql-bin.000001 3229488 87bd47b9-12f6-11ed-ae2c-0050569534a2:1-6,8cdb65cf-12f6-11ed-aab7-005056950a99:1-139
連接到MySQL客戶端:
stop slave; #清理中繼日志 reset slave; #清理binlog reset master; #設(shè)置已經(jīng)執(zhí)行但本地binlog中未記錄的gtid集合 set @@global.gtid_purged='87bd47b9-12f6-11ed-ae2c-0050569534a2:1-6,8cdb65cf-12f6-11ed-aab7-005056950a99:1-139'; #重新建立主從關(guān)系 change master to master_host='192.168.86.111',master_port=3306,master_user='backuser',master_password='123456', master_auto_position=1 ; start slave; show slave status\G
4.使用總結(jié)
環(huán)境:96核 754G內(nèi)存 30T磁盤(生產(chǎn)環(huán)境的物理機)
4.1 備份
壓縮效率:XtraBackup默認(rèn)采用的zstd壓縮算法,理論壓縮比為5:1。實際使用中,一個MySQL實例由3.2t壓縮為502G;另一個MySQL實例由5.7t壓縮為825G,壓縮比達(dá)到6:1以上
備份速度:一個MySQL實例備份生成502G的壓縮文件,耗時大約50分鐘,判斷每10分鐘生成100G的壓縮文件。如果5個t的數(shù)據(jù),壓縮后可能為800G,則耗時約80分鐘。
傳輸文件:通過scp傳輸文件,速度約為350-450MB/s,500G需要20-25分鐘
4.2 恢復(fù)
恢復(fù)包含多個步驟:
恢復(fù)目錄:將壓縮文件解包到指定目錄下,速度較快,約10-20分鐘
解壓:一個MySQL實例為512G,解壓后3.6T,解壓耗時約37分鐘,約10分鐘1T
應(yīng)用日志:一個MySQL實例耗時約15分鐘
復(fù)制:一個MySQL實例,3.6T數(shù)據(jù)復(fù)制耗時約40分鐘,約10分鐘1T
4.3 例子
綜上,假設(shè)現(xiàn)有5T的數(shù)據(jù)需要處理,從備份到恢復(fù)的整個流程耗時如下:
- 備份,5T按6:1壓縮至800G,耗時80分鐘
- 傳輸,scp按450M/s,耗時30分鐘
- 恢復(fù),20分鐘
- 解壓,10分鐘1T,耗時50分鐘
- 應(yīng)用日志,20分鐘
- 復(fù)制,10分鐘1T,耗時50分鐘
在以上理想情況下,5T數(shù)據(jù)至少需要4個小時以上,實際可能5-6小時
到此這篇關(guān)于MySQL物理備份與恢復(fù)工具XtraBackend使用小結(jié)的文章就介紹到這了,更多相關(guān)MySQL XtraBackend使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MySQL啟動報錯問題InnoDB:Unable to lock/ibdata1 error
這篇文章主要介紹了MySQL啟動報錯問題InnoDB:Unable to lock/ibdata1 error,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-07-07
mysql 遠(yuǎn)程連接數(shù)據(jù)庫的方法集合
MySQL數(shù)據(jù)庫不允許從遠(yuǎn)程訪問怎么辦?本文提供了三種解決方法:2008-03-03
MySQL所支持的數(shù)據(jù)類型與表字段約束類型的學(xué)習(xí)教程
這篇文章主要介紹了MySQL所支持的數(shù)據(jù)類型與表字段約束類型的學(xué)習(xí)教程,是MySQL入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下2015-12-12
CentOS6.5下RPM方式安裝mysql5.6.33的詳細(xì)教程
本文給大家詳細(xì)介紹CentOS6.5下RPM方式安裝mysql5.6.33的教程,本文分步驟給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友一起看看吧2016-10-10
一文解決連接MySQL報錯is?not?allowed?to?connect?to?this?MySQL?
這篇文章主要給大家介紹了關(guān)于如何通過一文解決連接MySQL報錯is?not?allowed?to?connect?to?this?MySQL?server的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-08-08
Mysql日期格式以及內(nèi)置日期函數(shù)用法詳解
MySQL中有多種數(shù)據(jù)類型可以用于日期和時間的表示,這篇文章主要給大家介紹了關(guān)于Mysql日期格式以及內(nèi)置日期函數(shù)用法的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-05-05
windows 10 下安裝mysql 5.7.17的簡單筆記
之前一直在Linux下用MySQL,安裝也很簡單,今天試一下windows下安裝,發(fā)現(xiàn)有很多坑,今天小編通過本教程給大家記錄下,一起看看吧2016-12-12

