mysqldump备份方式是采用逻辑备份,但是它最大的缺陷就是备份和恢复速度慢对于一个小于50G的数据库而言,这个速度还是能接受的,但如果数据库非常大,那再使用mysqldump备份就不太适合了。

xtrabackup是一种物理备份工具,通过协议连接到mysql服务端,然后读取并复制innodb底层的"数据块",完成所谓的"物理备份"。

支持对innodb进行热备、增量备份、差量备份

Xtrabackup是由percona提供的mysql数据库备份工具,特点:

(1)备份过程快速、可靠;

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

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

(4)自动实现备份检验;

(5)还原速度快。

1、安装

官网:https://www.percona.com/doc/percona-xtrabackup/LATEST/installation/yum_repo.html

ubuntu:

dpkg -i percona-release_0.1-4.$(lsb_release -sc)_all.deb

apt-get update

apt-get install percona-xtrabackup-24

centos:

yum install percona-xtrabackup-24

2、备份

(1)完全备份

# innobackupex --user= --password= /path/to/backup

在备份的同时,备份数据会在备份目录下创建一个以当前日期时间为名字的目录存放备份文件

注:各文件说明

xtrabackup_checkpoints:备份类型(如完全或增量)、备份状态(如是否已经为prepared状态)和LSN(日志序列号)范围信息;

每个InnoDB页(通常为16k大小)都会包含一个日志序列号,即LSN。LSN是整个数据库系统的系统版本号,每个页面相关的LSN能够表明此页面最近是如何发生改变的。

xtrabackup_binlog_info:mysql服务器当前正在使用的二进制日志文件及至备份这一刻为止二进制日志事件的位置。

xtrabackup_binlog_pos_innodb:二进制日志文件及用于InnoDB或XtraDB表的二进制日志文件的当前position。

xtrabackup_binary:备份中用到的xtrabackup的可执行文件;

backup-my.cnf:备份命令用到的配置选项信息;

(2)准备(prepare)一个完全备份

# innobackupex --apply-log

一般情况下,在备份完成后,数据尚且不能用于恢复操作,因为备份的数据中可能会包含尚未提交的事务或已经提交但尚未同步至数据文件中的事务。因此,此时数据文件仍处理不一致状态。“准备”的主要作用正是通过回滚未提交的事务及同步已经提交的事务至数据文件也使得数据文件处于一致性状态。在准备(prepare)过程结束后,InnoDB表数据已经前滚到整个备份结束的点,而不是回滚到xtrabackup刚开始时的点。

(3)还原数据库

# innobackupex --defaults-file=/etc/my.cnf --copy-back /opt/mysqlbackup/full/2016-09-12_11-29-55/ ()

注意,在实现恢复时,需要关闭MySQL,并且删除/mydata/data下的所有东西

如果执行成功,其输出信息的最后几行通常如下:

innobackupex: Starting to copy InnoDB log files

innobackupex: in '/backup/2016-03-03_11-21-31'

innobackupex: back to original InnoDB log directory '/mydata/data'

innobackupex: Finished copying back files.

160303 11:38:02 innobackupex: completed OK!

确保如上信息的最后一行出现"innobackupex: completed ok!"

当数据恢复到数据目录后,还需要确保所有数据文件的所属均为正确的用户,如mysql;否则,在启动mysqld前还需要事先修改数据文件的所属

# chown -R mysql.mysql /mydata/data

(4)使用innobackupex进行增量备份

要实现第一次增量备份,可以使用下面的命令:

# innobackupex --incremental /backup --incremental-basedir=

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

需要注意的是,增量备份仅能应用于InnoDB或xtrDB表,对于MyISAM表而言,执行增量备份其实进行的是完全备份。

准备增量备份与准备完全备份有着一些不同,尤其要注意的是:

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

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

于是,操作就变成了:

# innobackupex --apply-log --redo-only BASEDIR

接着执行:

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

而后是第二个增量备份:

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

恢复时,直接使用第1次的完全备份即可

mysql备份工具xtr_xtrbackup备份mysql相关推荐

  1. Exchange系列—使用系统自带的备份工具来备份数据库

    打开ntbackup.exe备份工具 打开备份工具(高级模式) 备份数据库 选择计划作业栏 选择:添加作业 进入备份向导 下一步 指定备份的内容 选择:备份选定的文件.驱动器或网络数据 下一步 勾选上 ...

  2. mysql的常用的备份工具_39、mysql常用备份工具

    备份和恢复的作用 1.做灾难恢复 2.做审计 3.测试(备份数据做恢复测试) 备份类型: 根据备份时,数据库服务器是否在线 冷备:cold backup 服务器处于离线状态 温备:warm backu ...

  3. mysql远程备份工具_innobackupex实现MySQL远程备份

    一.了解innobackupex 1.mysqldump mysql逻辑备份工具,作用于服务器本地,不需要额外安装插件 可以单表备份,备份为sql文件形式.方便,在多个场景通用 可通过shell命令实 ...

  4. linux mysql异地备份工具,Linux中MySQL的异地自动备份

    Linux中MySQL的异地自动备份 文/李来祥 [摘要]@@ 随着校园网应用的日益丰富,Linux系统下MySQL数据库的应用也越来越广泛.然而数据的意外丢失对于校园网应用来说是很大的损失,业务数据 ...

  5. mysql数据库备份工具expdb_expdp 备份数据库

    操作系统层面创建目录 [root@Oracle10g ~]# mkdir -p /home/oracle/db_back/ 2. 修改目录的所属用户.所属组 [root@Oracle10g ~]#ch ...

  6. android 软件备份工具,android备份软件 知乎 备份软件 知乎

    安卓备份通讯录软件,换了手机,把原来的备份通讯录的软件忘了. ... 三星手机如需备份手机中的数据,建议:1.手机使用数据线连接电脑后,下滑通知栏-选择已连接为媒体设备(MTP),会显示手机设备磁盘图 ...

  7. 服务器文件的备份工具,文件服务器备份工具

    文件服务器备份工具 内容精选 换一换 建议不要在分析任务执行过程中卸载,否则可能出现异常.没有正在运行中的任务.配置参数后单击"检测连接".若工具提示连接检测失败,可根据提示修改参 ...

  8. php mysql 性能测试工具_高性能MySQL–MySQL基准测试

    基准测试(benchmark)是针对系统设计的一种压力测试.基准测试有两种主要的策略:一种是针对整个系统的整体测试,另外是单独测试MySQL.这两种策略也被称为集成式(full-stack)以及单组件 ...

  9. mysql数据库管理工具(navicat for mysql) 10.1.7 绿色中文版

    最新版navicat for mysql,自带注册码.已经绿化,解压到任意目录就可运行. 下载地址:http://www.cr173.com/soft/38153.html Navicat Premi ...

最新文章

  1. 【计算理论】可判定性 ( 计算模型与语言 | 区分 可计算语言 与 可判定语言 | 证明 通用图灵机语言是 可计算语言 | 通用任务图灵机 与 特殊任务图灵机 )
  2. LCD显示实验----STM32f4--HAL
  3. 物流行业应用虚拟化解决方案
  4. 软考系统架构师笔记-案例分析重点(一)
  5. (转)51单片机C中关于.c文件和.h文件
  6. 简述python常用的函数模块_Python中常用的Python time模块常用函数
  7. PageRank三个博客mark
  8. C编程语言中16位整型数据的取值范围介绍
  9. 26.Yii2 启动过程
  10. 2020年华工计算机应用基础随堂作业,《计算机应用基础》随堂练习-2020年华工网络教育.docx...
  11. TableView数据源方法的执行顺序
  12. 26种土的掉渣的东西,看你有多少
  13. eclipse二进制编辑器插件
  14. 微信小程序服务器端语言,微信小程序后端用什么语言好
  15. python中的复数操作(实部、虚部、求模、求共轭)
  16. BTA前瞻 | CyberMiles创始人卢亮:愿拿百万年薪求区块链人才
  17. 基于Tofino2的64X100GE高性能可编程交换机MX7636-64X
  18. 【Android】iOS开发中xconfig和script脚本的使用
  19. 【进阶】数位DP详解
  20. jQuery实现表格导出Excel功能

热门文章

  1. Mysql5.7安装3306端口报错问题解决方法
  2. Python黑帽编程-ARP之一
  3. POSIX 线程具体解释(3-相互排斥量:固定加锁层次/“试加锁-回退”)
  4. word自带公式编辑_关于Word内置公式编辑器不能使用的解决方法,请收藏
  5. KKT condition --- Karush–Kuhn–Tucker conditions
  6. 面试:消除紧张情绪的策略
  7. 与技术无关-电视剧《小别离》经典台词
  8. 区块链报错 5 | Contract has not been deployed to detect network (network/artifact mismatch)
  9. c语言变量 集体备课,集体备课——分享智慧 共同成长
  10. 自强学堂 java_Java File类 - Java 教程 - 自强学堂