溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MySQL 采用Xtrabackupex進行全庫備份過程匯總

發(fā)布時間:2020-08-10 21:40:19 來源:ITPUB博客 閱讀:125 作者:yangi1314 欄目:MySQL數(shù)據(jù)庫

1,xtrabackup簡介

關(guān)于數(shù)據(jù)庫備份以及備份工具,參考:http://blog.itpub.net/26230597/viewspace-1460065/,這里來介紹xtrabackup已經(jīng)如何使用xtrabackup進行對數(shù)據(jù)庫的全備份已經(jīng)恢復。

 

2,xtrabackup下載

下載地址為:http://www.percona.com/downloads/XtraBackup/

Chorm瀏覽器下面,在“DOWNLOADPERCONA XTRABACKUP”下面,選擇版本號以及os版本,有的瀏覽器打不開,可能會出現(xiàn)“No files found with current filters.”,那么就需要換個瀏覽器比如chrome就可以打開了,如下圖1.png所示:

MySQL 采用Xtrabackupex進行全庫備份過程匯總

 

也可以直接在linux下面是用wget的方式下載:

wget http://www.percona.com/downloads/XtraBackup/XtraBackup-2.2.9/binary/tarball/percona-xtrabackup-2.2.9-5067-Linux-x86_64.tar.gz

 

 

3,xtrabackup安裝

3.1配置datadir

先check下是否已經(jīng)配置datadir,檢查是否有mysql服務,有的話就在my.cnf配置文件里面設置datadir

[root@data01 ~]# more /etc/my.cnf |grepdatadir

[root@data01 ~]#

Ok,看到?jīng)]有配置datadir,去my.cnf里面配置

vim my.cnf

datadir         = /home/data/mysql/data

再check下:

[root@data01 ~]# more /etc/my.cnf |grepdatadir

datadir         = /home/data/mysql/data

[root@data01 ~]#

[root@data01 ~]#

 

3.2解壓

tar -xvfpercona-xtrabackup-2.2.9-5067-Linux-x86_64.tar.gz

 

3.3 copy到/usr/bin/

cp./percona-xtrabackup-2.2.9-Linux-x86_64/bin/innobackupex /usr/bin/innobackupex

cp./percona-xtrabackup-2.2.9-Linux-x86_64/bin/xtrabackup /usr/bin/xtrabackup

cp./percona-xtrabackup-2.2.9-Linux-x86_64/bin/xbcrypt /usr/bin/xbcrypt

cp ./percona-xtrabackup-2.2.9-Linux-x86_64/bin/xbstream/usr/bin/xbstream

PS:新版本已經(jīng)沒有了innobackupex-1.5.1這個小插件了。

 

3.4 查看xtrabackup是否可用

[root@data01 ~]# innobackupex --help |more

Options:

   --apply-log

       Prepare a backup in BACKUP-DIR by applying the transaction log file

       named "xtrabackup_logfile" located in the same directory.Also,

       create new transaction logs. The InnoDB configuration is read from

       the file "backup-my.cnf".

 

   --backup-locks

       This option controls if backup locks should be used instead of FLUSH

       TABLES WITH READ LOCK on the backup stage. The option has no effect

       when backup locks are not supported by the server. This option is

       enabled by default, disable with --no-backup-locks.

 

3.5 源碼方式安裝

參考:http://www.percona.com/doc/percona-xtrabackup/2.2/installation/compiling_xtrabackup.html

 

4,二大工具組件

xtrabackup:支持innodb存儲引擎表,xtradb存儲引擎表

innobackupex:支持innodb存儲引擎表、xtradb存儲引擎表、myisam存儲引擎表。

 

5,一些重要參數(shù)

--defaults-file

同xtrabackup的--defaults-file參數(shù)

--apply-log

對xtrabackup的--prepare參數(shù)的封裝

--copy-back

做數(shù)據(jù)恢復時將備份數(shù)據(jù)文件拷貝到MySQL服務器的datadir ;

--remote-host=HOSTNAME

通過ssh將備份數(shù)據(jù)存儲到進程服務器上;

--stream=[tar]

備份文件輸出格式, tar時使用tar4ibd , 該文件可在XtarBackup binary文件中獲得.如果備份時有指定--stream=tar, 則tar4ibd文件所處目錄一定要在$PATH中(因為使用的是tar4ibd去壓縮, 在XtraBackup的binary包中可獲得該文件)。

在使用參數(shù)stream=tar備份的時候,你的xtrabackup_logfile可能會臨時放在/tmp目錄下,如果你備份的時候并發(fā)寫入較大的話 xtrabackup_logfile可能會很大(5G+),很可能會撐滿你的/tmp目錄,可以通過參數(shù)--tmpdir指定目錄來解決這個問題。

--tmpdir=DIRECTORY

當有指定--remote-host or --stream時, 事務日志臨時存儲的目錄, 默認采用MySQL配置文件中所指定的臨時目錄tmpdir

--redo-only--apply-log組,

強制備份日志時只redo ,跳過rollback。這在做增量備份時非常必要。

--use-memory=#

該參數(shù)在prepare的時候使用,控制prepare時innodb實例使用的內(nèi)存量,用來取代my.cnf中的buffer_pool_size值,如果你是獨立服務器,而且內(nèi)存足夠大的話,為了加快備份恢復的效率,你可以調(diào)大--use-memory這個參數(shù)值

--throttle=IOS

同xtrabackup的--throttle參數(shù)

--sleep=是給ibbackup使用的,指定每備份1M數(shù)據(jù),過程停止拷貝多少毫秒,也是為了在備份時盡量減小對正常業(yè)務的影響,具體可以查看ibbackup的手冊;

--compress[=LEVEL]

對備份數(shù)據(jù)迚行壓縮,僅支持ibbackup,xtrabackup還沒有實現(xiàn);

--include=REGEXP

對 xtrabackup參數(shù)--tables的封裝,也支持ibbackup。備份包含的庫表,例如:--include="test.*",意思是要備份 test庫中所有的表。如果需要全備份,則省略這個參數(shù);如果需要備份test庫下的2個表:test1和test2,則寫成:--include="test.test1|test.test2"。也可以使用通配符,如:--include="test.test*"。

--databases=LIST

列出需要備份的databases,如果沒有指定該參數(shù),所有包含MyISAM和InnoDB表的database都會被備份;

--uncompress

解壓備份的數(shù)據(jù)文件,支持ibbackup,xtrabackup還沒有實現(xiàn)該功能;

--slave-info

備份從庫, 加上--slave-info備份目錄下會多生成一個xtrabackup_slave_info 文件, 這里會保存主日志文件以及偏移, 文件內(nèi)容類似于:CHANGE MASTER TO MASTER_LOG_FILE='', MASTER_LOG_POS=0

--socket=SOCKET

指定mysql.sock所在位置,以便備份進程登錄mysql.

--safe-slave-backup

則會暫停Slave的SQL線程,等待到?jīng)]有打開的臨時表的時候開始備份.備份結(jié)束后SQL線程會自動啟動,這樣就可以確保一致性的復制狀態(tài).

6,xtrabackup全備份

6.1 全備份

只備份不壓縮:

xtrabackup --defaults-file=/etc/my.cnf--user=root --password="" --port=3306 --backup--target-dir=/data/backups/mysql/$(date +%Y%m%d)/

 

備份壓縮:

xtrabackup --defaults-file=/etc/my.cnf--user=root --password="" --port=3306 --backup    --socket=/usr/local/mysql/mysql.sock--stream=tar --target-dir=/data/backups/mysql/$(date +%Y%m%d)/ |gzip >alldbfullbackup.tar.gz

參考:http://www.percona.com/doc/percona-xtrabackup/2.2/howtos/recipes_ibkx_compressed.html

 

備份過程如下所示:


7.1 全備份

innobackupex --defaults-file=/etc/my.cnf--user=root --password="" --target-dir=/data/backups/mysql/$(date+%Y%m%d)/ --no-timestamp --parallel=2

 

備份過程如下:


       xtrabackup備份恢復工具比較適合數(shù)據(jù)增長型數(shù)據(jù)庫。對于數(shù)據(jù)增長型的庫,由于數(shù)據(jù)的增長導致數(shù)據(jù)備份和恢復的空間和時間上的壓力較大。而xtrabackup也有增量備份的功能,在短時間內(nèi)可以通過進行增量備份來保證數(shù)據(jù)的安全性。而長期來看,仍然需要間斷性的進行全庫備份。此外,由于xtrabackup對innodb的數(shù)據(jù)庫不進行鎖定,因此對要求不影響線上服務的數(shù)據(jù)備份和恢復較適合。

       而對于數(shù)據(jù)量無明顯增長,且更新為主的數(shù)據(jù)更新型數(shù)據(jù)庫,xtrabackup顯得過于復雜。xtrabackup操作反而不如mysqldump的性能高。

  ----------------------------------------------------------------------------------------------------------------
<版權(quán)所有,文章允許轉(zhuǎn)載,但必須以鏈接方式注明源地址,否則追究法律責任!>
原博客地址:    http://blog.itpub.net/26230597/viewspace-1465772/
原作者:黃杉(mchdba)
----------------------------------------------------------------------------------------------------------------

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI