利用xtrabackup工具實(shí)現(xiàn)MySQL數(shù)據(jù)庫(kù)備份詳細(xì)方法-創(chuàng)新互聯(lián)

本文主要給大家簡(jiǎn)單講講利用xtrabackup工具實(shí)現(xiàn)MySQL數(shù)據(jù)庫(kù)備份詳細(xì)方法,相關(guān)專(zhuān)業(yè)術(shù)語(yǔ)大家可以上網(wǎng)查查或者找一些相關(guān)書(shū)籍補(bǔ)充一下,這里就不涉獵了,我們就直奔主題吧,希望利用xtrabackup工具實(shí)現(xiàn)MySQL數(shù)據(jù)庫(kù)備份詳細(xì)方法這篇文章可以給大家?guī)?lái)一些實(shí)際幫助。

10年積累的成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶(hù)對(duì)網(wǎng)站的新想法和需求。提供各種問(wèn)題對(duì)應(yīng)的解決方案。讓選擇我們的客戶(hù)得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站制作后付款的網(wǎng)站建設(shè)流程,更有陽(yáng)明免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

目前主流的有兩個(gè)工具可以實(shí)現(xiàn)物理熱備:ibbackupxtrabackup;ibbackup是商業(yè)軟件,需要授權(quán),非常昂貴。而xtrabackup功能比ibbackup還要強(qiáng)大,但卻是開(kāi)源的。號(hào)稱(chēng)免費(fèi)版的InnoDB HotBackup

官方鏈接地址:http://www.percona.com/software/percona-xtrabackup;可以下載源碼編譯安裝,也可以下載適合的RPM包或使用yum進(jìn)行安裝或者下載二進(jìn)制源碼包。

Xtrabackup它提供了兩種命令行工具:

xtrabackup:專(zhuān)用于備份InnoDBXtraDB引擎的數(shù)據(jù);

innobackupex:這是一個(gè)perl腳本,在執(zhí)行過(guò)程中會(huì)調(diào)用xtrabackup命令,這樣用該命令即可以實(shí)現(xiàn)備份InnoDB,也可以備份MyISAM引擎的對(duì)象。

 利用xtrabackup工具實(shí)現(xiàn)MySQL數(shù)據(jù)庫(kù)備份詳細(xì)方法

Xtrabackup是由percona提供的mysql數(shù)據(jù)庫(kù)備份工具,特點(diǎn):

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

(2)備份過(guò)程不會(huì)打斷正在執(zhí)行的事務(wù);

(3)能夠基于壓縮等功能節(jié)約磁盤(pán)空間和流量;

(4)自動(dòng)實(shí)現(xiàn)備份檢驗(yàn);

(5)還原速度快。

二、安裝xtrabackup

1、下載xtrabackup

wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.4/binary/tarball/percona-xtrabackup-2.4.4-Linux-x86_64.tar.gz

2、解壓

tar zxf percona-xtrabackup-2.4.4-Linux-x86_64.tar.gz

3、進(jìn)入解壓后的目錄

cd percona-xtrabackup-2.4.4-Linux-x86_64/

4、復(fù)制bin下的所有程序到/usr/bin

cp bin/* /usr/bin/

注:Xtrabackup中主要包含兩個(gè)工具:

xtrabackup:是用于熱備份innodb, xtradb表中數(shù)據(jù)的工具,支持在線熱備份,可以在不加鎖的情況下備份Innodb數(shù)據(jù)表,不過(guò)此工具不能操作Myisam引擎表;

innobackupex:是將xtrabackup進(jìn)行封裝的perl腳本,能同時(shí)處理Innodb和Myisam,但在處理Myisam時(shí)需要加一個(gè)讀鎖。

由于操作Myisam時(shí)需要加讀鎖,這會(huì)堵塞線上服務(wù)的寫(xiě)操作,而Innodb沒(méi)有這樣的限制,所以數(shù)據(jù)庫(kù)中Innodb表類(lèi)型所占的比例越大,則越有利。

5、安裝相關(guān)插件

yum -y install perl-DBI perl-DBD-MySQL perl-Time-HiRes perl-IO-Socket-SSL perl-TermReadKey.x86_64 perl-Digest-MD5

6、下載percona-toolkit并安裝

wget https://www.percona.com/downloads/percona-toolkit/2.2.19/RPM/percona-toolkit-2.2.19-1.noarch.rpm  rpm -vih percona-toolkit-2.2.19-1.noarch.rpm

三、進(jìn)行xtrabackup完全備份+binlog增量備份

1、創(chuàng)建備份目錄

mkdir -p /opt/mysqlbackup/{full,inc}

注:full:全備存放的目錄;inc:增量備份存放的目錄

2、開(kāi)啟bin-log日志文件

編輯mysql配置文件添加以下內(nèi)容:

vim /etc/my.cnf log-bin = /etc/local/mysql/data/mysql-bin

重啟mysql服務(wù):

systemctl restart mysqld

3、創(chuàng)建用來(lái)測(cè)試的數(shù)據(jù)

mysql -uroot -p123456mysql> create database test; mysql> use test; mysql> create table tb1(id int primary key auto_increment,name varchar(20)); mysql> insert into tb1(name) values('zhangsan'); mysql> insert into tb1(name) values('lisi');

 利用xtrabackup工具實(shí)現(xiàn)MySQL數(shù)據(jù)庫(kù)備份詳細(xì)方法

4進(jìn)行完全備份

語(yǔ)法:

innobackupex --user=DBUSER --password=DBUSERPASS  /path/to/BACKUP-DIR/

注:相關(guān)選項(xiàng)說(shuō)明

--user:指定連接數(shù)據(jù)庫(kù)的用戶(hù)名;

--password:指定連接數(shù)據(jù)庫(kù)的密碼;

/path/to/BACKUP-DIR/:備份文件的存放位置;

--defaults-file:指定數(shù)據(jù)庫(kù)的配置文件,innobackupex要從其中獲取datadir等信息;

--database:指定要備份的數(shù)據(jù)庫(kù),這里指定的數(shù)據(jù)庫(kù)只對(duì)MyISAM表有效,對(duì)于InnoDB數(shù)據(jù)來(lái)說(shuō)都是全備(所有數(shù)據(jù)庫(kù)中的InnoDB數(shù)據(jù)都進(jìn)行了備份,不是只備份指定的數(shù)據(jù)庫(kù),恢復(fù)時(shí)也一樣)。

--no-timestamp:會(huì)阻止命令自動(dòng)創(chuàng)建一個(gè)以時(shí)間命名的目錄;如此一來(lái),innobackupex命令將會(huì)創(chuàng)建一個(gè)BACKUP-DIR目錄來(lái)存儲(chǔ)備份數(shù)據(jù)

進(jìn)行全庫(kù)備份:

innobackupex --user=root --password=123456 /opt/mysqlbackup/full

出現(xiàn)以下提示,表示成功

利用xtrabackup工具實(shí)現(xiàn)MySQL數(shù)據(jù)庫(kù)備份詳細(xì)方法

在備份的同時(shí),備份數(shù)據(jù)會(huì)在備份目錄下創(chuàng)建一個(gè)以當(dāng)前日期時(shí)間為名字的目錄存放備份文件:

利用xtrabackup工具實(shí)現(xiàn)MySQL數(shù)據(jù)庫(kù)備份詳細(xì)方法

注:各文件說(shuō)明

xtrabackup_checkpoints備份類(lèi)型(如完全或增量)、備份狀態(tài)(如是否已經(jīng)為prepared狀態(tài))和LSN(日志序列號(hào))范圍信息;

每個(gè)InnoDB頁(yè)(通常為16k大小)都會(huì)包含一個(gè)日志序列號(hào),即LSN。LSN是整個(gè)數(shù)據(jù)庫(kù)系統(tǒng)的系統(tǒng)版本號(hào),每個(gè)頁(yè)面相關(guān)的LSN能夠表明此頁(yè)面最近是如何發(fā)生改變的。

xtrabackup_binlog_infomysql云服務(wù)器當(dāng)前正在使用的二進(jìn)制日志文件及至備份這一刻為止二進(jìn)制日志事件的位置。

xtrabackup_binlog_pos_innodb二進(jìn)制日志文件及用于InnoDB或XtraDB表的二進(jìn)制日志文件的當(dāng)前position。

xtrabackup_binary備份中用到的xtrabackup的可執(zhí)行文件;

backup-my.cnf備份命令用到的配置選項(xiàng)信息;

注意:備份數(shù)據(jù)庫(kù)的用戶(hù)需要具有相應(yīng)權(quán)限,如果要使用一個(gè)最小權(quán)限的用戶(hù)進(jìn)行備份,則可基于如下命令創(chuàng)建此類(lèi)用戶(hù):

mysql> create user 'bkpuser'@'localhost' identified by '123456'; mysql> revoke all privileges,grant option from 'bkpuser'@'localhost'; mysql> grant reload,lock tables,replication client, process on *.* to 'bkpuser'@'localhost'; mysql> flush privileges;

5、進(jìn)行增量備份

查看完全備份時(shí)binlog日志位置(position):

 利用xtrabackup工具實(shí)現(xiàn)MySQL數(shù)據(jù)庫(kù)備份詳細(xì)方法

模擬數(shù)據(jù)庫(kù)修改:

mysql> use test mysql> insert into tb1(name) values('wangwu'); mysql> insert into tb1(name) values('zhaoliu'); mysql> exit

增量備份二進(jìn)制文件:

mysqlbinlog --start-position=1049 /usr/local/mysql/data/mysql-bin.000001 > /opt/mysqlbackup/inc/`date -I`.sql

利用xtrabackup工具實(shí)現(xiàn)MySQL數(shù)據(jù)庫(kù)備份詳細(xì)方法

6、模擬數(shù)據(jù)庫(kù)損壞:

rm -fr /usr/local/mysql/data/*

7、還原完全備份:

(1)準(zhǔn)備(prepare)一個(gè)完全備份

一般情況下,在備份完成后,數(shù)據(jù)尚且不能用于恢復(fù)操作,因?yàn)閭浞莸臄?shù)據(jù)中可能會(huì)包含尚未提交的事務(wù)或已經(jīng)提交但尚未同步至數(shù)據(jù)文件中的事務(wù)。因此,此時(shí)數(shù)據(jù)文件仍處理不一致?tīng)顟B(tài)?!皽?zhǔn)備”的主要作用正是通過(guò)回滾未提交的事務(wù)及同步已經(jīng)提交的事務(wù)至數(shù)據(jù)文件也使得數(shù)據(jù)文件處于一致性狀態(tài)。在準(zhǔn)備(prepare)過(guò)程結(jié)束后,InnoDB表數(shù)據(jù)已經(jīng)前滾到整個(gè)備份結(jié)束的點(diǎn),而不是回滾到xtrabackup剛開(kāi)始時(shí)的點(diǎn)。

innobakupex命令的--apply-log選項(xiàng)可用于實(shí)現(xiàn)上述功能。如下面的命令:

innobackupex --apply-log /opt/mysqlbackup/full/2016-09-12_11-29-55/

--apply-log指明是將日志應(yīng)用到數(shù)據(jù)文件上,完成之后將備份文件中的數(shù)據(jù)恢復(fù)到數(shù)據(jù)庫(kù)中

注:/opt/mysqlbackup/full/2016-09-12_11-29-55/備份文件所在目錄名稱(chēng)

如果執(zhí)行正確,其最后輸出的幾行信息通常如下:

利用xtrabackup工具實(shí)現(xiàn)MySQL數(shù)據(jù)庫(kù)備份詳細(xì)方法

    在實(shí)現(xiàn)“準(zhǔn)備”的過(guò)程中,innobackupex通常還可以使用--use-memory選項(xiàng)來(lái)指定其可以使用的內(nèi)存的大小,默認(rèn)通常為100M。如果有足夠的內(nèi)存可用,可以多劃分一些內(nèi)存給prepare的過(guò)程,以提高其完成速度。

(2)還原數(shù)據(jù)庫(kù):

innobackupex命令的--copy-back選項(xiàng)用于執(zhí)行恢復(fù)操作,其通過(guò)復(fù)制所有數(shù)據(jù)相關(guān)的文件至mysql云服務(wù)器DATADIR目錄中來(lái)執(zhí)行恢復(fù)過(guò)程。innobackupex通過(guò)backup-my.cnf來(lái)獲取DATADIR目錄的相關(guān)信息。

 innobackupex --copy-back /opt/mysqlbackup/full/2016-09-12_11-29-55/

這里的--copy-back指明是進(jìn)行數(shù)據(jù)恢復(fù)。數(shù)據(jù)恢復(fù)完成之后,需要修改相關(guān)文件的權(quán)限mysql數(shù)據(jù)庫(kù)才能正常啟動(dòng)。

如果執(zhí)行正確,其輸出信息的最后幾行通常如下:

利用xtrabackup工具實(shí)現(xiàn)MySQL數(shù)據(jù)庫(kù)備份詳細(xì)方法 請(qǐng)確保如上信息的最行一行出現(xiàn)“completed OK!”。

當(dāng)數(shù)據(jù)恢復(fù)至DATADIR目錄以后,修改還原后的數(shù)據(jù)目錄屬主屬組為root所以還需將該目錄屬主屬組改為mysql:

 chown -R mysql:mysql /usr/local/mysql/data/

重啟動(dòng)MySQL:

 systemctl restart mysqld

驗(yàn)證還原后的數(shù)據(jù):

 利用xtrabackup工具實(shí)現(xiàn)MySQL數(shù)據(jù)庫(kù)備份詳細(xì)方法

8、還原增量備份

為了防止還原時(shí)產(chǎn)生大量的二進(jìn)制日志,在還原時(shí)可臨時(shí)關(guān)閉二進(jìn)制日志后再還原:

mysql> set sql_log_bin=0; mysql> source /opt/mysqlbackup/inc/2017-03-21.sql

重新啟動(dòng)二進(jìn)制日志并驗(yàn)證還原數(shù)據(jù):

mysql> set sql_log_bin=1;

驗(yàn)證數(shù)據(jù)是否恢復(fù)回來(lái)

利用xtrabackup工具實(shí)現(xiàn)MySQL數(shù)據(jù)庫(kù)備份詳細(xì)方法

利用xtrabackup工具實(shí)現(xiàn)MySQL數(shù)據(jù)庫(kù)備份詳細(xì)方法就先給大家講到這里,對(duì)于其它相關(guān)問(wèn)題大家想要了解的可以持續(xù)關(guān)注我們的行業(yè)資訊。我們的板塊內(nèi)容每天都會(huì)捕捉一些行業(yè)新聞及專(zhuān)業(yè)知識(shí)分享給大家的。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性?xún)r(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿(mǎn)足用戶(hù)豐富、多元化的應(yīng)用場(chǎng)景需求。

當(dāng)前標(biāo)題:利用xtrabackup工具實(shí)現(xiàn)MySQL數(shù)據(jù)庫(kù)備份詳細(xì)方法-創(chuàng)新互聯(lián)
分享路徑:http://muchs.cn/article32/dgcjsc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊(cè)、網(wǎng)頁(yè)設(shè)計(jì)公司、網(wǎng)站營(yíng)銷(xiāo)、品牌網(wǎng)站設(shè)計(jì)小程序開(kāi)發(fā)、Google

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)