主从节点分配:

192.168.1.100 master binlog server读取节点
192.168.1.101 slave 备份节点

备注:binlog server从master节点备份binlog,xtrabackup从slave节点进行备份

备份过程忽略,备份后的目录结构如图:

backup-my.cnf  ibdata1  monitor  mysql  panda_chongzhi  performance_schema  test  xtrabackup_binlog_info  xtrabackup_checkpoints  xtrabackup_info  xtrabackup_logfile

[root@appdb2v 20160530]# cat xtrabackup_binlog_info
mysql_bin.000014 455786786 a9f7c88d-0886-11e6-8a74-00163e0800ff:1-4,
d7fd53cd-0882-11e6-8a5b-00163e080703:1-23209940,
fbfda47c-d310-11e5-adda-00163e0e0823:1-45225558

从xtrabackup_binlog_info信息可以看到,备份时binlog为mysql_bin.000014,end_position是455786786,gtid事务点是d7fd53cd-0882-11e6-8a5b-00163e080703:1-23209940(备注:这个从节点是从级联节点复制过来的,所以事务id出现三个,其中uuid:d7fd53cd-0882-11e6-8a5b-00163e080703是这个从节点的master节点),在这种情况下,我们如何根据从节点上的备份和基于主节点的binlog server进行数据恢复呢?

思考:主从架构中,启动gtid模式,执行同一个事务,主从binlog中的pos点是不一定一致的,但是gtid肯定是一致的,那么我们可以基于gtid,在binlog server备份的binlog中,找到相应的pos点,然后指定--start-position

[root@appdb1v gaoquan]# mysqlbinlog -v --base64-output=DECODE-ROWS ./mysql_bin.000014|grep 23209941 -B10 -A 10
COMMIT/*!*/;
# at 232099219
#160527 0:25:27 server id 1083306 end_log_pos 232099267 CRC32 0xbf94f603 GTID [commit=yes]
SET @@SESSION.GTID_NEXT= 'd7fd53cd-0882-11e6-8a5b-00163e080703:21348001'/*!*/;
# at 232099267
#160527 0:25:27 server id 1083306 end_log_pos 232099349 CRC32 0x911407dd Query thread_id=32313906 exec_time=0 error_code=0
SET TIMESTAMP=1464279927/*!*/;
BEGIN
/*!*/;
# at 232099349
#160527 0:25:27 server id 1083306 end_log_pos 232099415 CRC32 0xc56e7558 Table_map: ` mapped to number 113
# at 232099415
#160527 0:25:27 server id 1083306 end_log_pos 232099553 CRC32 0x753d029b Update_rows: table id 113 flags: STMT_END_F

# at 928426311
#160530 3:01:30 server id 1083306 end_log_pos 928426342 CRC32 0x2577d87f Xid = 337741726
COMMIT/*!*/;
# at
#160530 3:01:30 server id 1083306 end_log_pos 928426390 CRC32 0x8fe4f7c6 GTID [commit=yes]
SET @@SESSION.GTID_NEXT= 'd7fd53cd-0882-11e6-8a5b-00163e080703:23209941'/*!*/;
# at 928426390
#160530 3:01:30 server id 1083306 end_log_pos 928426472 CRC32 0x0cc3a3ba Query thread_id=34214200 exec_time=0 error_code=0
SET TIMESTAMP=1464548490/*!*/;
BEGIN
/*!*/;
# at 928426472
#160530 3:01:30 server id 1083306 end_log_pos 928426538 CRC32 0x1e03877f Table_map: ` mapped to number 81
# at 928426538
#160530 3:01:30 server id 1083306 end_log_pos 928426676 CRC32 0x18a58faa Update_rows: table id 81 flags: STMT_END_F

由上面获取到的信息可知binlog中d7fd53cd-0882-11e6-8a5b-00163e080703:23209941对应的pos点位置是928426342,那么我们可以基于这个pos点进行数据库恢复

[root@appdb1v gaoquan]# mysqlbinlog  --start-position= ./mysql_bin.000014|mysql -S /backup/data/mysql/3306/tmp/mysql.sock -uroot -p

gitd模式-主从备份恢复的更多相关文章

  1. Mssql主备见证的弊端及主备模式主down掉怎么恢复

    mssql主备见证有个没有解决的问题,mssql的主备是针对单个库的,有时候单个或多个库主备切换了,但是整个主数据库并没有挂掉,并且还运行着其他的库,程序检测到的数据库连接是正常的,只是部分库连接不了 ...

  2. haproxy+keepalived主备与双主模式配置

    Haproxy+Keepalived主备模式 主备节点设置 主备节点上各安装配置haproxy,配置内容且要相同 global log 127.0.0.1 local2 chroot /var/lib ...

  3. centos7 搭建双网卡bond1(主备模式)实例

    前景须知: 在redhat6 中网卡叫bond,在redhat7及centos7中改名team,此处只记录centos7中双网卡主备搭建过程. 应用情景:实现网络的高可用,防止一条网线或交换机故障影响 ...

  4. Factory 模式

    在面向对象编程中, 最通常的方法是一个new操作符产生一个对象实例,new操作符就是用来构造对象实例的.但是在一些情况下, new操作符直接生成对象会带来一些问题.举例来说, 许多类型对象的创造需要一 ...

  5. ASM:《X86汇编语言-从实模式到保护模式》第17章:保护模式下中断和异常的处理与抢占式多任务

    ★PART1:中断和异常概述 1. 中断(Interrupt) 中断包括硬件中断和软中断.硬件中断是由外围设备发出的中断信号引发的,以请求处理器提供服务.当I/O接口发出中断请求的时候,会被像8259 ...

  6. ASM:《X86汇编语言-从实模式到保护模式》第9章:实模式下中断机制和实时时钟

    中断是处理器一个非常重要的工作机制.第9章是讲中断在实模式下如何工作,第17章是讲中断在保护模式下如何工作. ★PART1:外部硬件中断 外部硬件中断是通过两个信号线引入处理器内部的,这两条线分别叫N ...

  7. ps中的位图,矢量图,颜色模式

    什么是位图?什么是矢量图? 位图是由像素组成的图像,在缩放和旋转的时候容易失真,同时文件容量较大 矢量图是根据几何特性来绘制的图形,通过数学公式计算获得的,不易制作色彩变化太多的图象 颜色模式 RGB ...

  8. ASM:《X86汇编语言-从实模式到保护模式》第13章:保护模式下内核的加载,程序的动态加载和执行

    ★PART1:32位保护模式下内核简易模型 1. 内核的结构,功能和加载 每个内核的主引导程序都会有所不同,因为内核都会有不同的结构.有时候主引导程序的一些段和内核段是可以共用的(事实上加载完内核以后 ...

  9. ASM:《X86汇编语言-从实模式到保护模式》第11章:进入保护模式

    ★PART1:进入保护模式 1. 全局描述符表(Global Descriptor Table,GDT)        32位保护模式下,如果要使用一个段,必须先登记,登记的信息包括段的起始地址,段的 ...

随机推荐

  1. c# 中几个关于string问题

    1.string是一个应用类型,而不是值类型:为什么用起来很像值类型?因为微软对其做了特殊处理. 2. using System; namespace testForString { class Pr ...

  2. 感冒了~ vs中py和vb实现一个小算法

    1+1*2+1*2*3+--+1*2*3*n 下面是窗体,就一个按钮和编辑框. 中途还遇到了编码问题,但是感冒太难受,加上明天还要上课.就睡了~ 晚安世界.

  3. js __proto 和prototype

    prototype是函数的一个属性(每个函数都有一个prototype属性),这个属性是一个指针,指向一个对象.它是显示修改对象的原型的属性. __proto__是一个对象拥有的内置属性(请注意:pr ...

  4. 《zw版·Halcon-delphi系列原创教程》 Halcon分类函数009,Measure,测量函数

    <zw版·Halcon-delphi系列原创教程> Halcon分类函数009,Measure,测量函数 为方便阅读,在不影响说明的前提下,笔者对函数进行了简化: :: 用符号“**”,替 ...

  5. 《zw版·Halcon-delphi系列原创教程》 Halcon分类函数003·contour,轮廓处理

    <zw版·Halcon-delphi系列原创教程> Halcon分类函数003·contour,轮廓处理 为方便阅读,在不影响说明的前提下,笔者对函数进行了简化: :: 用符号“**”,替 ...

  6. Windows下pry安装和配置

    Windows下pry安装和配置 pry是一个增强型的交互式命令行工具,比irb强大. 有自动完成功能,自动缩进,有颜色.有更强大的调试功能. pry 安装很简单. 在终端输入: gem instal ...

  7. 文件上传插件uploadify详解

    官网:http://www.uploadify.com/ 基于jquery的文件上传控件,支持ajax无刷新上传,多个文件同时上传,上传进行进度显示,删除已上传文件. 要求使用jquery1.4或以上 ...

  8. CentOS7安装Apache2.4+PHP5.6

    linux系统CentOS7 先下载Apache需要依赖的软件 1.APR 下载地址http://apr.apache.org/download.cgi wget下载路径http://mirror.b ...

  9. 自己封装的json工具类

    package com.develop.util; import java.util.ArrayList; import java.util.HashMap; import java.util.Ite ...

  10. python学习之while语句

    while循环 1.简单的while循环while True: ")#这是一个简单的while循环,当等于True时会一直打印1 2.while执行多少次后退出 coun=0while Tr ...