溫馨提示×

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

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Xtrabackup簡(jiǎn)介、優(yōu)勢(shì)、安裝及其它介紹

發(fā)布時(shí)間:2020-04-25 16:57:24 來(lái)源:億速云 閱讀:254 作者:三月 欄目:MySQL數(shù)據(jù)庫(kù)

下文內(nèi)容主要給大家?guī)?lái)Xtrabackup簡(jiǎn)介、優(yōu)勢(shì)、安裝及其它介紹,這里所講到的知識(shí),與書(shū)籍略有不同,都是億速云專業(yè)技術(shù)人員在與用戶接觸過(guò)程中,總結(jié)出來(lái)的,具有一定的經(jīng)驗(yàn)分享價(jià)值,希望給廣大讀者帶來(lái)幫助。

Xtrabackup簡(jiǎn)介

Percona XtraBackup是開(kāi)源免費(fèi)的MySQL數(shù)據(jù)庫(kù)熱備份軟件,它能對(duì)InnoDB和XtraDB存儲(chǔ)引擎的數(shù)據(jù)庫(kù)非阻塞地備份(對(duì)于MyISAM的備份同樣需要加表鎖)。XtraBackup支持所有的Percona Server、MySQL、MariaDB和Drizzle。

XtraBackup優(yōu)勢(shì) :

Xtrabackup簡(jiǎn)介、優(yōu)勢(shì)、安裝及其它介紹

1、無(wú)需停止數(shù)據(jù)庫(kù)進(jìn)行InnoDB熱備

2、增量備份MySQL

3、流壓縮到傳輸?shù)狡渌?a title="云服務(wù)器" target="_blank" href="http://www.kemok4.com/">云服務(wù)器

4、能比較容易地創(chuàng)建主從同步

5、備份MySQL時(shí)不會(huì)增大服務(wù)器負(fù)載

Xtrabackup安裝

這里只介紹Ubuntu-12.04下的安裝方法,其它系統(tǒng)的安裝方法請(qǐng)參考 http://www.percona.com/doc/percona-xtrabackup/2.1/installation.html

apt-key adv --keyserver keys.gnupg.net --recv-keys 1C4CBDCDCD2EFD2A
在/etc/apt/sources.list加入:

deb http://repo.percona.com/apt precise main
deb-src http://repo.percona.com/apt precise main
執(zhí)行update及安裝操作

apt-get update
apt-get install percona-xtrabackup
注:precise是Ubuntu-12.04的版本代號(hào),如果是其它系統(tǒng)版本,需要更換。

Xtrabackup工具介紹

安裝XtraBackup后,其實(shí)會(huì)有幾個(gè)工具:

innobackupex:這個(gè)是其實(shí)是下面三個(gè)工具的一個(gè)perl腳本封裝,可以備份MyISAM, InnoDB, XtraDB表。但在處理Myisam時(shí)需要加一個(gè)讀鎖。

xtrabackup:一個(gè)由C編譯而來(lái)的二進(jìn)制文件,只能備份InnoDB和XtraDB數(shù)據(jù)。

xbcrypt:用來(lái)加密或解密備份的數(shù)據(jù)。

xbstream:用來(lái)解壓或壓縮xbstream格式的壓縮文件。

建議使用perl封裝的innobackupex來(lái)作數(shù)據(jù)庫(kù)備份,因?yàn)楸容^容易使用。所以下面只介紹innobackupex的使用。其它的使用參考: http://www.percona.com/doc/percona-xtrabackup/2.1/manual.html

innobackupex使用方法

完整的選項(xiàng)使用請(qǐng)執(zhí)行innobackupex –help,這里只介紹使用常用的選項(xiàng)進(jìn)行完整備份及增量備份和還原。

innobackupex Options 這里只對(duì)常用參數(shù)進(jìn)行描述

–defaults-file 數(shù)據(jù)庫(kù)的配置文件路徑,感覺(jué)本地備份不寫(xiě)也可以,遠(yuǎn)程沒(méi)測(cè)試過(guò)。

–apply-log 準(zhǔn)備在一個(gè)備份上啟動(dòng)mysql服務(wù)。

–copy-back 從備份目錄拷貝數(shù)據(jù),索引,日志到my.cnf文件里規(guī)定的初始位置。

–no-timestamp 創(chuàng)建備份時(shí)不自動(dòng)生成時(shí)間目錄,可以自定義備份目錄名例如: /backups/mysql/base

–databases 用于指定要備份的數(shù)據(jù)庫(kù), 多個(gè)庫(kù)文件使用方法: “database1 database2″

–incremental 在全備份的基礎(chǔ)上進(jìn)行增量備份,后跟增量備份存貯目錄路徑

–incremental-basedir=DIRECTORY 增量備份所需要的全備份路徑目錄或上次做增量備份的目錄路徑

–incremental-dir=DIRECTORY 增量備份存貯的目錄路徑

–redo-only 用于準(zhǔn)備增量備份內(nèi)容把數(shù)據(jù)合并到全備份目錄,配合–incremental-dir 增量備份目錄使用。

–force-non-empty-directories 如果是特定庫(kù)備份還原,不需要?jiǎng)h掉整個(gè)mysql目錄,只是特定庫(kù)的及相關(guān)文件就可以,還原時(shí)加上此參數(shù)就不會(huì)報(bào)錯(cuò)。

其他具體參數(shù)可以參考:http://www.percona.com/doc/percona-xtrabackup/2.1/innobackupex/innobackupex_option_reference.html

完整備份及還原

一、全部數(shù)據(jù)庫(kù)

備份:

innobackupex --user=root --password=root --defaults-file=/etc/mysql/my.cnf /data/mysql_backup/full_backup
還原:

service mysql stop

rm -rf /var/lib/mysql

mkdir /var/lib/mysql

innobackupex --apply-log /data/mysql_backup/full_backup --use-memory=1G --user=root --password=root

innobackupex --copy-back /data/mysql_backup/full_backup

chown mysql:mysql -R /var/lib/mysql

service mysql start
查看恢復(fù)的數(shù)據(jù)庫(kù)

二、指定數(shù)據(jù)庫(kù)

備份:

假如我們要備份centos和aabb數(shù)據(jù)庫(kù)。

innobackupex --user=root --password=root --defaults-file=/etc/mysql/my.cnf --databases="centos aabb" /data/mysql_backup/

這樣就會(huì)在/data/mysql_backup生成一個(gè)帶時(shí)間的目錄,如果不需要帶時(shí)間,可以使用選項(xiàng)–no-timestamp。

如果想備份成壓縮文件,可以使用如下語(yǔ)句:

innobackupex --user=root --password=root --defaults-file=/etc/mysql/my.cnf --databases="centos aabb" --no-timestamp --stream=tar ./ | gzip - > centos-aabb.bz.tar.gz
還原:

假如完整備份的路徑為/data/mysql_backup/full_backup,如果完整備份是壓縮文件,需要先解壓再還原。

service mysql stop

rm -rf /var/lib/mysql/ibdata*

rm -rf /var/lib/mysql/ib_logfile*

rm -rf /var/lib/mysql/centos

rm -rf /var/lib/mysql/aabb

innobackupex --apply-log /data/mysql_backup/centos_aabb_full_backup

innobackupex --copy-back --defaults-file=/etc/mysql/my.cnf /data/mysql_backup/centos_aabb_full_backup

chown -R mysql:mysql /var/lib/mysql

service mysql start
增量備份及還原

在這里全庫(kù)的增量備份方法就不多講了,只是針對(duì)特定數(shù)據(jù)庫(kù)進(jìn)行講解,其實(shí)是同理的就是把下面參數(shù)中的–databases 選項(xiàng)去掉就可以,感興趣的可以自己試下。

增量備份是建立在完整備份的基礎(chǔ)上的,所以首先確保已經(jīng)完整備份了一次。

完整備份:

innobackupex --user=root --password=root --databases="centos" --no-timestamp /data/mysql_backup/centos_full_backup
現(xiàn)在完整備份的目錄為/data/mysql_backup/centos_full_backup。

增量備份:

第一次增量備份:

innobackupex --incremental /data/mysql_backup/inc1 --no-timestamp --incremental-basedir=/data/mysql_backup/centos_full_backup --user=root --password=root --defaults-file=/etc/mysql/my.cnf
第二次增量備份:需要把–incremental-basedir指定到上次做增量備份的目錄,這里應(yīng)該知道/data/mysql_backup/inc1

innobackupex –incremental /data/mysql_backup/inc2 –no-timestamp –incremental-basedir=/data/mysql_backup/inc1 –user=root –password=root –defaults-file=/etc/mysql/my.cnf

選項(xiàng)–incremental是指定作增量備份 –incremental-basedir選項(xiàng)是指定上一次增量備份的目錄(如果是第一次作增量備份,則為完整備份的目錄)。

還原:

增量備份的還原操作跟完整的還原有點(diǎn)不一樣,首先必須使用–apply-log –redo-only對(duì)完整備份的目錄及所有增量備份目錄進(jìn)行操作,然后就可以像還原完整備份時(shí)的操作了。

對(duì)每個(gè)備份目錄作apply-log redo-only操作(包括完整備份)

innobackupex --apply-log --redo-only /data/mysql_backup/centos_full_backup --user=root --password=root

innobackupex --apply-log --redo-only /data/mysql_backup/centos_full_backup --incremental-dir=/data/mysql_backup/inc1 --user=root --password=root

innobackupex --apply-log --redo-only /data/mysql_backup/centos_full_backup --incremental-dir=/data/mysql_backup/inc2 --user=root --password=root
看到有文章在恢復(fù)增量備份的時(shí)候提到在做最后一個(gè)讀取增量記錄的時(shí)候不使用–redo-only 參數(shù), 經(jīng)過(guò)測(cè)試,使用了此參數(shù)后恢復(fù)的數(shù)據(jù)庫(kù)也都運(yùn)行正確,我使用的是2.17版本xtrabackup, 至于以前版本就沒(méi)測(cè)試過(guò)。有知道的可以在這里分享下。

下面就跟還原完整備份時(shí)一樣了:

service mysql stop

rm -rf /var/lib/mysql/ibdata*

rm -rf /var/lib/mysql/ib_logfile*

rm -rf /var/lib/mysql/centos

innobackupex --apply-log /data/mysql_backup/centos_full_backup --use-memory=1G --user=root --password=root

##--use-memory 能夠定義讀取備份時(shí)的內(nèi)存大小,以便快速的完成還原準(zhǔn)備工作。

innobackupex --copy-back --defaults-file=/etc/mysql/my.cnf /data/mysql_backup/centos_full_backup

chown mysql:mysql -R /var/lib/mysql

service mysql start
現(xiàn)在全部增量恢復(fù)就完成了,可以登錄數(shù)據(jù)庫(kù)查看下恢復(fù)的數(shù)據(jù)了

對(duì)于以上關(guān)于Xtrabackup簡(jiǎn)介、優(yōu)勢(shì)、安裝及其它介紹,如果大家還有更多需要了解的可以持續(xù)關(guān)注我們億速云的行業(yè)推新,如需獲取專業(yè)解答,可在官網(wǎng)聯(lián)系售前售后的,希望該文章可給大家?guī)?lái)一定的知識(shí)更新。

向AI問(wèn)一下細(xì)節(jié)

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

AI