Innobackupex MySQL 全备、增备及恢复

一、安装xtrabackup
shell> wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.8/binary/redhat/7/x86_64/percona-xtrabackup-24-2.4.8-1.el6.x86_64.rpm
rpm -ivh percona-xtrabackup-24-2.4.8-1.el6.x86_64.rpm
注:如果需要依赖软件,请自行安装
yum install cmake gcc gcc-c++ libaio libaio-devel automake autoconf bzr bison libtool ncurses-devel zlib-devel

二、innobackupex 全备
参数:
--incremental-basedir=/db/db_backup/ 第一次增备指定全备路径,第二次增备指定第一次增备的路径
--incremental 参数说明这是一次增备,并指定增备路径
--no-lock 不允许使用flush tables with read lock表锁。如果你的所有表是INNODB并且你不关心二进制日志备份的位置。如果有任何DDL语句被执行或任何非INNODB表上的update操作,这个选项就不能使用
--no-timestamp 如果不加的话会在备份目录下生成一个备份时间的目录,备份数据存在该目录下
--use-memory=4G 该参数只能和参数--apply-log配合使用,被用于xtrabackup做creash恢复时准备锁使用的内存量
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
全备:
shell> innobackupex --user=user --password=passwd --defaults-file=/etc/my.cnf --no-lock /db/db_backup/full_backup/3306

#如果你需要做成自动脚本,请在脚本里加上判断备份的文件大小,如果有问题你还可以通过发给你的邮件来知道是否备份有问题

三、全备恢复
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
shell > /etc/init.d/mysql.server stop # 首先关闭数据库

shell > cd /db/backup_db # 切换到备份目录

shell > mv /usr/local/mysql/data data.old # 将原来的数据目录备份一下

shell > innobackupex --apply-log alldatabase # 在备份上应用日志,一般没有看到报错且最后显示 OK 就没有问题 ( --use-memory 使用该参数加快速度 )
12:07:33 completed OK!

shell > innobackupex --copy-back alldatabase # 将备份还原到 my.cnf 指定的 datadir 中,不指定 --defaults-file,默认 /etc/my.cnf

Error: datadir must be specified. # 报错信息显示,在默认配置文件 /etc/my.cnf 中,没有找到 datadir 配置项

shell > vim /etc/my.cnf # 加入 datadir 配置项
datadir = /usr/local/mysql/data

shell > innobackupex --copy-back alldatabase # 再次执行 copy 动作,没有报错且显示 OK
10:17:52 completed OK!

shell > ll -d /usr/local/mysql/data
drwxr-x--- 6 root root 4096 07月 10 18:17 /usr/local/mysql/data

shell > chown -R mysql.mysql /usr/local/mysql/data # 修改数据目录权限

shell > /etc/init.d/mysql.server start
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
注意:
1.innobackupex进行备份是将数据库所有的库都进行了备份,如果需要单独还原某个备份库,请恢复到别的数据库上,单独备份出来
2.如果数据库没有多大,建议使用mysqldump进行备份

四、innobackupex增量备份
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
第一次增备:
shell> innobackupex --defaults-file=/etc/my.cnf --no-timestamp --incremental /db/backup/increment_backup/3306/incre01/ --no-lock --incremental-basedir=/db/db_backup/full_backup/3306/2018-07-13_09-15-01

第二次增量备份:
innobackupex --user=user --password=password --no-timestamp --no-lock --incremental-basedir=/db/backup/increment_backup/3306/incre01/ --incremental /db/backup/increment_backup/3306/incre02

#第二次增备是在第一次增备的基础上,所以 --incremental-basedir 指定的是第一次增备目录,最后指定的第二次增备目录

备份目录下的文件可以看出是增备还是全备
shell>cat xtrabackup_checkpoints
backup_type = incremental #这个提示这是一次增量备份
from_lsn = 23780427057
to_lsn = 23782487265
last_lsn = 23782487265
compact = 0
recover_binlog_info = 0
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
注意:
1.做几次增量备份是针对数据库每次数量量比较大的数据库,如果每次增长量不大,建议直接从全备上直接进行增量备份(注意做好目录区别)
2.如果写脚本做自动备份,请做好判断,另外需要增加对磁盘空间的判断,如果磁盘空间不足,请删除N天前的备份

五、增量备份恢复
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
shell > /etc/init.d/mysql.server stop # 关闭数据库

shell > cd /data/backup_db

shell > mv /usr/local/mysql/data data.old02 # 备份原有数据库

shell > innobackupex --apply-log --redo-only /db/db_backup/full_backup/3306/2018-07-13_09-15-01 # 指定全备目录,--redo-only 对已提交的事务进行前滚,仅最后一次增备恢复不需要添加该参数

shell > innobackupex --apply-log --redo-only /db/db_backup/full_backup/3306/2018-07-13_09-15-01 --incremental-dir=/db/backup/increment_backup/3306/incre01/ # --incremental-dir 指定第一次增备目录 ( 绝对路径 )

shell > innobackupex --apply-log /db/db_backup/full_backup/3306/2018-07-13_09-15-01 --incremental-dir=/db/backup/increment_backup/3306/incre02/ # 指定第二次增备目录,最后一次增备还原不需要添加 --redo-only 参数

shell > innobackupex --copy-back /db/db_backup/full_backup/3306/2018-07-13_09-15-01 # 最后一步,复制整合后的全备文件,位置为 my.cnf 中 datadir 指定路径

shell > chown -R mysql.mysql /usr/local/mysql/data

shell > /etc/init.d/mysql.server start # 启动数据库,查看数据是否恢复
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
完成之后,请查看下数据是否恢复

+++++++++++++++++++++
本文转自:
https://www.cnblogs.com/wangxiaoqiangs/p/5961413.html
http://www.dataguru.cn/thread-450844-1-1.html

转载于:https://blog.51cto.com/yangxiongchun/2141381

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值