用innobackupex做全量备份

1, 在本地备份数据
innobackupex --defaults-file=/data/config/my3306.cnf --user=root --password=123 --socket=/data/socket/mysql3306.sock /data2/backup/hotbackup/full --no-timestamp

2, 恢复全量备份
#innobackupex --apply-log --use-memory=5G /data2/backupex/hotbackupex/full
恢复备份到MySQL的数据文件目录,这一过程要先关闭MySQL数据库,重命名原数据文件目录,再创建一个新的数据文件目录,将备份数据复制到新的数据文件目录下,赋权,启动MySQL数据库:
#mysqladmin -S /data/socket/mysql3306.sock shutdown
#mv /data/mysql3306/data /data/mysql3306/data_bak
#mkdir /data/mysql3306/data
#innobackupex --defaults-file=/data/config/my3306.cnf --copy-back --rsync /data2/backup/hotbackup/full/
#chown -R mysql.mysql /data/mysql3306/data
#/usr/local/mysql/bin/mysqld_safe --defaults-file=/data/config/my3306.cnf --user=mysql &
检验恢复后的数据库的一致性,查看相应的数据库

3, 增量备份

在mysql中进行增量备份时,首先要进行一次全备,第一次增量备份是基于全备的,在之后的增量备份是基于上一次的增量备份。
创建增量备份incremental_one:【对某个库的表进行数据修改,如插入】
#innobackupex --defaults-file=/data/config/my3306.cnf --user=backup --password=123 --socket=/data/socket/mysql3306.sock --incremental /data2/backup/hotbackup/incremental_one --incremental-basedir=/data2/backup/hotbackup/full --no-timestamp --parallel=2
创建增量备份incremental_two: 【对某个库的表进行数据修改,如插入】
#innobackupex --defaults-file=/data/config/my3306.cnf --user=backup --password=123 --socket=/data/socket/mysql3306.sock --incremental /data2/backup/hotbackup/incremental_two --incremental-basedir=/data2/backup/hotbackup/incremental_one --no-timestamp --parallel=2

  1. 增量备份恢复。
    增量备份的恢复大体分为3个步骤。
    1),恢复基础备份 (全备)
    2),恢复增量备份到基础备份(开始恢复的增量备份要添加 --redo-only 参数,到最后一次增量备份去掉—redo-only 参数)
    3),对整体的基础备份进行恢复,回滚那些未提交的数据

恢复基础备份(注意这里一定要加 --redo-only 参数,该参数的意思是只应用 Xtrabackup日志中已经提交的事务数据,不回滚还未提交的数据):
#innobackupex --apply-log --redo-only --use-memory=5G /data2/backup/hotbackup/full

将增量备份incremental_one 应用到基础备份full:

#innobackupex --apply-log --redo-only --use-memory=5G /data2/backup/hotbackup/full --incremental-dir=/data2/backup/hotbackup/incremental_one/

将增量备份 incremental_two 应用到基础备份base (注意最后一个增量备份时需要去掉 –-redo-only 参数,回滚Xtrabackup日志中那些还未提交的数据)
#innobackupex --apply-log --use-memory=5G /data2/backup/hotbackup/full --incremental-dir=/data2/backup/hotbackup/incremental_two/

把所有合在一起的基础备份整体进行一次apply操作,回滚未提交的数据:
#innobackupex –apply-log --use-memory=5G /data2/backup/hotbackup/full

把恢复完的备份复制到数据文件目录中,赋权,然后启动MySQL数据库:
#mysqladmin -S /data/socket/mysql3306.sock shutdown
#mv /data/mysql3306/data /data/mysql3306/data_bak
#mkdir /data/mysql3306/data
#innobackupex --defaults-file=/data/config/my3306.cnf --copy-back --rsync /data2/backup/hotbackup/full/
#chown -R mysql.mysql /data/mysql3306/data
#/usr/local/mysql/bin/mysqld_safe --defaults-file=/data/config/my3306.cnf --user=mysql &
检验恢复后的数据一致性。
以上是完全恢复。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值