溫馨提示×

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

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

MySQL - Xtrabackup安裝及出現(xiàn)問題處理方法

發(fā)布時(shí)間:2020-05-22 17:26:56 來源:網(wǎng)絡(luò) 閱讀:372 作者:三月 欄目:MySQL數(shù)據(jù)庫

下面講講關(guān)于MySQL - Xtrabackup安裝及出現(xiàn)問題處理方法,文字的奧妙在于貼近主題相關(guān)。所以,閑話就不談了,我們直接看下文吧,相信看完MySQL - Xtrabackup安裝及出現(xiàn)問題處理方法這篇文章你一定會(huì)有所受益。

Xtarbackup簡介
Xtrabackup是由percona開源的免費(fèi)數(shù)據(jù)庫熱備份軟件,它能對(duì)InnoDB數(shù)據(jù)庫和XtraDB存儲(chǔ)引擎的數(shù)據(jù)庫非阻塞地備份(對(duì)于MyISAM的備份同樣需要加表鎖);mysqldump備份方式是采用的邏輯備份,其最大的缺陷是備份和恢復(fù)速度較慢,如果數(shù)據(jù)庫大于50G,mysqldump備份就不太適合。
Xtrabackup優(yōu)點(diǎn)

1)備份速度快,物理備份可靠
2)備份過程不會(huì)打斷正在執(zhí)行的事務(wù)(無需鎖表)
3)能夠基于壓縮等功能節(jié)約磁盤空間和流量
4)自動(dòng)備份校驗(yàn)
5)還原速度快
6)可以流傳將備份傳輸?shù)搅硗庖慌_(tái)機(jī)器上
7)在不增加云服務(wù)器負(fù)載的情況備份數(shù)據(jù)

Xtrabackup備份原理
備份開始時(shí)首先會(huì)開啟一個(gè)后臺(tái)檢測進(jìn)程,實(shí)時(shí)檢測mysql redo的變化,一旦發(fā)現(xiàn)有新的日志寫入,立刻將日志記入后臺(tái)日志文件xtrabackup_log中,之后復(fù)制innodb的數(shù)據(jù)文件一系統(tǒng)表空間文件ibdatax,復(fù)制結(jié)束后,將執(zhí)行flush tables with readlock,然后復(fù)制.frm MYI MYD等文件,最后執(zhí)行unlock tables,最終停止xtrabackup_log。
Xtrabackup增量備份介紹

xtrabackup增量備份的原理是:

1)、首先完成一個(gè)完全備份,并記錄下此時(shí)檢查點(diǎn)LSN;
2)、然后增量備份時(shí),比較表空間中每個(gè)頁的LSN是否大于上次備份的LSN,若是則備份該頁并記錄當(dāng)前檢查點(diǎn)的LSN。

增量備份優(yōu)點(diǎn):

1)、數(shù)據(jù)庫太大沒有足夠的空間全量備份,增量備份能有效節(jié)省空間,并且效率高;
2)、支持熱備份,備份過程不鎖表(針對(duì)InnoDB而言),不阻塞數(shù)據(jù)庫的讀寫;
3)、每日備份只產(chǎn)生少量數(shù)據(jù),也可采用遠(yuǎn)程備份,節(jié)省本地空間;
4)、備份恢復(fù)基于文件操作,降低直接對(duì)數(shù)據(jù)庫操作風(fēng)險(xiǎn);
5)、備份效率更高,恢復(fù)效率更高。

安裝
運(yùn)行環(huán)境是centos 7.2
下載XtraBackup:
wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.9/binary/redhat/7/x86_64/Percona-XtraBackup-2.4.9-ra467167cdd4-el7-x86_64-bundle.tar

(Percona-XtraBackup-8.0下載:
wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-8.0.4/binary/redhat/7/x86_64/percona-xtrabackup-80-8.0.4-1.el7.x86_64.rpm
依賴:yum install cmake gcc gcc-c++ libaio libaio-devel automake autoconf bzr bison libtool ncurses5-devel perl perl-devel perl-Digest-MD5 perl-Time-HiRes perl-DBD-MySQL libev libev-devel libgcrypt libgcrypt-devel curl curl-devel python-setuptools libarchive-devel)

解壓:tar -xf Percona-XtraBackup-2.4.9-ra467167cdd4-el7-x86_64-bundle.tar
檢查安裝percona-xtrabackup-24-2.4.9-1.el6.x86_64.rpm所需依賴包:
yum -y install percona-xtrabackup-24-2.4.9-1.el6.x86_64.rpm --skip-broken
根據(jù)提示進(jìn)行安裝:
yum -y install perl-* mariadb-libs
還有一個(gè)依賴包需要手動(dòng)下載安裝
wget http://mirror.centos.org/centos/7/extras/x86_64/Packages/libev-4.15-7.el7.x86_64.rpm
安裝完成幾個(gè)依賴包,嘗試安裝percona-xtrabackup
yum -y install percona-xtrabackup-24-2.4.9-1.el6.x86_64.rpm
我這顯示正確安裝,沒有報(bào)錯(cuò)。

[root@localhost src]# which xtrabackup
/usr/bin/xtrabackup
[root@localhost src]# innobackupex -v
innobackupex version 2.4.9 Linux (x86_64) (revision id: a467167cdd4)
[root@localhost src]#
MySQL - Xtrabackup安裝及出現(xiàn)問題處理方法

mysql創(chuàng)建數(shù)據(jù)庫以及表
mysql> create database home ;
Query OK, 1 row affected (0.00 sec)

mysql> show databases;
mysql> create table address (name varchar(10) not null,homeaddress varchar(20) not null);
Query OK, 0 rows affected (0.08 sec)
mysql> use home ;
Database changed
mysql> insert into address values('zhuangsan','guangzhou');
Query OK, 1 row affected (0.02 sec)

mysql> insert into address values('lisi','shanghai');
Query OK, 1 row affected (0.01 sec)

mysql> insert into address values('waner','shenzhen');
Query OK, 1 row affected (0.03 sec)
全量備份:
[root@localhost run]# innobackupex --defaults-file=/etc/my.cnf --user=root --password="123abc" --backup /data/mysqldata

--user :mysql的用戶帳號(hào)
--password:為帳號(hào)的密碼
/data/mysqldata:數(shù)據(jù)備份目錄
MySQL - Xtrabackup安裝及出現(xiàn)問題處理方法
[root@localhost run]# ls /data/mysqldata/2018-03-09_17-25-31/       #在這個(gè)目錄中可以看到備份信息,同樣可以看到我們創(chuàng)建的庫的名稱。
MySQL - Xtrabackup安裝及出現(xiàn)問題處理方法
[root@localhost ~]# innobackupex --apply-log /data/mysqldata/2018-03-09_17-25-31/    #使用此參數(shù)使相關(guān)數(shù)據(jù)性文件保持一致性狀態(tài)。
MySQL - Xtrabackup安裝及出現(xiàn)問題處理方法
MySQL - Xtrabackup安裝及出現(xiàn)問題處理方法

恢復(fù):
刪除表信息:
mysql> show databases
-> ;
+------------------------------+
| Database                     |
+------------------------------+
| information_schema           |
| #mysql50#2018-03-09_17-25-31 |
| home                         |
| mysql                        |
| performance_schema           |
| sys                          |
+------------------------------+
6 rows in set (0.09 sec)

mysql> use home;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> show tables;
+----------------+
| Tables_in_home |
+----------------+
| address        |
+----------------+
1 row in set (0.00 sec)

mysql> drop table address;
Query OK, 0 rows affected (0.02 sec)
mysql> select * from address
->;

ERROR 1146 (42S02): Table 'home.address' doesn't exist
mysql>
MySQL - Xtrabackup安裝及出現(xiàn)問題處理方法
恢復(fù)之前必須保證數(shù)據(jù)目錄為空,即mysqldata目錄。由于之前的備份數(shù)據(jù)在mysqldata目錄中,所以需要將里面的數(shù)據(jù)copy出來,確保mysqldata目錄是空的。才能正?;謴?fù)數(shù)據(jù)。要不然會(huì)報(bào)mysqldata目錄非空錯(cuò)誤。
[root@localhost mysqldata]# innobackupex --defaults-file=/etc/my.cnf --copy-back /data/mysqldata.bak/2018-03-09_17-25-31/
MySQL - Xtrabackup安裝及出現(xiàn)問題處理方法
MySQL - Xtrabackup安裝及出現(xiàn)問題處理方法
所遇問題處理 注:
恢復(fù)數(shù)據(jù)后,啟動(dòng)mysql出現(xiàn)報(bào)錯(cuò),無法啟動(dòng)。
[root@localhost mysqldata]# service mysqld start
Starting MySQL.. ERROR! The server quit without updating PID file (/var/run/mysqld/mysqld.pid).
MySQL - Xtrabackup安裝及出現(xiàn)問題處理方法
檢查過/var/run/mysqld目錄沒問題,進(jìn)入恢復(fù)數(shù)據(jù)文件目錄和之前的數(shù)據(jù)進(jìn)行對(duì)比,發(fā)現(xiàn)所以數(shù)據(jù)的所有者不是mysql而是root
MySQL - Xtrabackup安裝及出現(xiàn)問題處理方法
MySQL - Xtrabackup安裝及出現(xiàn)問題處理方法
修改恢復(fù)目錄的數(shù)據(jù)權(quán)限
[root@localhost data]# chown -R mysql:mysql mysqldata
重新啟動(dòng)mysql,正常啟動(dòng)
MySQL - Xtrabackup安裝及出現(xiàn)問題處理方法
查看數(shù)據(jù)是否恢復(fù)。
MySQL - Xtrabackup安裝及出現(xiàn)問題處理方法
數(shù)據(jù)恢復(fù)正常。
增量備份與恢復(fù):
新插入一些數(shù)據(jù),創(chuàng)建用于增量備份的數(shù)據(jù),用來模擬刪除掉了全備后的數(shù)據(jù),能否通過增量備份文件來恢復(fù)。
mysql> select * from address;
+-----------+-------------+
| name      | homeaddress |
+-----------+-------------+
| zhuangsan | guangzhou   |
| lisi      | shanghai    |
| waner     | shenzhen    |
| jinjin    | jiangxi     |
| xiaoxiong | xi`an       |
| meimei    | fujian      |
+-----------+-------------+
6 rows in set (0.00 sec)

mysql>

MySQL - Xtrabackup安裝及出現(xiàn)問題處理方法

增量備份:
[root@localhost mysqldata.bak]# innobackupex --defaults-file=/etc/my.cnf --user=root --password=123abc --incremental /data/mysqldata --incremental-basedir=/data/mysqldata.bak/2018-03-09_17-25-31
--incremental /data/mysqldata      指定增量備份文件存放目錄
--incremental-basedir=/data/mysqldata.bak/2018-03-09_17-25-31        指定上一次全量備份或增量備份的存放目錄
MySQL - Xtrabackup安裝及出現(xiàn)問題處理方法
顯示以下內(nèi)容說明成功:
180323 14:54:20 Executing UNLOCK TABLES
180323 14:54:20 All tables unlocked
180323 14:54:20 [00] Copying ib_buffer_pool to /data/mysqldata/2018-03-23_14-54-12/ib_buffer_pool
180323 14:54:20 [00]        ...done
180323 14:54:20 Backup created in directory '/data/mysqldata/2018-03-23_14-54-12/'
180323 14:54:20 [00] Writing /data/mysqldata/2018-03-23_14-54-12/backup-my.cnf
180323 14:54:20 [00]        ...done
180323 14:54:20 [00] Writing /data/mysqldata/2018-03-23_14-54-12/xtrabackup_info
180323 14:54:20 [00]        ...done
xtrabackup: Transaction log of lsn (2564189) to (2564198) was copied.
180323 14:54:20 completed OK!
[root@localhost mysqldata.bak]#

查看備份情況
MySQL - Xtrabackup安裝及出現(xiàn)問題處理方法
刪除一條數(shù)據(jù)測試增量恢復(fù)
MySQL - Xtrabackup安裝及出現(xiàn)問題處理方法
在恢復(fù)數(shù)據(jù)之前記得關(guān)閉數(shù)據(jù)庫服務(wù)。
MySQL - Xtrabackup安裝及出現(xiàn)問題處理方法
MySQL - Xtrabackup安裝及出現(xiàn)問題處理方法
MySQL - Xtrabackup安裝及出現(xiàn)問題處理方法

對(duì)于以上MySQL - Xtrabackup安裝及出現(xiàn)問題處理方法相關(guān)內(nèi)容,大家還有什么不明白的地方嗎?或者想要了解更多相關(guān),可以繼續(xù)關(guān)注我們的行業(yè)資訊板塊。

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

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

AI