溫馨提示×

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

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

mysql innobackupex 物理備份

發(fā)布時(shí)間:2020-08-11 19:29:09 來源:ITPUB博客 閱讀:167 作者:abin1703 欄目:MySQL數(shù)據(jù)庫(kù)
一、innobackupex 安裝

本次環(huán)境為centos6,在http://www.percona.com/downloads/xtrabackup/下載安裝包

本次實(shí)驗(yàn)下載安裝為
wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.3.4/binary/redhat/6/x86_64/Percona-XtraBackup-2.3.4-re80c779-el6-x86_64-bundle.tar

下載完成后,如下安裝:
root@mysqlslave soft]# rpm -ivh percona-xtrabackup-2.3.4-1.el6.x86_64.rpm 
warning: percona-xtrabackup-2.3.4-1.el6.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID cd2efd2a: NOKEY
error: Failed dependencies:
libev.so.4()(64bit) is needed by percona-xtrabackup-2.3.4-1.el6.x86_64

發(fā)現(xiàn)缺依賴包。。。。
解決:
yum install libev -y
再次安裝:
[root@mysqlslave soft]# rpm -ivh percona-xtrabackup-2.3.4-1.el6.x86_64.rpm 
warning: percona-xtrabackup-2.3.4-1.el6.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID cd2efd2a: NOKEY
Preparing...                ########################################### [100%]
   1:percona-xtrabackup     ########################################### [100%]

安裝成功,并查看版本
[root@mysqlslave soft]# innobackupex -version
innobackupex version 2.3.4 Linux (x86_64) (revision id: e80c779)


一、備份

1.1、創(chuàng)建全備份集


innobackupex --defaults-file=/etc/my.cnf --host 10.20.20.13 --port=3306 --user=root --password=123456 --socket=/usr/local/mysql/mysql.sock /data/backup/full
參數(shù)解釋:
--defaults-file 啟動(dòng)mysql的參數(shù)文件
--host       主機(jī)名稱可以備份遠(yuǎn)端服務(wù)器
--port     mysql的端口號(hào)
--user      備份用戶名
--password   備份用戶密碼
--socket    啟動(dòng)mysql的socket文件

以下是mysql innobackupex 物理備份并備份日志的腳本
#!/bin/bash
cd /data/backup/full/
c=`pwd`
innobackupex --defaults-file=/etc/my.cnf --host 10.20.20.13 --port=3306 --user=root --password=123456 --socket=/usr/local/mysql/mysql.sock $c
a=`echo $?`
echo $a
b=`ls -l | grep '^d'|awk -F ":" '{print$2}'|awk -F " " '{print$2}'`
echo $b
cd $c
if [ $a == 0 ];then
innobackupex --use-memory=500m --apply-log $b
echo -e "\033[32m ################################################ \033[0m"
echo -e "\033[32m ####            BackUp  Sucessed  ##### \033[0m"
echo -e "\033[32m ################################################ \033[0m"
tar -zcvf $b.tar $b
rm -rf $b
else
echo -e "\033[41;37m #############################################  \033[0m"
echo -e "\033[41;37m ####           BackUp  Failed    ####  \033[0m"
echo -e "\033[41;37m #############################################  \033[0m"
echo "backup failed"
fi


1.2 增量備份

增量備份首先也需要一個(gè)全量的備份。

例子:

例如:

星期一    星期二        星期三
全備      增量        增量

全備    備份星期一    備份星期二
     與星期二差異   與星期三差異

備份子目錄需要手工創(chuàng)建。

mkdir /data/backup/{mon,tue,wed}

全備(星期一):星期一需要做一個(gè)0級(jí)備份,也就是全備份
  innobackupex --defaults-file=/etc/my.cnf --host 10.20.20.13 --user=root --password=123456 /data/backup/mon
增量備份(星期二):星期二做一個(gè)與0級(jí)備份之間相差的增量備份
  innobackupex --defaults-file=/etc/my.cnf --host 10.20.20.13 --user=root --password=123456 --incremental /data/backup/tue/ --incremental-basedir=/data/backup/mon/2016-04-20_19-50-34

增量備份(星期三):星期三與星期二之間相差的增量備份
   innobackupex --defaults-file=/etc/my.cnf --host 10.20.20.13 --user=root --password=123456 --incremental /data/backup/wed/ --incremental-basedir=/data/backup/tue/2016-04-20_19-53-41/



1.3查看備份信息

可以通過以下文件查看備份信息。

 [root@drbd-01 backup]# cat /data/backup/full/2015-07-28_12-10-45/xtrabackup_checkpoints

backup_type = full-backuped

from_lsn = 0

to_lsn = 3194902

last_lsn = 3194902

compact = 0

[root@drbd-01 backup]# cat /data/backup/001/xtrabackup_checkpoints

backup_type = incremental

from_lsn = 3194902

to_lsn = 3198776

last_lsn = 3198776

compact = 0

[root@drbd-01 backup]# cat /data/backup/002/xtrabackup_checkpoints

backup_type = incremental

from_lsn = 3198776

to_lsn = 3202726

last_lsn = 3202726

compact = 0

上面看到,可以通過lsn看到這3個(gè)備份集關(guān)系。

二 恢復(fù)

刪除原來的mysql數(shù)據(jù)目錄/data/mysql,創(chuàng)建新的數(shù)據(jù)庫(kù)目錄,用來模擬數(shù)據(jù)庫(kù)損壞。

[root@drbd-01 data]#rm –rf /data/mysql

[root@drbd-01 data]# cd /data/

[root@drbd-01 data]# mkdir mysql

[root@drbd-01 data]# chown mysql.mysql mysql

完全恢復(fù);

執(zhí)行恢復(fù)操作

[root@drbd-01 ~]# innobackupex --defaults-file=/etc/my.cnf --copy-back /data/backup/full/2015-07-28_12-10-45/

修改權(quán)限及屬主:

chown -R  mysql:mysql  /data/mysql


增量恢復(fù):

1.1先Prepare完整備份集(應(yīng)用日志)

 [root@mysqlslave mysql]#innobackupex --defaults-file=/etc/my.cnf --apply-log --redo-only /data/backup/yi/2016-04-20_18-12-50 --use-memory=500m --user=root --password=123456

2.2 Prepare增量備份集

2.2.1 合并第一個(gè)增量備份到完全備份里面

星期二增量備份追加到星期一的備份(0級(jí)備份)
[root@mysqlslave mysql]# innobackupex --defaults-file=/etc/my.cnf --apply-log --redo-only /data/backup/yi/2016-04-20_19-50-34/ --incremental-dir=/data/backup/er/2016-04-20_19-53-41/ --user=root --password=123456
星期三增量備份追加到星期一的備份(0級(jí)備份
[root@mysqlslave mysql]# innobackupex --defaults-file=/etc/my.cnf --apply-log --redo-only /data/backup/yi/2016-04-20_19-50-34/ --incremental-dir=/data/backup/san/2016-04-20_19-53-55/ --user=root --password=123456

將整個(gè)備份追加到星期一,再將星期一的備份prepare 一下
[root@mysqlslave mysql]# innobackupex --apply-log /data/backup/yi/2016-04-20_19-50-34/ --use-memory=500m --user=root --password=123456

恢復(fù)操作:
最終恢復(fù)的操作和完成恢復(fù)一樣

[root@mysqlslave mysql]# innobackupex --defaults-file=/etc/my.cnf --copy-back /data/backup/yi/2016-04-20_19-50-34

修改權(quán)限:
chown mysql:mysql -R *

驗(yàn)證數(shù)據(jù)是否恢復(fù)



向AI問一下細(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