今天在操作 innobackupex 的时候,执行 change master to 的时候发现  xtrabackup_binlog_pos_innodb   xtrabackup_binlog_info 两个文件对应的master 的 binary log 位置不一致: 

less xtrabackup_binlog_info  mysql-bin.002961 70176740

less xtrabackup_binlog_pos_innodb  mysql-bin.002961 38716155

后面我就找了下这两个参数究竟是有什么区别

1.官网上的定义:

xtrabackup_binlog_pos_innodb containing the position of the binary log at the moment of backing up relative to InnoDB transactions;

xtrabackup_binlog_info containing the position of the binary log at the moment of backing up;

2.别人的讲述:

这是另外一个人的博客讲述:http://julyclyde.org/?p=403

3.官网上的一种做法:

How to setup a slave for replication in 6 simple steps with Percona XtraBackup

4.个人理解:

1)官网上的demo 是 cat /var/lib/mysql/xtrabackup_binlog_info  TheMaster-bin.000001     481 ,并且是第一个二进制日志,所以很有可能  xtrabackup_binlog_pos_innodb   xtrabackup_binlog_info 记录的是相同的二进制位置。
2)我首先根据官网上的操作按照 xtrabackup_binlog_info 记录的 mysql-bin.002961 70176740 来执行 change master to *** master_log_file='mysql-bin.002961',master_log_pos=70176740 *** ,在执行 show slave status \G 的时候发现下面的错误:
Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: 'Client requested master to start replication from impossible position; the first event 'mysql-bin.002961' at 70176740, the last event read from '/home/mysql/node-2/mysql-bin.002961' at 4, the last byte read from '/home/mysql/node-2/mysql-bin.002961' at 4.'

3)本人 stop slave ,然后按照 xtrabackup_binlog_pos_innodb 记录的位置 38716155 执行了 下面的命令, start slave 以后,结果显示正常,
change master to *** master_log_file='mysql-bin.002961',master_log_pos=38716155***
我用的版本是Xtrabackup-1.6.7, 从这个里面可以看出,要保证有 InnoDB 的事务也能够正常的从 master 获取binary log ,应该是按照 xtrabackup_binlog_pos_innodb 记录的位置来的,而且通过 innobackupex 的 copy-back 命令执行以后, 数据目录(参数文件里面配置的 datadir 目录)下只有 xtrabackup_binlog_pos_innodb,并没有 xtrabackup_binlog_info  这个文件。

$ ls
ibdata1 mysql mysqld.log mysqld-relay-bin.index relay-log.info ***
ib_logfile0 mysql-bin.000001 mysqld.pid mysqld.sock test ****
ib_logfile1 mysql-bin.000002 mysqld-relay-bin.000006 mysql-slow.log *** xtrabackup_binlog_pos_innodb
master.info mysql-bin.index mysqld-relay-bin.000007 performance_schema *** xtrabackup_checkpoints

5.我平时的做法: 我总是执行到 copy-back 以后,然后 查看 datadir 目录下的
xtrabackup_binlog_pos_innodb binary log position 。然后执行 change master 命令 。今天偶尔的去看备份目录下有两个 xtrabackup_binlog_pos 相关的文件,结果还不一致,最终导致了上面的错误。

6.个人总结:
可能我用的是低版本的原因,在高版本上的解释如下
http://www.percona.com/doc/percona-xtrabackup/2.1/xtrabackup_bin/working_with_binary_logs.html http://www.percona.com/doc/percona-xtrabackup/1.6/xtrabackup_bin/working_with_binary_logs.html
 If your backup is from a server with binary logging enabled, xtrabackup will create a file named xtrabackup_binlog_info in the target directory. This file contains the binary log file name and position of the exact point in the binary log to which the prepared backup corresponds.

You will also see output similar to the following during the prepare stage:

.....
This output can also be found in the xtrabackup_binlog_pos_innodb file, but it is only correct when no other than XtraDB or InnoDB are used as storage engines. If other storage engines are used (i.e. MyISAM), you should use the xtrabackup_binlog_info file to retrieve the position.

这是 Xtrabackup 2.1 上面的解释 (1.6 上面的也是类似的), 这个意思和我理解的正好相反,他们建议采用的是  xtrabackup_binlog_info 上面记录的二进制日志位置,可是事实上我每次都采用的是  xtrabackup_binlog_pos_innodb (大部分情况下两个文件记录的位置是相同的),并且并没有出错过。

个人感觉采用 xtrabackup_binlog_pos_innodb  靠谱,不知道你们是采用哪个位置?如果有什么疑问,可以提出来大家一起探讨。

====更新 2015-5-6 13:17:54 ====

最近我用 percona-xtrabackup-2.0.3 备份的时候出现了这样子情况,

$ less xtrabackup_binlog_pos_innodb
/home/dba/mysqlnode/nodedata3/mysql-bin.000002 0

$ cat xtrabackup_binlog_info
mysql-bin.000002 335293969

发现 xtrabackup_binlog_info  比较正确,真的是感觉版本问题。。我还是按照官网遵从  xtrabackup_binlog_info 指定的算了,建议大家采用高版本的备份软件备份 MySQL 5.5 及以上的吧。

mysql 备份软件 Xtrabackup 的 xtrabackup_binlog_pos_innodb和xtrabackup_binlog_info 文件区别的更多相关文章

  1. [转]Xtrabackup 的 xtrabackup_binlog_pos_innodb和xtrabackup_binlog_info 文件区别

    [转自] http://julyclyde.org/?p=403 在操作 innobackupex 的时候,执行 change master to 的时候发现 xtrabackup_binlog_po ...

  2. MySQL备份恢复之Xtrabackup

    Preface       Today,I'm gonna use the Xtrabackup tool to demonstrate the procedure of backing up MyS ...

  3. MySQL备份恢复工具Xtrabackup

    参考文档https://www.cnblogs.com/youkanyouxiao/p/8335173.html Xtrabackup介绍  Xtrabackup是由percona开源的免费数据库热备 ...

  4. Mysql备份工具Xtrabackup

    Xtrabackup是一个开源的免费的热备工具,在Xtrabackup包中主要有Xtrabackup和innobackupex两个工具.其中Xtrabackup只能备份InnoDB和XtraDB两种引 ...

  5. MySQL备份利器-xtrabackup的介绍和原理(附脑图)

    标签(linux): mysql-xtrabackup 笔者Q:972581034 交流群:605799367.有任何疑问可与笔者或加群交流 xtrabackup是Percona公司针对mysql数据 ...

  6. MySQL备份之XtraBackup工具使用

    数据库的完整备份 [root@vhost1 ~]# innobackupex --defaults-file=/mysqldata/3306/my.cnf  --user=root   --passw ...

  7. (4.2)mysql备份还原——备份概述

    1.什么情况下会用到备份呢? [1.1]灾难恢复 [1.2]单位审计:数据库在过去某一个点是什么样的 [1.3]跨机房灾备:异地备份 [1.4]认为的DDL或者DML语句,导致主从库的数据消失 [1. ...

  8. MariaDB/MySQL备份和恢复(三):xtrabackup用法和原理详述

    本文目录: 1.安装xtrabackup 2.备份锁 3.xtrabackup备份原理说明 3.1 备份过程(backup阶段) 3.2 准备过程(preparing阶段) 3.3 恢复过程(copy ...

  9. MySQL数据物理备份之xtrabackup

    percona-xtrabackup 它是开源免费的支持MySQL 数据库热备份的软件,它能对InnoDB和XtraDB存储引擎的数据库非阻塞地备份.它不暂停服务创建Innodb热备份: 为mysql ...

随机推荐

  1. [刘阳Java]_MyBatis_动态SQL标签用法_第7讲

    1.MyBatis的动态SQL是基于OGNL表达式的,它可以帮助我们方便的在SQL语句中实现某些逻辑. 2.MyBatis中用于实现动态SQL的元素主要有 if choose(when,otherwi ...

  2. HYSBZ 4551 (树状数组) 采花

    题目:这里 题意: 在2016年,佳媛姐姐刚刚学习了树,非常开心.现在他想解决这样一个问题:给定一颗有根树(根为1),有以下 两种操作:1. 标记操作:对某个结点打上标记(在最开始,只有结点1有标记, ...

  3. WNDR3700V4恢复原厂固件(使用TFTP刷网件原厂固件)

    WNDR3700v4原厂固件下载地址: http://support.netgear.cn/doucument/More.asp?id=2203 操作方法: 1.将设备断电: 2.按住设备背面的Res ...

  4. Thrift 2中get用法的详细解析

    Thrift2相比于Thrift 1改动较大,这里不去描述改动的地方,但是它的改动确实比Thrift1方便了很多.但是不能理解的是Thrift2网上的资料和文档相当的少,就以Thrift2操作Hbas ...

  5. windows下mongodb权限设置解决方法

    mongodb简介: MongoDB 是一个跨平台的,面向文档的数据库,提供高性能,高可用性和可扩展性方便. MongoDB工作在收集和文件的概念. MongoDB默认设置为无权限访问限制,所以可以直 ...

  6. [Docker]Docker快速上手学习笔记

    0. 学习的一些疑问 如何热更新镜像(images)?(你可以快速启动或者销毁容器.这种时间几乎是实时的) 如何热更新游戏服? 好处在于各个应用之间环境相互独立,即使某一个容器崩溃也不会影响到其它容器 ...

  7. C# 小工具开发--DeBugHttp

    随着RESTful的流行,前后端分离,我们后端开发人员在开发过程中多http相关方法进行测试.这就是这个小工具的初衷. 代码地址:https://github.com/gdoujkzz/DebugHt ...

  8. cassandra-replication_factor 和 consistency level

    参考 replication_factor 决定了数据会被写到多少个节点.为2表示要写到两个节点. consistency level决定客户端要等待多少个节点被写成功.为1表示只要第一个节点被写成功 ...

  9. mysql 事件调度

    适用于mysql 5.1 及以后版本 1.查看是否开启 show variables like '%scheduler%' 2.查看进程 show processlist 3.事件调度器默认是关闭的, ...

  10. 关于window.open()中文传值乱码问题的解决方法

    最近组长叫我做一个把查询出的数据用POI导出Excel的功能,我前台把要查询的字段通过如下传回后台时,发现出现了乱码问题 window.open('user!export?name='+name); ...