1、简介

XtraBackup是Percona提供的一个开源的、免费的MySQL数据库备份工具,它能够对InnoDB和XtraDB数据库进行热备份,据官方介绍,XtraBackup具有以下特点:

1. 备份过程快速、可靠;

2. 备份过程不会打断正在执行的事务;

3. 能够基于压缩等功能节约磁盘空间和流量;

4. 自动实现备份检验;

5. 恢复速度快。

2、安装XtraBackup

最新版本可以从https://www.percona.com/software/percona-xtrabackup获得。

# yum install https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.2.10/binary/redhat/6/x86_64/percona-xtrabackup-2.2.10-1.el6.x86_64.rpm

3、创建所需用户

# 创建具有所需完整备份最低权限的数据库用户示例:

mysql> CREATE USER 'bkpuser'@'localhost' IDENTIFIED BY 's3cret';

mysql> GRANT RELOAD, LOCK TABLES, REPLICATION CLIENT ON *.* TO 'bkpuser'@'localhost';

mysql> FLUSH PRIVILEGES;

4、完全备份

# innobackupex --user=DBUSER --password=DBUSERPASS /path/to/BACKUP-DIR/

# 检查输出最后一行的确认消息

innobackupex: Backup created in directory ’/path/to/BACKUP-DIR/2013-03-25_00-00-09’

innobackupex: MySQL binlog position: filename ’mysql-bin.000003’, position 1946

111225 00:00:53 innobackupex: completed OK!

5、准备(Prepar)一个完全备份

# innobackupex --apply-log /path/to/BACKUP-DIR

111225 1:01:57 InnoDB: Shutdown completed; log sequence number 1609228

111225 01:01:57 innobackupex: completed OK!

# 注意:在实现"准备"的过程中,innobackupex通常还可以使用--use-memory选项来指定其可以使用的内存的大小,默认为100M。如果有足够的内存可用,可以多划分一些内存给prepare的过程,以提高完成速度。

6、从一个完全备份中恢复

# innobackupex命令的--copy-back选项用于执行恢复操作,通过复制所有数据相关的文件到mysql服务器的DATADIR目录中来执行恢复过程。

# innobackupex --copy-back /path/to/BACKUP-DIR

# 如果执行正确,会出现类似几行

innobackupex: Finished copying back files.

111225 01:08:13 innobackupex: completed OK!

# 注意:删除数据目录之前,先停止mysqld服务,然后直接用命令恢复启动即可,不需要重新初始化数据库。当数据恢复到DATADIR目录后,还需要确保所有数据文件的属主和属组均为正确的用户,否则,在启动mysqld之前还需要事先修改数据文件的属主和属组。

# chown -R mysql:mysql /data/mysql

7、增量备份

# 每个InnoDB的页面都会包含一个LSN信息,每当相关的数据发生改变,相关的页面的LSN就会自动增长。这也是InnoDB表可以进行增量备份的基础,即innobackupex通过备份上次完全备份之后发生改变的页面来实现。

创建一个增量备份(需要做一个完全备份为基础):

# innobackupex --user=DBUSER --password=DBUSERPASS --incremental /data/backups --incremental-basedir=BASEDIR

# 其中,BASEDIR指的是完全备份所在的目录,此命令执行结束后,innobackupex命令会在/backup目录中创建一个新的以时间命名的目录以存放所有的增量备份数据。另外,在执行过增量备份之后再一次进行增量备份时,其--incremental-basedir应该指向上一次的增量备份所在的目录。

# 注意:增量备份仅能应用于InnoDB或XtraDB表,对于MyISAM表,执行增量备份其实进行的是完全备份。

8、准备增量备份

# "准备"增量备份与完全备份有点不同,需要注意的是:

1. 需要在每个备份(包括完全和各个增量备份)上,将已经提交的事务进行"重放"。"重放"之后,所有的备份数据合并到完全备份上;

2. 基于所有的备份将未提交的事务进行"回滚"。

操作步骤:

# innobackupex --apply-log --redo-only BASE-DIR

120103 22:00:12 InnoDB: Shutdown completed; log sequence number 1291135

120103 22:00:12 innobackupex: completed OK!

# innobackupex --apply-log --redo-only BASE-DIR --incremental-dir=INCREMENTAL-DIR-1

120103 22:08:43 InnoDB: Shutdown completed; log sequence number 1358967

120103 22:08:43 innobackupex: completed OK!

# innobackupex --apply-log --redo-only BASE-DIR --incremental-dir=INCREMENTAL-DIR-2

completed OK!

# 其中BASE-DIR指的是完全备份所在的目录,而INCREMENTAL-DIR-1指的是第一次增量备份的目录,INCREMENTAL-DIR-2指的是第二次增量备份的目录,其它依次类推,如果有多次增量备份,每一次都要执行如上操作。

转载于:https://blog.51cto.com/yuyucat/1655474

MySQL备份恢复工具xtrabackup相关推荐

  1. Mysql备份工具xtrabackup 8 安装图解

    Mysql备份工具xtrabackup安装图解 声明 本文的数据来自网络,部分代码也有所参照,这里做了注释和延伸,旨在技术交流,如有冒犯之处请联系博主及时处理. 注: 当前操作系统CentOS 8.M ...

  2. MySQL备份Percona Xtrabackup安装和卸载

    MySQL备份Percona Xtrabackup安装和卸载 Percona XtraBackup 安装介绍篇 XtraBackup介绍 XtraBackup是Percona公司的开源项目,用以实现类 ...

  3. 青蛙学Linux—MySQL备份工具XtraBackup

    XtraBackup是Percona公司开发的一款免费开源的MySQL备份工具.与上一篇介绍的mysqldump不同,XtraBackup可以对MySQL进行物理备份(备份的是MySQL的文件而不是生 ...

  4. mysql备份工具Xtrabackup增量备份还原图解

    Xtrabackup增量备份还原图解 声明 本文的数据来自网络,部分代码也有所参照,这里做了注释和延伸,旨在技术交流,如有冒犯之处请联系博主及时处理. XtraBackup是Percona 提供的免费 ...

  5. mysql 备份工具xtrabackup全备与还原图解

    目录 xtrabackup备份还原图解 声明 准备 验证思路 用户赋权 备份前状态 全备 还原 还原前 还原中 还原后 问题数据目录不为空 xtrabackup备份还原图解 声明 本文的数据来自网络, ...

  6. MySQL备份恢复之XtraBackup

    一. 简介 我们知道,针对InnoDB存储引擎,MySQL本身没有提供合适的热备工具,ibbackup虽是一款高效的首选热备方式,但它是是收费的.好在Percona公司给大家提供了一个开源.免费的Xt ...

  7. Mysql 备份工具XtraBackup增量备份

    安装:[url]http://donald-draper.iteye.com/admin/blogs/2314832[/url] 全量备份:[url]http://donald-draper.itey ...

  8. Mysql 备份工具XtraBackup全量备份

    Percona安装:[url]http://donald-draper.iteye.com/admin/blogs/2314832[/url] 命令介绍: The database user used ...

  9. mysql备份数据库怎么还原数据库文件_mysql如何备份和还原数据库文件

    MySQL使用命令备份和还原数据库 这篇文章主要介绍了MySQL使用命令备份和还原数据库,本文使用Mysql内置命令实现备份和还原,比较简单,需要的朋友可以参考下 数据库在使用当中都会有数据库备份工作 ...

最新文章

  1. 如何用C语言改变宏定义的大小,C语言中宏定义使用的小细节
  2. 说好的敬畏每一行代码呢?Antd代码彩蛋炸翻一圈人
  3. 一文看懂物联网完整产业链条
  4. html图片宽度高度等比例绽放,css图片自动绽放大小,左右,上下居中
  5. jmeter模拟压测真实复杂用户场景,阶梯螺纹线程组Stepping Thread Group终极线程Ultimate Thread Group并发线程Concurrency Thread Group
  6. mysql 锁设置密码_[转载]mysql锁小结
  7. web 前端必备学习指南-精华
  8. 中望cad自定义快捷键命令_中望CAD快捷键命令大全
  9. gitlab hook declined错误
  10. windows清理缓存性能加速
  11. SNK 推出NEOGEO mini 投币配件,还能当作存钱罐?
  12. ♥️Javascript之DOM♥️
  13. 10543: 孤岛症候群
  14. 微信趣味地区一键设置,安排
  15. android系统级别应用开发要点
  16. 51单片机+PCF8591的多波形发生器仿真程序(正弦波 三角波等可调)
  17. python 知识点视频,Python超详细入门教程-Python基础视频教程-千锋教育视频资源库...
  18. 2022医院三基考试加血提分每日一练及答案
  19. vue(移动端)使用高德地图实现精准定位
  20. centOS7.2.1511 bit64位 浏览器不能上网

热门文章

  1. 小技巧 —— linux中怎么简单的复制5000个数字
  2. ubuntu18.04(python3.6)安装pip3报错:ImportError: cannot import name 'sysconfig'
  3. 【转】每天读一遍,思考一下:我是否浮躁?
  4. matlab实战中一些重要的函数总结
  5. 解决Android中No resource found that matches android:TextAppearance.Material.Widget.Button.Inverse问题...
  6. QThread使用——关于run和movetoThread的区别
  7. .NET中的IO操作基础介绍
  8. C++编程思想重点笔记(下)
  9. WINCE--编译环境一二三(转摘)
  10. db4o Tutorial 中文翻译(十一)