mysql innobackupex 物理备份

发布时间:2020-08-11 19:29:09 作者:abin1703
来源:ITPUB博客 阅读:174
一、innobackupex 安装

本次环境为centos6,在http://www.percona.com/downloads/xtrabackup/下载安装包

本次实验下载安装为
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

发现缺依赖包。。。。
解决:
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、创建全备份集


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
参数解释:
--defaults-file 启动mysql的参数文件
--host       主机名称可以备份远端服务器
--port     mysql的端口号
--user      备份用户名
--password   备份用户密码
--socket    启动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 增量备份

增量备份首先也需要一个全量的备份。

例子:

例如:

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

全备    备份星期一    备份星期二
     与星期二差异   与星期三差异

备份子目录需要手工创建。

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

全备(星期一):星期一需要做一个0级备份,也就是全备份
  innobackupex --defaults-file=/etc/my.cnf --host 10.20.20.13 --user=root --password=123456 /data/backup/mon
增量备份(星期二):星期二做一个与0级备份之间相差的增量备份
  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个备份集关系。

二 恢复

删除原来的mysql数据目录/data/mysql,创建新的数据库目录,用来模拟数据库损坏。

[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

完全恢复;

执行恢复操作

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

修改权限及属主:

chown -R  mysql:mysql  /data/mysql


增量恢复:

1.1先Prepare完整备份集(应用日志)

 [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 合并第一个增量备份到完全备份里面

星期二增量备份追加到星期一的备份(0级备份)
[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级备份
[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

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

恢复操作:
最终恢复的操作和完成恢复一样

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

修改权限:
chown mysql:mysql -R *

验证数据是否恢复



推荐阅读:
  1. 测试MySQL逻辑物理备份教程
  2. 应该怎么样备份与恢复mysql数据库

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

innobackupex mysql 备份

上一篇:Python爬虫:爬取小说并存储到数据库

下一篇:【问题处理】偶遇ORA- 01075: you are currently logged on错误

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》