xtrabackup備份還原MySQL數(shù)據(jù)庫(kù)
mysqldump 備份鑒于其自身的某些特性(鎖表,本質(zhì)上備份出來(lái)insert腳本或者文本,不支持差異備份),不太適合對(duì)實(shí)時(shí)性要求比較高的情況
Xtrabackup可以解決mysqldump存在的上述的一些問(wèn)題,生產(chǎn)環(huán)境應(yīng)用的也會(huì)更多一些。
本文簡(jiǎn)單測(cè)試一下Xtrabackup對(duì)MySQL數(shù)據(jù)庫(kù)的備份還原操作。
本著先把功能先擼起來(lái)再深入細(xì)節(jié)的原則,粗略地實(shí)現(xiàn)了一個(gè)備份還原,并未深入細(xì)節(jié)。
網(wǎng)上有不少xtrabackup的文章,因?yàn)榄h(huán)境不一樣,有些需要配置xtrabackup的配置文件,
但是我在xtrabackup 2.4.7版本下測(cè)試就需要需求任何配置文件??赡苁敲總€(gè)版本都的細(xì)節(jié)上都不一樣,因此參考資料的時(shí)候要注意版本和環(huán)境。
innobackupex 備份
xtrabackup和MySQL的版本如下

完整備份
說(shuō)明:
1.--defaults-file=/etc/my.cnf文件必須在最前面
2.--user=root --password=root,--use=***與 --password=*** 中間一定要有空格,
如截圖,完整備份完成

如截圖,完整備份會(huì)創(chuàng)建一個(gè)日期(年月日時(shí)分秒,yyyy-MM-dd_hh-mm-ss)命名的文件
完整備份出來(lái)的內(nèi)存,實(shí)際上是對(duì)所備份的數(shù)據(jù)庫(kù)的數(shù)據(jù)文件的copy加上備份時(shí)候產(chǎn)生的一些信息,比如xtrabackup_checkpoints就是當(dāng)前完整備份的一些個(gè)信息,這個(gè)信息對(duì)差異備份非常重要。

差異備份
差異備份之所以能夠做到差異,就是依賴(lài)于完整備份的,在完整備份的基礎(chǔ)上進(jìn)行完整備份之后的差異的備份。
而如何確定完整的備份之后備份到哪里,就依賴(lài)于完整備份之后的xtrabackup_checkpoints這個(gè)文件的。
innobackupex --defaults-file=/etc/my.cnf --user=root --password=root --socket=/var/lib/mysql/mysql.sock --incremental /data/backup --incremental-basedir=/data/backup/2017-06-22_13-40-29
如截圖,差異備份完成

如果在進(jìn)行差異備份的時(shí)候,指定的完整備份的文件錯(cuò)誤或者是未指定完整備份文件,會(huì)發(fā)現(xiàn)xtrabackup提示找不到xtrabackup_checkpoints這個(gè)文件。

innobackupex 還原
準(zhǔn)備階段
1、恢復(fù)完整備份,也即完整備份應(yīng)用(--apply-log)日志
innobackupex --defaults-file=/etc/my.cnf --apply-log --redo-only --socket=/var/lib/mysql/mysql.sock /data/backup/2017-06-22_13-40-29
2、分別將增量備份應(yīng)用到完整備份
innobackupex --defaults-file=/etc/my.cnf --apply-log --redo-only --socket=/var/lib/mysql/mysql.sock --incremental /data/backup/2017-06-22_13-40-29 --incremental-basedir=/data/backup/2017-06-22_13-41-48

如果有多個(gè)差異備份,分別應(yīng)用差異備份到完整備份。
恢復(fù)階段
1、完成差異備份的全部應(yīng)用到完整備份之后,將恢復(fù)后的差異備份copy到原數(shù)據(jù)目錄
默認(rèn)情況下,如果數(shù)據(jù)路徑下存在文件,則copy失敗,需要清空數(shù)據(jù)文件路徑下的文件。
innobackupex --copy-back /data/backup/2017-06-22_13-40-29
如截圖,完成copy-back

2、啟動(dòng)MySQL服務(wù)
啟動(dòng)mysql服務(wù),發(fā)現(xiàn)啟動(dòng)失敗

看一下錯(cuò)誤日志(啟動(dòng)錯(cuò)誤信息),mysql5.7yum安裝默認(rèn)的errorlog位于/var/log/mysqld.log中,且默認(rèn)不會(huì)滾動(dòng),意味著所有的錯(cuò)誤信息都記錄在這個(gè)文件中。

數(shù)據(jù)文件還原之后,需要讀數(shù)據(jù)文件路徑授予可讀寫(xiě)的權(quán)限
這里直接授權(quán)數(shù)據(jù)文件路徑777,chmod -R 777 /var/lib/mysql
然后啟動(dòng)mysql服務(wù),可以正常啟動(dòng)。

xtrabackupex才剛剛開(kāi)始,留下一大堆問(wèn)題,有時(shí)間再一個(gè)一個(gè)驗(yàn)證。
1、怎么實(shí)現(xiàn)單個(gè)庫(kù)(表)的備份與還原,畢竟實(shí)際環(huán)境中,因?yàn)槊總€(gè)庫(kù)備份的頻率和方式(備份方案)是不一樣的?
2、怎么用全備+差異備份然后結(jié)合二進(jìn)制日志做基于時(shí)間點(diǎn)的方式還原?
3、如何驗(yàn)證備份文件的有效性?
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 安裝使用Percona XtraBackup來(lái)備份恢復(fù)MySQL的教程
- MySQL中使用innobackupex、xtrabackup進(jìn)行大數(shù)據(jù)的備份和還原教程
- 利用Xtrabackup工具備份及恢復(fù)(MySQL DBA的必備工具)
- 編寫(xiě)腳本令Xtrabackup對(duì)MySQL數(shù)據(jù)進(jìn)行備份的教程
- mysql中xtrabackup全量備份/增量備份及恢復(fù)
- mysql xtrabackup 備份恢復(fù)實(shí)現(xiàn)分享
- MySQL數(shù)據(jù)xtrabackup物理備份的方式
- MySQL xtrabackup 物理備份原理解析
- 使用xtrabackup實(shí)現(xiàn)mysql備份
- MySQL使用Xtrabackup備份流程詳解
- MySQL物理備份之Percona XtraBackup的實(shí)現(xiàn)示例
相關(guān)文章
分享MySQL生產(chǎn)庫(kù)內(nèi)存異常增高的排查過(guò)程
這篇文章主要介紹了分享MySQL生產(chǎn)庫(kù)內(nèi)存異常增高的排查過(guò)程,基于MySQL實(shí)例的內(nèi)存使用率高的報(bào)警的問(wèn)題展開(kāi)對(duì)主題的問(wèn)題,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-04-04
MySQL?DDL執(zhí)行方式Online?DDL詳解
這篇文章主要介紹了MySQL?DDL執(zhí)行方式Online?DDL詳解,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,感興趣的小伙伴可以參考一下2022-09-09
Ubuntu 設(shè)置開(kāi)放 MySQL 服務(wù)遠(yuǎn)程訪問(wèn)教程
這篇文章主要介紹了Ubuntu 設(shè)置開(kāi)放 MySQL 服務(wù)遠(yuǎn)程訪問(wèn)教程,需要的朋友可以參考下2014-10-10
MySQL中連接池參數(shù)優(yōu)化與性能提升指南
這篇文章主要深入探討了MySQL連接池中的關(guān)鍵參數(shù),分析參數(shù)配置不合理可能導(dǎo)致的性能問(wèn)題,并分享實(shí)用的優(yōu)化方法,希望可以幫助開(kāi)發(fā)者提升系統(tǒng)性能2025-07-07
老生常談mysql event事件調(diào)度器(必看篇)
下面小編就為大家?guī)?lái)一篇老生常談mysql event事件調(diào)度器(必看篇)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-03-03
MySQL 5.7之關(guān)于SQL_MODE的設(shè)置
這篇文章主要介紹了MySQL 5.7之關(guān)于SQL_MODE的設(shè)置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08
mysql?DISTINCT選取多個(gè)字段,獲取distinct后的行信息方式
這篇文章主要介紹了mysql?DISTINCT選取多個(gè)字段,獲取distinct后的行信息方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01
mysql 8.0.22壓縮包完整安裝與配置教程圖解(親測(cè)安裝有效)
這篇文章主要介紹了mysql 8.0.22壓縮包完整安裝與配置教程圖解(親測(cè)安裝有效),本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12

