发表于 2018-10-9 11:48:48

MySQL XtraBackup 备份

  备注:先安装XtraBackup
  下载地址:https://www.percona.com/downloads/XtraBackup/LATEST/
  此处我的版本是:percona-xtrabackup-24-2.4.6-2.el7.x86_64.rpm
  本地安装: yum localinstall percona-xtrabackup-24-2.4.6-2.el7.x86_64.rpm
  查看

  OK,安装完成
  一.XtraBackup全备及恢复
  1.创建一个备份用户,并授权

  create user 'bkuser'@'localhost'>
  grant>  flush privileges;
  2.开始备份
  innobackupex --user=bkuser--password=123456 /data/backup/

  备份的时候除了错误,原因是没有找到socket文件。


  备份完成,成功!
  备份的文件:
  3.备份恢复
  假定我们把之前的data文件删掉,直接还原(先停掉MySQL服务)
  先innobackupex --apply-log /data/backup/2017-04-18_20-35-51/
  再innobackupex --copy-back /data/backup/2017-04-18_20-35-51/

  还原成功。重启MySQL
  二。增量备份与恢复
  1.进行全量备份,但是先不用apply-log


  2,在全量备份的基础上进行增量备份
  先添加一条记录

  开始第一份增量备份 innobackupex --user=bkuser --password=123456 --socket=/tmp/mysql.sock --incremental/data/backup/db-incre-20170418-1 --incremental-basedir=/data/backup/20170418full

  备份成功
  再次插入一条数据,进行第二次增量备份

  innobackupex --user=bkuser --password=123456 --socket=/tmp/mysql.sock --no-timestamp --incremental/data/backup/db-incre-20170418-2 --incremental-basedir=/data/backup/db-incre-20170418-1

  第二个增量备份完毕
  3.恢复备份数据
  1)第一次先做全量恢复+第一次的增量恢复(先将全备和第一次增量备份 备份下)
  innobackupex --apply-log --redo-only /data/backup/20170418full
  innobackupex --apply-log --redo-only /data/backup/20170418full--incremental-dir=/data/backup/db-incre-20170418-1
  innobackupex --apply-log/data/backup/20170418full
  理论上恢复出来的数据是8条
  innobackupex --copy-back/data/backup/20170418full
  同理,先停掉MySQL并删掉之前的data,创建data文件夹并授权

  2)恢复全备和两次增量备份
  innobackupex --apply-log --redo-only /data/backup/20170418full
  innobackupex --apply-log --redo-only /data/backup/20170418full--incremental-dir=/data/backup/db-incre-20170418-1
  innobackupex --apply-log --redo-only /data/backup/20170418full--incremental-dir=/data/backup/db-incre-20170418-2
  innobackupex --apply-log/data/backup/20170418full
  关掉MySQL,删掉data
  恢复数据 innobackupex --copy-back/data/backup/20170418full
  重启MySQL看,查看数据

  增量备份恢复完成!

页: [1]
查看完整版本: MySQL XtraBackup 备份