Xtrabackup热备份mysql工具使用

回复 收藏
本帖最后由 出VU时代 于 2016-9-10 21:11 编辑
  1. <p>下载地址:
  2.     https://pan.baidu.com/s/1qYvRDFY
  3.     热备份工具,备份不锁表。
  4.     备份时只备份表中记录,不备份表结构
  5.     增量备份时,需要先完全备份,在增量备份
  6.     yum install -y percona-xtrabackup-2.1.6-702.rhel6.x86_64.rpm
  7.     [root@localhost opt]# rpm -ql percona-xtrabackup
  8.     /usr/bin/innobackupex             #支持myisam引擎锁表备份
  9.     /usr/bin/innobackupex-1.5.1       #支持myisam引擎锁表备份
  10.     /usr/bin/xbcrypt
  11.     /usr/bin/xbstream
  12.     /usr/bin/xtrabackup               #5.1版本用这个
  13.     /usr/bin/xtrabackup_55            #给5.5版本用的备份脚本
  14.     /usr/bin/xtrabackup_56            #给5.6版本及以上的版本用的
  15.     /usr/share/doc/percona-xtrabackup-2.1.6
  16.     /usr/share/doc/percona-xtrabackup-2.1.6/COPYING
  17.     /usr/bin/xtrabackup_56  的用法
  18.     --backup  备份数据
  19.     --target-dir=目录名  备份文件存储的位置(就是你把备份的数据存放哪里)
  20.     --datadir=/usr/local/mysql/ 数据库目录
  21.     --prepare  准备恢复数据
  22.     --incremental-basedir=目录名  增量备份时,指定参考的完整备份路径(增量备份的时候用的参数)
  23.     --incrementar-dir=目录名  准备恢复目录时,指定增量备份的据经(把增量备份的数据还原的时候用的参数)
  24.     例题:
  25.     备份数据(在使用增量备份前,首先要来一次完整备份)
  26.     第一次完整备份(备份到/mydata下)
  27.     [root@localhostopt]#xtrabackup_56 --backup  \
  28.     --target-dir=/mydata/ \
  29.     --datadir=/usr/local/mysql/data      
  30.     第一次增量备份(把增量备份的数据备份到/new1)
  31.     [root@localhostopt]# xtrabackup_56 --backup \
  32.     --target-dir=/new1/ \
  33.     --datadir=/usr/local/mysql/data  \
  34.     --incremental-basedir=/mydata/  
  35.     第二次增量备份把增量备份的数据备份到/new2)
  36.     [root@localhost opt]# xtrabackup_56 --backup  
  37.     --target-dir=/new2/
  38.     --datadir=/usr/local/mysql/data --incremental
  39.     --basedir/new1/
  40.       
  41.     数据恢复(我这里的库表操作是db5.liuwenzhi。希望下面出现了db5看得懂)
  42.     先恢复第一次完整备份的数据
  43.     模拟数据丢失
  44.     先备份一下:
  45.     [root@localhost opt]#xtrabackup_56 --prepare --datadir=/usr/local/mysql/data/
  46.     --target-dir=/alldir/</p><p>    mysql&gt; use db5;
  47.     mysql&gt; delete from liuwenzhi;
  48.     拷贝ibd文件到/usr/local/mysql/data/db5/覆盖
  49.     [root@localhost opt]# cp /alldir/db5/liuwenzhi.ibd
  50.     /usr/local/mysql/data/db5</p><p>  
  51.     重启服务
  52.     [root@localhost opt]# /etc/init.d/mysqld restart
  53.     查看恢复内容(恢复到第一次完整备份的那里)
  54.     查看lsn的位置量
  55.     [root@localhost opt]# cat /alldir/xtrabackup_checkpoints
  56.     backup_type = full-prepared
  57.     from_lsn = 0
  58.     to_lsn = 1997713
  59.     last_lsn = 1997713
  60.     compact = 0
  61.     mysql&gt; select * from liuwenzhi;
  62.     再恢复第二次增量备份的数据
  63.     [root@localhost opt]# xtrabackup_56 --prepare --datadir=/usr/local/mysql/data/
  64.     --target-dir=/alldir/ --incremental-dir=/new1/
  65.     在拷贝ibd文件到/usr/local/mysql/data/db5/覆盖
  66.     [root@localhost opt]#  select * from liuwenzhi;
  67.     查看lsn的位置量已更改
  68.     [root@localhost opt]# cat /alldir/xtrabackup_checkpoints
  69.     backup_type = full-prepared
  70.     from_lsn = 0
  71.     to_lsn = 2000761
  72.     last_lsn = 200076
  73.     compact = 0
  74.     第二次恢复同第一次操作一样
  75.     每次增量还原后查看cat /alldir/xtrabackup_checkpoints的lsn位置变量是不是变了
  76.     最后注意的地方就是:
  77.     在还原的时候是要按你每次备份的顺序还原。
  78.     如:增量备份1,2,3次。
  79.     还原的时候还原第三次的时候,一定是要第二次也要还原的。
  80.     这个备份就是靠lsn位的。lsn位有点像mysql的binlog日志所记录的信息差不多,它也有一个标记的位置。
  81.     也可以使用binlog日志备份,时间,或者位置变量这两种方法吧。这个不太清除。</p>

2016-08-31 18:11 举报
已邀请:

回复帖子,请先登录注册

退出全屏模式 全屏模式 回复
评分
可选评分理由: