码迷,mamicode.com
首页 > 其他好文 > 详细

xtrabackup的简单用法及其原理

时间:2017-09-13 12:01:32      阅读:140      评论:0      收藏:0      [点我收藏+]

标签:目录   gzip   目标   原理   lib   word   注意   赋权   操作   

xtrabackup
全备:
  innobackupex --defaults-file=$mysql_config --user=$user --password=$password --all-databases --no-lock --no-timestamp --stream=tar $backup_dir 2>$backup_dir/$log|gzip 1>$backup_dir/$str
恢复全备:
  innobackupex --apply-log --user-memory /backup/full
恢复备份到MySQL的数据文件目录,要先关闭MySQL数据库,恢复、赋权、启动


增量:(指定在谁的基础上进行增量)
  全备:innobackupex --defaults-file=/etc/my.cnf --user=root --password=root --no-timestamp /xtrabackpex/full
  第一次增量:进行第一次增量备份,需要在有一次完整备份的基础上进行
    --incremental /root/one 指定增量备份存放的目标目录
    --incremental-basedir=/tmp 指定完整备份的目录
      innobackupex --defaults-file=/etc/my.cnf --user=root --password=root --no-timestamp --incremental /xtrabackpex/full/incr_1 --incremental-basedir=/xtrabackpex/full
    第二次增量:进行第二次增量备份,需要指定上一次增量备份的目录
    --incremental /root/two 指定这次增量备份目录
    --incremental-basedir=/root/one 知道上次增量备份目录
      innobackupex --defaults-file=/etc/my.cnf --user=root --password=root --no-timestamp --incremental /xtrabackpex/full/incr_2 --incremental-basedir=/xtrabackpex/full/incr_1
增量备份恢复:
  还原一个增量备份,创建好的完整备份不能直接用来还原数据库,需要对数据做一些准备工作,其中包括一些已经提交的事务的重放,未提交事务的回滚。
    --apply-log 准备还原备份的选项
    --use-memory=4G 设置准备还原数据时使用的内存,可以提高准备所花费的时间

增量备份的恢复大体分为3个步骤:
  恢复基础备份(全备)
  恢复增量备份到基础备份(开始恢复的增量备份要添加--read-only参数,到最后一个增量备份去掉--read-only参数):
  对整体的基础备份进行恢复,回滚哪些未提交的数据
    恢复基础备份:(注意这里一定要加上--read-only参数,只应用xtrabackupx日志中已经提交的事务日志,不回滚还未提交的数据):

    innobackupx --apply-log --read-only --use-memory=4G /xtrabackpex/full

    将增量备份incr_1应用到基础备份
    innobackupx --apply-log --read-only --use-memory=4G /xtrabackpex/full --incremental-dir=/xtrabackpex/full/incr_1
    将增量备份incr_2应用到基础备份(恢复最后一个增量备份时需要去掉--read-only参数,回滚xtrabackup中那些还未提交的数据)
    innobackupex --apply-log --use-memory=4G /xtrabackpex/full/ --incremental-dir=/xtrabackpex/full/incr_2
    把所有合并一起的基础备份整体进行一次apply操作,回滚未提交的数据:
    innobackupex --apply-log --use-memory=4G /xtrabackpex/full
    把恢复玩的备份复制到数据文件目录中,赋权,然后启动MySQL数据库:
    service MySQL stop
    mkdir /mysql/3306/data_bak/
    mv /mysql/3306/data/* /mysql/3306/data_bak/
    mv /mysql/3306/logs/redo/* /mysql/3306/logs/redo_bak
    mv /mysql/3306/logs/undo/* /mysql/3306/logs/undo_bak
    innobackupex --defaults-file=/etc/my.cnf --copy-back /xtrabackpex/full
    chown -R mysql:mysql /mysql/3306
    service mysql start

还原数据,需要指定配置文件,默认会还原到/var/lib/mysql,并且保证,my.cnf中设置的数据目录下没有任何文件

xtrabackup的简单用法及其原理

标签:目录   gzip   目标   原理   lib   word   注意   赋权   操作   

原文地址:http://www.cnblogs.com/DBA-3306/p/7513962.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!