真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

mysql物理備份工具Xtrabackup安裝配置-創(chuàng)新互聯(lián)

mysql物理備份工具Xtrabackup安裝配置

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、小程序設(shè)計(jì)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了彰武免費(fèi)建站歡迎大家使用!

1    Xtrabackup工具介紹

Xtrabackup是一個(gè)對InnoDB做物理數(shù)據(jù)備份的工具,支持在線熱備份(備份時(shí)不影響數(shù)據(jù)讀寫),是商業(yè)備份工具InnoDB Hotbackup的一個(gè)很好的替代品。

Xtrabackup有兩個(gè)主要的工具:xtrabackup、innobackupex

(1)xtrabackup只能備份InnoDB和XtraDB兩種數(shù)據(jù)表,而不能備份MyISAM數(shù)據(jù)表。

(2)innobackupex是用來備份非InnoDB表的,同時(shí)會調(diào)用xtrabackup命令來備份InnoDB表,還會和mysql server發(fā)送命令進(jìn)行交會,如加讀鎖、獲取位點(diǎn)等。簡單來說,innobackupex在xtrabackup之上做了一層封裝。

一般情況下,我們是希望能備份MyISAM表的,雖然我們可能自己不用MyISAM表,但是mysql庫下的系統(tǒng)表示MyISAM的,因此備份基本都通過innobackupex命令進(jìn)行;另外一個(gè)原因是我們可能需要保存位點(diǎn)信息。

2   XtraBackup備份原理

XtraBackup基于InnoDB的crash-recovery功能,它會復(fù)制InnoDB的data file,由于不鎖表,復(fù)制出來的數(shù)據(jù)是不一致的,在恢復(fù)的時(shí)候使用crash-recovery,使得數(shù)據(jù)恢復(fù)一致。

InnoDB維護(hù)了一個(gè)redo log,又稱為transaction log(事務(wù)日志),它包含了InnoDB數(shù)據(jù)的所有改動情況。當(dāng)InnoDB啟動的時(shí)候,它會先去檢查data file和transaction log,并且會做兩步操作:

XtraBackup在備份的時(shí)候,一頁一頁的復(fù)制InnoDB的數(shù)據(jù),而且不鎖定表,與此同時(shí),XtraBackup還有另外一個(gè)線程監(jiān)視著transaction log,一旦log發(fā)生變化,就把變化過的log pages復(fù)制走。為什么要著急復(fù)制走呢?因?yàn)閠ransaction log文件大小有限,寫滿之后,就會從頭再開始寫,所以新數(shù)據(jù)可能會覆蓋到舊的數(shù)據(jù)。

在prepare過程中,XtraBackup使用復(fù)制到的transaction log對備份出來的InnoDB data file進(jìn)行crash recovery。

3  XtraBackup備份特點(diǎn)

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

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

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

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

(5)還原速度快

4  XtraBackup安裝

本來想用源碼安裝的,但總是不斷報(bào)錯(cuò),所以只好采用yum方法安裝了

打開官網(wǎng)yum源安裝方法說明

https://www.percona.com/doc/percona-xtrabackup/LATEST/installation/yum_repo.html

按照步驟安裝官網(wǎng)的yum源

# yum install http://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm

# ls /etc/yum.repos.d/

CentOS-Base.repo      CentOS-fasttrack.repo CentOS-Vault.repo percona-release.repo

CentOS-Debuginfo.repo CentOS-Media.repo     epel.repo

安裝xtrabackup

# yum list|grep percona    #測試是否安裝成功官網(wǎng)的yum源

# yum install percona-xtrabackup-24

# xtrabackup -version   #查看版本信息

也可以選用其他版本用rpm包方式安裝

https://www.percona.com/downloads/XtraBackup/LATEST/binary/redhat/6/x86_64/

5  XtraBackup常用參數(shù)

--user=USER                    指定備份用戶,不指定的話為當(dāng)前系統(tǒng)用戶

--password=PASSWD             指定備份用戶密碼

--port=PORT                    指定數(shù)據(jù)庫端口

--defaults-group=GROUP-NAME    在多實(shí)例的時(shí)候使用

--host=HOST                    指定備份的主機(jī),可以為遠(yuǎn)程數(shù)據(jù)庫服務(wù)器

--apply-log   應(yīng)用 BACKUP-DIR 中的 xtrabackup_logfile 事務(wù)日志文件。一般情況下,在備份完成后,數(shù)據(jù)尚且不能用于恢復(fù)操作,因?yàn)閭浞莸臄?shù)據(jù)中可能會包含尚未提交的事務(wù)或已經(jīng)提交但尚未同步至數(shù)據(jù)文件中的事務(wù)。因此,此時(shí)數(shù)據(jù)文件仍處于不一致狀態(tài)?!皽?zhǔn)備”的主要作用正是通過回滾未提交的事務(wù)及同步已經(jīng)提交的事務(wù)至數(shù)據(jù)文件使得數(shù)據(jù)文件處于一致性狀態(tài)。

--apply-log-only   這個(gè)選項(xiàng)使在準(zhǔn)備備份(prepare)時(shí),只執(zhí)行重做(redo)階段,這對于增量備份非常重要。

--database                    指定需要備份的數(shù)據(jù)庫,多個(gè)數(shù)據(jù)庫之間以空格分開

--defaults-file                指定mysql的配置文件

--copy-back                    將備份數(shù)據(jù)復(fù)制回原始位置

--incremental                  增量備份,后面跟要增量備份的路徑

--incremental-basedir=DIRECTORY 增量備份時(shí)使用指向上一次的增量備份所在的目錄

--incremental-dir=DIRECTORY    增量備份還原的時(shí)候用來合并增量備份到全量,用來指定全備路徑

--redo-only                    對增量備份進(jìn)行合并

--rsync     加快本地文件傳輸,適用于non-InnoDB數(shù)據(jù)庫引擎。不與--stream共用

--safe-slave-backup

--no-timestamp                 生成的備份文件不以時(shí)間戳為目錄.

6   XtraBackup備份數(shù)據(jù)

6.1   全量備份

查看備份之前都有哪些庫

mysql> show databases;

+--------------------+

| Database          |

+--------------------+

| information_schema |

| binlog            |

| database1         |

| mysql             |

| performance_schema |

| wangning          |

| wordpress         |

+--------------------+

7 rows in set (0.16 sec)

全備份數(shù)據(jù)存放在/data/backup/full下面,innobackupex會自動創(chuàng)建一個(gè)文件夾+以當(dāng)前系統(tǒng)時(shí)間命名的文件夾

# innobackupex --defaults-file=/etc/my.cnf --user=root --password=abc123 --socket=/tmp/mysql.sock /data/backup/full

# ls /data/backup/full/

2017-12-11_09-10-45

備份好的目錄里各文件說明,×××部分為備份之前建的庫

# ls /data/backup/full/2017-12-11_09-10-45/

backup-my.cnf ibdata1            wangning               xtrabackup_checkpoints

binlog        mysql              wordpress              xtrabackup_info

database1     performance_schema xtrabackup_binlog_info xtrabackup_logfile

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

(2) ibdata1 —— 備份的表空間文件;

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

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

(5) xtrabackup_logfile —— 備份的重做日志文件。

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

# cat /data/backup/full/2017-12-11_09-10-45/xtrabackup_checkpoints

backup_type = full-backuped     #可以看出是全備份

from_lsn = 0                     #記錄了LSN,日志偏移量

to_lsn = 8096126

last_lsn = 8096126

compact = 0

recover_binlog_info = 0

6.2   恢復(fù)全備數(shù)據(jù)

6.2.1  模擬數(shù)據(jù)庫數(shù)據(jù)損壞

關(guān)閉數(shù)據(jù)庫并移除數(shù)據(jù)文件

# service mysqld stop

# mv /application/mysql/data  /opt/

# mkdir /application/mysql/data   #創(chuàng)建數(shù)據(jù)目錄

# chown -R mysql.mysql /application/mysql/data

6.2.2   準(zhǔn)備完整的數(shù)據(jù)備份文件

一般情況下,這個(gè)/data/backup/full/2017-12-11_09-10-45備份不能用于恢復(fù),因?yàn)閭浞莸臄?shù)據(jù)中可能會包含尚未提交的事務(wù)或已經(jīng)提交但尚未同步至數(shù)據(jù)文件中的事務(wù),此時(shí)數(shù)據(jù)文件處于不一致的狀態(tài)。因此,我們現(xiàn)在就是要通過回滾未提交的事務(wù)及同步已經(jīng)提交的事務(wù)至數(shù)據(jù)文件也使得數(shù)據(jù)文件處于一致性狀態(tài)。

# innobackupex --defaults-file=/etc/my.cnf --user=root --password=abc123 --socket=/tmp/mysql.sock --apply-log /data/backup/full/2017-12-11_09-10-45/

6.2.3 開始恢復(fù)數(shù)據(jù)

# innobackupex --defaults-file=/etc/my.cnf --user=root --password=abc123 --socket=/tmp/mysql.sock  --copy-back /data/backup/full/2017-12-11_09-10-45

171211 10:03:07 innobackupex: Starting the copy-back operation

IMPORTANT: Please check that the copy-back run completes successfully.

          At the end of a successful copy-back run innobackupex

          prints "completed OK!".

innobackupex version 2.4.9 based on MySQL server 5.7.13 Linux (x86_64) (revision id: a467167cdd4)

Error: datadir must be specified.

當(dāng)執(zhí)行上述命令出現(xiàn)報(bào)錯(cuò)時(shí),是因?yàn)閙y.cnf文件里沒有指定datadir目錄

解決方法:

[mysqld]

datadir = /application/mysql/data

啟動mysql出現(xiàn)報(bào)錯(cuò)

# service mysqld start                                                   Starting MySQL. ERROR! The server quit without updating PID file (/application/mysql/data/db01.pid).

將data目錄屬主改為mysql即可

# chown -R mysql.mysql /application/mysql/data/

此時(shí)mysql的數(shù)據(jù)已成功恢復(fù)了

6.3 增量備份

增量備份是在全量備份的基礎(chǔ)之上進(jìn)行的

增量備份目錄1:/data/backup/increment1

增量備份目錄2:/data/backup/increment2

6.3.1   第一次增量備份和恢復(fù)

6.3.1.1 第一次增量備份

先全備再增備,全備見6.1

# innobackupex --defaults-file=/etc/my.cnf --user=root --password=abc123 --socket=/tmp/mysql.sock --incremental /data/backup/increment1 --incremental-basedir=/data/backup/full/2017-12-11_09-10-45

生成一個(gè)以系統(tǒng)時(shí)間命名的文件夾

# ls /data/backup/increment1/

2017-12-11_10-51-27

--incremental-basedir指的是完全備份所在的目錄,此命令執(zhí)行結(jié)束后,innobackupex命令會在/data/backup/increment1目錄中創(chuàng)建一個(gè)新的以時(shí)間命名的目錄以存放所有的增量備份數(shù)據(jù)。另外,在執(zhí)行過增量備份之后再一次進(jìn)行增量備份時(shí),其--incremental-basedir應(yīng)該指向上一次的增量備份所在的目錄。需要注意的是,增量備份僅能應(yīng)用于InnoDB或XtraDB表,對于MyISAM表而言,執(zhí)行增量備份時(shí)其實(shí)進(jìn)行的是完全備份。

6.3.1.2 第一次增備恢復(fù)

準(zhǔn)備完整的數(shù)據(jù)恢復(fù)文件

全備 --apply-log

# innobackupex --defaults-file=/etc/my.cnf --user=root --password=abc123 --socket=/tmp/mysql.sock --apply-log --redo-only /data/backup/full/2017-12-11_09-10-45/

增備1 --apply-log

# innobackupex --defaults-file=/etc/my.cnf --user=root --password=abc123 --socket=/tmp/mysql.sock --apply-log --redo-only /data/backup/full/2017-12-11_09-10-45/ --incremental-dir=/data/backup/increment1/2017-12-11_10-51-27

模擬數(shù)據(jù)庫損壞,詳見6.2.1

開始恢復(fù)數(shù)據(jù),詳見6.2.3

6.3.2  第二次增量備份和恢復(fù)

6.3.2.1 第二次增量備份

第二次增量備份是在第一次增量備份的基礎(chǔ)上進(jìn)行的

# innobackupex --defaults-file=/etc/my.cnf --user=root --password=abc123 --socket=/tmp/mysql.sock --incremental /data/backup/increment2 --incremental-basedir=/data/backup/increment1/2017-12-11_10-51-27

生成一個(gè)以系統(tǒng)時(shí)間命名的文件夾

# ls /data/backup/increment2/

2017-12-11_10-58-55

6.3.2.2 第二次增備恢復(fù)

準(zhǔn)備完整的數(shù)據(jù)恢復(fù)文件

增備2 --apply-log

# innobackupex --defaults-file=/etc/my.cnf --user=root --password=abc123 --socket=/tmp/mysql.sock --apply-log --redo-only /data/backup/full/2017-12-11_09-10-45/ --incremental-dir=/data/backup/increment2/2017-12-11_10-58-55

模擬數(shù)據(jù)庫損壞,詳見6.2.1

開始恢復(fù)數(shù)據(jù),詳見6.2.3

6.4    三次以上增量備份

按照6.3.2.2以此類推即可

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


網(wǎng)站欄目:mysql物理備份工具Xtrabackup安裝配置-創(chuàng)新互聯(lián)
標(biāo)題鏈接:http://weahome.cn/article/diosci.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部