《MySQL 系列連載之 XtraBackup 增量熱備 or 恢復(fù)實(shí)踐(3)》要點(diǎn):
本文介紹了MySQL 系列連載之 XtraBackup 增量熱備 or 恢復(fù)實(shí)踐(3),希望對(duì)您有用。如果有疑問,可以聯(lián)系我們。
如果您在本文遇到任何問題或疑問請(qǐng)到QQ群中與我們交流.也可在下方進(jìn)行評(píng)論.我將在第一時(shí)間和您進(jìn)行交流,共同學(xué)習(xí).
QQ群:201777608、526871767、1689067(加群時(shí)注明:運(yùn)維派)
特別注意:
innobackupex 增量備份僅針對(duì)InnoDB這類支持事務(wù)的引擎,對(duì)于MyISAM等引擎,則仍然是全備.
增量備份需要基于全量備份
先假設(shè)我們已經(jīng)有了一個(gè)全量備份(如上面的/backup/mysql/data/2017-04-04_16-56-35),我們需要在該全量備份的基礎(chǔ)上做第一次增量備份.
[root@master ~]# innobackupex –defaults-file=/etc/my.cnf –user=root –incremental-basedir=/backup/mysql/data/2017-04-04_16-56-35/ –incremental /backup/mysql/data
其中:
–incremental-basedir 指向全量備份目錄 –incremental 指向增量備份的目錄
上面語句執(zhí)行成功之后,會(huì)在–incremental執(zhí)行的目錄下創(chuàng)建一個(gè)時(shí)間戳子目錄(本例中為:/backup/mysql/data/2017-04-04_14-37-24),在該目錄下存放著增量備份的所有文件.
[root@master data]# ll
總用量 8
drwxr-xr-x 6 root root 4096 4月 4 16:56 2017-04-04_16-56-35 //全量備份目錄
drwxr-xr-x 6 root root 4096 4月 4 16:59 2017-04-04_16-58-58 //增量備份目錄
在備份目錄下,有一個(gè)文件xtrabackup_checkpoints記錄著備份信息,其中可以查出
1)全量備份的信息如下:
[root@master data]# cd /backup/mysql/data/2017-04-04_16-56-35/
[root@master 2017-04-04_16-56-35]# cat xtrabackup_checkpoints
backup_type = full-backuped
from_lsn = 0
to_lsn = 1639436
last_lsn = 1639436
compact = 0
2)基于以上全量備份的增量備份的信息如下:
[root@master data]# cd /backup/mysql/data/2017-04-04_16-58-58/
[root@master 2017-04-04_16-58-58]# cat xtrabackup_checkpoints
backup_type = incremental
from_lsn = 1639436
to_lsn = 1639436
last_lsn = 1639436
compact = 0
從上面可以看出,增量備份的from_lsn正好等于全備的to_lsn.
那么,我們是否可以在增量備份的基礎(chǔ)上再做增量備份呢?
答案是肯定的,只要把–incremental-basedir執(zhí)行上一次增量備份的目錄即可,如下所示:
[root@master data]# innobackupex –defaults-file=/etc/my.cnf –user=root –incremental-basedir=/backup/mysql/data/2017-04-04_16-58-58/ –incremental /backup/mysql/data
[root@master ~]# ll /backup/mysql/data/
總用量 12
drwxr-xr-x 6 root root 4096 4月 4 16:56 2017-04-04_16-56-35 //全量備份目錄
drwxr-xr-x 6 root root 4096 4月 4 16:59 2017-04-04_16-58-58 //增量備份目錄1
drwxr-xr-x 6 root root 4096 4月 4 17:02 2017-04-04_17-02-35 //增量備份目錄2
它的trabackup_checkpoints記錄著備份信息如下:
[root@master ~]# cd /backup/mysql/data/2017-04-04_17-02-35/
[root@master 2017-04-04_17-02-35]# cat xtrabackup_checkpoints
backup_type = incremental
from_lsn = 1639436
to_lsn = 1639436
last_lsn = 1639436
compact = 0
可以看到,第二次增量備份的from_lsn是從上一次增量備份的to_lsn開始的
增量備份的恢復(fù)要比全量備份復(fù)雜很多,增量備份與全量備份有著一些不同,尤其要注意的是:
1)需要在每個(gè)備份(包括完全和各個(gè)增量備份)上,將已經(jīng)提交的事務(wù)進(jìn)行“重放”.“重放”之后,所有的備份數(shù)據(jù)將合并到完全備份上.
2)基于所有的備份將未提交的事務(wù)進(jìn)行“回滾”.于是,操作就變成了:不能回滾,因?yàn)橛锌赡艿谝淮蝹浞輹r(shí)候沒提交,在增量中已經(jīng)成功提交
第一步是在所有備份目錄下重做已提交的日志(注意備份目錄路徑要跟全路徑)
其中:
一定要全路徑
BASE-DIR 是指全量備份的目錄
INCREMENTAL-DIR-1 是指第一次增量備份的目錄
INCREMENTAL-DIR-2 是指第二次增量備份的目錄,以此類推.
這里要注意的是:
1)最后一步的增量備份并沒有–redo-only選項(xiàng)!回滾進(jìn)行崩潰恢復(fù)過程
2)可以使用–use_memory提高性能.
3)以上語句執(zhí)行成功之后,最終數(shù)據(jù)在BASE-DIR(即全量目錄)下,其實(shí)增量備份就是把增量目錄下的數(shù)據(jù),整合到全變量目錄下,然后在進(jìn)行,全數(shù)據(jù)量的還原.
第一步完成之后,我們開始下面關(guān)鍵的第二步,即拷貝文件,進(jìn)行全部還原!注意:必須先停止mysql數(shù)據(jù)庫(kù),然后清空數(shù)據(jù)庫(kù)目錄(這里是指/data/mysql/data)下的文件.
4)innobackupex –copy-back BASE-DIR
同樣地,拷貝結(jié)束之后,記得檢查下數(shù)據(jù)目錄(這里指/data/mysql/data)的權(quán)限是否正確(修改成mysql:mysql),然后再重啟mysql.
接下來進(jìn)行案例說明:
假設(shè)我們已經(jīng)有了一個(gè)全量備份2017-04-04_16-56-35 刪除在上面測(cè)試創(chuàng)建的兩個(gè)增量備份
[root@master ~]# cd /backup/mysql/data/
[root@master data]# ll
drwxr-xr-x 6 root root 4096 4月 4 17:08 2017-04-04_16-56-35
drwxr-xr-x 6 root root 4096 4月 4 17:08 2017-04-04_16-58-58
drwxr-xr-x 6 root root 4096 4月 4 17:08 2017-04-04_17-02-35[root@master data]# rm -fr 2017-04-04_16-58-58 2017-04-04_17-02-35
[root@master data]# ll
drwxr-xr-x 6 root root 4096 4月 4 17:08 2017-04-04_16-56-35
假設(shè)在全量備份后,mysql數(shù)據(jù)庫(kù)中又有新數(shù)據(jù)寫入
#進(jìn)入數(shù)據(jù)庫(kù)
[root@master data]# mysql#創(chuàng)建一個(gè)叫做 ceshi 的數(shù)據(jù)庫(kù)
mysql> create database ceshi;
Query OK, 1 row affected (0.00 sec)#切換到 ceshi 庫(kù)下
mysql> use ceshi
Database changed#創(chuàng)建一個(gè)叫做 test1 的表
mysql> create table test1(
-> id int3,
-> name varchar(20)
-> );
Query OK, 0 rows affected (0.26 sec)#往test1表中插入數(shù)據(jù)
mysql> insert into test1 values(1,”chenbaojia”);
Query OK, 1 row affected (0.05 sec)#查看 test1 表中的內(nèi)容
mysql> select * from test1;
+——+————+
| id | name |
+——+————+
| 1 | chenbaojia |
+——+————+
1 row in set (0.00 sec)#查看當(dāng)前所有數(shù)據(jù)庫(kù)
mysql> show databases;
+——————–+
| Database |
+——————–+
| information_schema |
| ceshi |
| mysql |
| performance_schema |
| test |
+——————–+
5 rows in set (0.00 sec)
然后進(jìn)行一次增量備份:
[root@master data]# innobackupex –defaults-file=/etc/my.cnf –user=root –incremental-basedir=/backup/mysql/data/2017-04-04_16-56-35/ –incremental /backup/mysql/data/
[root@master data]# ll
總用量 8
drwxr-xr-x 6 root root 4096 4月 4 17:08 2017-04-04_16-56-35 //全量備份目錄
drwxr-xr-x 6 root root 4096 4月 4 17:28 2017-04-04_17-28-14 //增量備份目錄
接著再在mysql數(shù)據(jù)庫(kù)中寫入新數(shù)據(jù)
[root@master data]# mysql
mysql> use ceshi;
Database changedmysql> insert into test1 values(2,”pelosi”);
Query OK, 1 row affected (0.11 sec)mysql> insert into test1 values(3,”hiofo”);
Query OK, 1 row affected (0.06 sec)mysql> insert into test1 values(4,”mac”);
Query OK, 1 row affected (0.09 sec)mysql> select * from test1;
+——+————+
| id | name |
+——+————+
| 1 | chenbaojia |
| 2 | pelosi |
| 3 | hiofo |
| 4 | mac |
+——+————+
4 rows in set (0.00 sec)
接著在增量的基礎(chǔ)上再進(jìn)行一次增量備份
–incremental-basedi 要寫上次最后增量備份的目錄
[root@master ~]# innobackupex –defaults-file=/etc/my.cnf –user=root –incremental-basedir=/backup/mysql/data/2017-04-04_17-28-14/ –incremental /backup/mysql/data
[root@master ~]# ll /backup/mysql/data/
總用量 12
drwxr-xr-x 6 root root 4096 4月 4 17:08 2017-04-04_16-56-35 //全量備份目錄
drwxr-xr-x 6 root root 4096 4月 4 17:28 2017-04-04_17-28-14 //全量備份目錄
drwxr-xr-x 6 root root 4096 4月 4 17:38 2017-04-04_17-37-58 //全量備份目錄
現(xiàn)在刪除數(shù)據(jù)庫(kù)ceshi 、 test
[root@master ~]# mysql
mysql> show databases;
+——————–+
| Database |
+——————–+
| information_schema |
| ceshi |
| mysql |
| performance_schema |
| test |
+——————–+
5 rows in set (0.00 sec)mysql> drop database ceshi;
Query OK, 1 row affected (0.07 sec)mysql> drop database test;
Query OK, 0 rows affected (0.00 sec)mysql> show databases;
+——————–+
| Database |
+——————–+
| information_schema |
| mysql |
| performance_schema |
+——————–+
3 rows in set (0.00 sec)
接下來就開始進(jìn)行數(shù)據(jù)恢復(fù)操作:
先恢復(fù)應(yīng)用日志(注意最后一個(gè)不需要加–redo-only參數(shù))
[root@master ~]# innobackupex –defaults-file=/etc/my.cnf –user=root –apply-log –redo-only /backup/mysql/data/2017-04-04_16-56-35/
[root@master ~]# innobackupex –defaults-file=/etc/my.cnf –user=root –apply-log –redo-only /backup/mysql/data/2017-04-04_16-56-35/ –incremental-dir=/backup/mysql/data/2017-04-04_17-28-14/
[root@master ~]# innobackupex –defaults-file=/etc/my.cnf –user=root –apply-log /backup/mysql/data/2017-04-04_16-56-35/ –incremental-dir=/backup/mysql/data/2017-04-04_17-37-58/
到此,恢復(fù)數(shù)據(jù)工作還沒有結(jié)束!還有最重要的一個(gè)環(huán)節(jié),就是把增量目錄下的數(shù)據(jù)整合到全量備份目錄下,然后再進(jìn)行一次全量還原.
停止mysql數(shù)據(jù)庫(kù),并清空數(shù)據(jù)目錄
[root@master ~]# /etc/init.d/mysqld stop
Shutting down MySQL. SUCCESS!
[root@master ~]# rm -fr /application/mysql/data/*
最后拷貝文件,并驗(yàn)證數(shù)據(jù)目錄的權(quán)限
[root@master ~]# innobackupex –defaults-file=/etc/my.cnf –user=root –copy-back /backup/mysql/data/2017-04-04_16-56-35/
[root@master ~]# chown -R mysql.mysql /application/mysql/data/*
[root@master ~]# /etc/init.d/mysqld start
Starting MySQL.. SUCCESS!
[root@master ~]# mysql
mysql> show databases;
+——————–+
| Database |
+——————–+
| information_schema |
| ceshi |
| mysql |
| performance_schema |
| test |
| xtra_test |
+——————–+
6 rows in set (0.00 sec)mysql> select * from ceshi.test1;
+——+————+
| id | name |
+——+————+
| 1 | chenbaojia |
| 2 | pelosi |
| 3 | hiofo |
| 4 | mac |
+——+————+
4 rows in set (0.00 sec)
另外注意: 上面在做備份的時(shí)候,將備份目錄和增量目錄都放在了同一個(gè)目錄路徑下,其實(shí)推薦放在不同的路徑下,方便管理!比如:
/backup/mysql/data/full 存放全量備份目錄
/backup/mysql/data/daily1 存放第一次增量備份目錄
/backup/mysql/data/daily2 存放第二次增量目錄
以此類推
在恢復(fù)的時(shí)候,注意命令中的路徑要跟對(duì)!
xtrabackup命令只備份數(shù)據(jù)文件,并不備份數(shù)據(jù)表結(jié)構(gòu)(.frm),所以使用xtrabackup恢復(fù)的時(shí)候必須有對(duì)應(yīng)表結(jié)構(gòu)文件(.frm).用innobackupex命令,此命令相當(dāng)于冷備份,復(fù)制數(shù)據(jù)目錄的索引,數(shù)據(jù),結(jié)構(gòu)文件,但會(huì)有短暫的鎖表(時(shí)間依賴于MyISAM大小).
innobackupex 常用參數(shù)說明 –defaults-file 同xtrabackup的–defaults-file參數(shù)
–apply-log 對(duì)xtrabackup的–prepare參數(shù)的封裝
–copy-back 做數(shù)據(jù)恢復(fù)時(shí)將備份數(shù)據(jù)文件拷貝到MySQL服務(wù)器的datadir ;
–remote-host=HOSTNAME 通過ssh將備份數(shù)據(jù)存儲(chǔ)到進(jìn)程服務(wù)器上;
–stream=[tar] 備 份文件輸出格式, tar時(shí)使用tar4ibd , 該文件可在XtarBackup binary文件中獲得.如果備份時(shí)有指定–stream=tar, 則tar4ibd文件所處目錄一定要在$PATH中(因?yàn)槭褂玫氖莟ar4ibd去壓縮, 在XtraBackup的binary包中可獲得該文件). 在 使用參數(shù)stream=tar備份的時(shí)候,你的xtrabackup_logfile可能會(huì)臨時(shí)放在/tmp目錄下,如果你備份的時(shí)候并發(fā)寫入較大的話 xtrabackup_logfile可能會(huì)很大(5G+),很可能會(huì)撐滿你的/tmp目錄,可以通過參數(shù)–tmpdir指定目錄來解決這個(gè)問題.
–tmpdir=DIRECTORY 當(dāng)有指定–remote-host or –stream時(shí), 事務(wù)日志臨時(shí)存儲(chǔ)的目錄, 默認(rèn)采用MySQL配置文件中所指定的臨時(shí)目錄tmpdir
–redo-only –apply-log組, 強(qiáng)制備份日志時(shí)只redo ,跳過rollback.這在做增量備份時(shí)非常必要.
–use-memory=# 該參數(shù)在prepare的時(shí)候使用,控制prepare時(shí)innodb實(shí)例使用的內(nèi)存量
–throttle=IOS 同xtrabackup的–throttle參數(shù)
–sleep=是給ibbackup使用的,指定每備份1M數(shù)據(jù),過程停止拷貝多少毫秒,也是為了在備份時(shí)盡量減小對(duì)正常業(yè)務(wù)的影響,具體可以查看ibbackup的手冊(cè) ;
–compress[=LEVEL] 對(duì)備份數(shù)據(jù)迚行壓縮,僅支持ibbackup,xtrabackup還沒有實(shí)現(xiàn);
–include=REGEXP 對(duì) xtrabackup參數(shù)–tables的封裝,也支持ibbackup.備份包含的庫(kù)表,例如:–include=”test.”,意思是要備份 test庫(kù)中所有的表.如果需要全備份,則省略這個(gè)參數(shù);如果需要備份test庫(kù)下的2個(gè)表:test1和test2,則寫 成:–include=”test.test1|test.test2″.也可以使用通配符,如:–include=”test.test”.
–databases=LIST 列出需要備份的databases,如果沒有指定該參數(shù),所有包含MyISAM和InnoDB表的database都會(huì)被備份;
–uncompress 解壓備份的數(shù)據(jù)文件,支持ibbackup,xtrabackup還沒有實(shí)現(xiàn)該功能;
–slave-info, 備 份從庫(kù), 加上–slave-info備份目錄下會(huì)多生成一個(gè)xtrabackup_slave_info 文件, 這里會(huì)保存主日志文件以及偏移, 文件內(nèi)容類似于:CHANGE MASTER TO MASTER_LOG_FILE=”, MASTER_LOG_POS=0
–socket=SOCKET 指定mysql.sock所在位置,以便備份進(jìn)程登錄mysql.
更多參數(shù)見:http://www.percona.com/doc/percona-xtrabackup/2.1/innobackupex/innobackupex_option_reference.html
innobackupex全量、增量備份腳本
可以根據(jù)自己線上數(shù)據(jù)庫(kù)情況,編寫全量和增量備份腳本,然后結(jié)合crontab設(shè)置計(jì)劃執(zhí)行.
比如:每周日的1:00進(jìn)行全量備份,每周1-6的1:00進(jìn)行增量備份.
還可以在腳本里編寫郵件通知信息(可以用mail或sendemail)
1、可能報(bào)錯(cuò)1
解決方案:
.pm實(shí)際上是Perl的包,只需安裝perl-Time-HiRes即可:
[root@test-huanqiu percona-xtrabackup-2.1.9]# yum install -y perl-Time-HiRes
2、可能報(bào)錯(cuò)2
報(bào)錯(cuò)原因:系統(tǒng)沒有按安裝DBI組件.
DBI(Database Interface)是perl連接數(shù)據(jù)庫(kù)的接口.其是perl連接數(shù)據(jù)庫(kù)的最優(yōu)秀方法,他支持包括Orcal,Sybase,mysql,db2等絕大多數(shù)的數(shù)據(jù)庫(kù).
解決辦法:
安裝DBI組件(Can’t locate DBI.pm in @INC-mysql接口)
或者單獨(dú)裝DBI、Data-ShowTable、DBD-mysql 三個(gè)組件
[root@test-huanqiu percona-xtrabackup-2.1.9]# yum -y install perl-DBD-MySQL
接著使用innobackupex命令測(cè)試是否正常[root@test-huanqiu percona-xtrabackup-2.1.9]# innobackupex –help
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”.–compact
Create a compact backup with all secondary index pages omitted. This
option is passed directly to xtrabackup. See xtrabackup
documentation for details.–compress
This option instructs xtrabackup to compress backup copies of InnoDB
data files. It is passed directly to the xtrabackup child process.
Try ‘xtrabackup –help’ for more details.
3、可能報(bào)錯(cuò)3
161130 05:56:48 innobackupex: Connecting to MySQL server with DSN ‘dbi:mysql:;mysql_read_default_file=/usr/local/mysql/my.cnf;mysql_read_default_group=xtrabackup’ as ‘root’ (using password: YES).
innobackupex: Error: Failed to connect to MySQL server as DBD::mysql module is not installed at /home/mysql/admin/bin/percona-xtrabackup-2.1.9/innobackupex line 2956.
解決辦法:
[root@test-huanqiu ~]# yum -y install perl-DBD-MySQL.x86_64
……
Package perl-DBD-MySQL-4.013-3.el6.x86_64 already installed and latest version //發(fā)現(xiàn)本機(jī)已經(jīng)安裝了[root@test-huanqiu ~]# rpm -qa|grep perl-DBD-MySQL
perl-DBD-MySQL-4.013-3.el6.x86_64
發(fā)現(xiàn)本機(jī)已經(jīng)安裝了最新版的perl-DBD-MYSQL了,但是仍然報(bào)出上面的錯(cuò)誤!! 莫慌~~繼續(xù)下面的操作進(jìn)行問題的解決查看mysql.so依賴的lib庫(kù)
[root@test-huanqiu ~]# ldd /usr/lib64/perl5/auto/DBD/mysql/mysql.so
linux-vdso.so.1 => (0x00007ffd291fc000)
libmysqlclient.so.16 => not found //這一項(xiàng)為通過檢查,缺失libmysqlclient.so.16庫(kù)導(dǎo)致
libz.so.1 => /lib64/libz.so.1 (0x00007f78ff9de000)
libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007f78ff7a7000)
libnsl.so.1 => /lib64/libnsl.so.1 (0x00007f78ff58e000)
libm.so.6 => /lib64/libm.so.6 (0x00007f78ff309000)
libssl.so.10 => /usr/lib64/libssl.so.10 (0x00007f78ff09d000)
libcrypto.so.10 => /usr/lib64/libcrypto.so.10 (0x00007f78fecb9000)
libc.so.6 => /lib64/libc.so.6 (0x00007f78fe924000)
libfreebl3.so => /lib64/libfreebl3.so (0x00007f78fe721000)
libgssapi_krb5.so.2 => /lib64/libgssapi_krb5.so.2 (0x00007f78fe4dd000)
libkrb5.so.3 => /lib64/libkrb5.so.3 (0x00007f78fe1f5000)
libcom_err.so.2 => /lib64/libcom_err.so.2 (0x00007f78fdff1000)
libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x00007f78fddc5000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f78fdbc0000)
/lib64/ld-linux-x86-64.so.2 (0x00007f78ffe1d000)
libkrb5support.so.0 => /lib64/libkrb5support.so.0 (0x00007f78fd9b5000)
libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x00007f78fd7b2000)
libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f78fd597000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f78fd37a000)
libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f78fd15a000)
以上結(jié)果說明缺少libmysqlclient.so.16這個(gè)二進(jìn)制包,找個(gè)官方原版的mysql的libmysqlclient.so.16替換了即可![root@test-huanqiu~]# find / -name libmysqlclient.so.16 //查看本機(jī)并沒有l(wèi)ibmysqlclient.so.16庫(kù)文件
查看mysql/lib下的libmysqlclinet.so庫(kù)文件[root@test-huanqiu~]# ll /usr/local/mysql/lib/
total 234596
-rw-r–r–. 1 mysql mysql 19520800 Nov 29 12:27 libmysqlclient.a
lrwxrwxrwx. 1 mysql mysql 16 Nov 29 12:34 libmysqlclient_r.a -> libmysqlclient.a
lrwxrwxrwx. 1 mysql mysql 17 Nov 29 12:34 libmysqlclient_r.so -> libmysqlclient.so
lrwxrwxrwx. 1 mysql mysql 20 Nov 29 12:34 libmysqlclient_r.so.18 -> libmysqlclient.so.18
lrwxrwxrwx. 1 mysql mysql 24 Nov 29 12:34 libmysqlclient_r.so.18.1.0 -> libmysqlclient.so.18.1.0
lrwxrwxrwx. 1 mysql mysql 20 Nov 29 12:34 libmysqlclient.so -> libmysqlclient.so.18
lrwxrwxrwx. 1 mysql mysql 24 Nov 29 12:34 libmysqlclient.so.18 -> libmysqlclient.so.18.1.0
-rwxr-xr-x. 1 mysql mysql 8858235 Nov 29 12:27 libmysqlclient.so.18.1.0
-rw-r–r–. 1 mysql mysql 211822074 Nov 29 12:34 libmysqld.a
-rw-r–r–. 1 mysql mysql 14270 Nov 29 12:27 libmysqlservices.a
drwxr-xr-x. 3 mysql mysql 4096 Nov 29 12:34 plugin
將mysql/lib/libmysqlclient.so.18.1.0庫(kù)文件拷貝到/lib64下,拷貝后命名為libmysqlclient.so.16[root@test-huanqiu~]# cp /usr/local/mysql/lib/libmysqlclient.so.18.1.0 /lib64/libmysqlclient.so.16
[root@test-huanqiu~]# cat /etc/ld.so.conf
include ld.so.conf.d/*.conf
/usr/local/mysql/lib/
/lib64/
[root@test-huanqiu~]# ldconfig最后卸載perl-DBD-MySQL,并重新安裝perl-DBD-MySQL
[root@test-huanqiu~]# rpm -qa|grep perl-DBD-MySQL
perl-DBD-MySQL-4.013-3.el6.x86_64
[root@test-huanqiu~]# rpm -e –nodeps perl-DBD-MySQL
[root@test-huanqiu~]# rpm -qa|grep perl-DBD-MySQL
[root@test-huanqiu~]# yum -y install perl-DBD-MySQL
待重新安裝后,再次重新檢查mysql.so依賴的lib庫(kù),發(fā)現(xiàn)已經(jīng)都通過了[root@test-huanqiu~]# ldd /usr/lib64/perl5/auto/DBD/mysql/mysql.so
linux-vdso.so.1 => (0x00007ffe3669b000)
libmysqlclient.so.16 => /usr/lib64/mysql/libmysqlclient.so.16 (0x00007f4af5c25000)
libz.so.1 => /lib64/libz.so.1 (0x00007f4af5a0f000)
libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007f4af57d7000)
libnsl.so.1 => /lib64/libnsl.so.1 (0x00007f4af55be000)
libm.so.6 => /lib64/libm.so.6 (0x00007f4af533a000)
libssl.so.10 => /usr/lib64/libssl.so.10 (0x00007f4af50cd000)
libcrypto.so.10 => /usr/lib64/libcrypto.so.10 (0x00007f4af4ce9000)
libc.so.6 => /lib64/libc.so.6 (0x00007f4af4955000)
libfreebl3.so => /lib64/libfreebl3.so (0x00007f4af4751000)
libgssapi_krb5.so.2 => /lib64/libgssapi_krb5.so.2 (0x00007f4af450d000)
libkrb5.so.3 => /lib64/libkrb5.so.3 (0x00007f4af4226000)
libcom_err.so.2 => /lib64/libcom_err.so.2 (0x00007f4af4021000)
libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x00007f4af3df5000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f4af3bf1000)
/lib64/ld-linux-x86-64.so.2 (0x00007f4af61d1000)
libkrb5support.so.0 => /lib64/libkrb5support.so.0 (0x00007f4af39e5000)
libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x00007f4af37e2000)
libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f4af35c8000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f4af33aa000)
libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f4af318b000)
4、可能報(bào)錯(cuò)4
有可能是percona-xtrabackup編譯安裝后,在編譯目錄的src下存在xtrabackup_innodb55,只需要其更名為xtrabackup_55,然后拷貝到上面的/home/mysql/admin/bin/percona-xtrabackup-2.1.9/下即可!
第一篇 MySQL 系列連載之 XtraBackup 備份原理(1)
第二篇 MySQL 系列連載之 XtraBackup全量熱備 or 恢復(fù)實(shí)踐(2)
第三篇 MySQL 系列連載之 XtraBackup 增量熱備 or 恢復(fù)實(shí)踐(3)
感謝您閱讀.
轉(zhuǎn)載請(qǐng)注明本頁網(wǎng)址:
http://www.snjht.com/jiaocheng/4260.html