备份原理

xtrabackup的备份时间点是备份结束时刻,记录在xtrabackup_binlog_info 文件中;如果后续需要通过binlog追加操作,则该时间点是起点。

备份开始后,xtrabckup就开始复制数据库中的文件,不锁表,同时监控日志变化;

在复制完所有的database后,立即将此时数据库master status的位置写入xtrabackup_binlog_info 文件,所以从时间上来看,xtrabackup_binlog_info文件在数据库目录文件的下面,在其他文件的上面。

如果这个时间点有未提交的事务,则最终会回退,此操作为crash-recovery(崩溃恢复)--应用所有已提交和未提交的事务,并回滚未提交的事务。

备份前时刻

个人测试库环境,除非手工执行SQL语句,否则不会有其他事务产生,备份前

mysql> show master status\G;
*************************** 1. row ***************************
File: mysql-bin.000038
Position: 19842
Binlog_Do_DB:
Binlog_Ignore_DB:
Executed_Gtid_Set:
1 row in set (0.00 sec) ERROR:
No query specified
# rpm -qa | grep xtrabackup
percona-xtrabackup--2.4.-.el7.x86_64

开始备份

innobackupex  --defaults-file=/etc/my_bakdb.cnf --no-timestamp --user automng --host=192.168.56.82 --port=3319 --password ***** /data0/backup/dbbak_20180813

刚开始备份时备份目录的文件,此时并没有xtrabackup_binlog_info 文件

[root@red4 dbbak_20180813]# ls -ltrh
total 2.0G
-rw-r-----. 1 root root 2.0K Aug 13 16:40 xtrabackup_logfile
-rw-r-----. 1 root root 1.0G Aug 13 16:40 ibdata1

手工执行DML语句,让数据库产生事务变化

mysql> delete from sbtest9 limit 10;
Query OK, 10 rows affected (0.63 sec)

备份完成后,文件目录中,有xtrabackup_binlog_info 文件但要比相应的数据库的备份目录时间上靠后

[root@red4 dbbak_20180813]# ls -ltrh
total .1G
-rw-r-----. root root .0G Aug : ibdata1
drwxr-x---. root root .0K Aug : mysql
drwxr-x---. root root .0K Aug : sys
drwxr-x---. root root .0K Aug : txdb
drwxr-x---. root root .0K Aug : performance_schema
-rw-r-----. root root Aug : xtrabackup_binlog_info
-rw-r-----. root root 30K Aug : xtrabackup_logfile
-rw-r-----. root root Aug : xtrabackup_checkpoints
-rw-r-----. root root .5K Aug : ib_buffer_pool
-rw-r-----. root root Aug : backup-my.cnf
-rw-r-----. root root Aug : xtrabackup_info

可以看到xtrabackup_binlog_info文件中记录并不是刚开始的19842这个位置,而是事务变化后的24218位置,

# cat xtrabackup_binlog_info
mysql-bin.
mysql> show master status\G;
*************************** 1. row ***************************
File: mysql-bin.000038
Position: 24218
Binlog_Do_DB:
Binlog_Ignore_DB:
Executed_Gtid_Set:
1 row in set (0.00 sec) ERROR:
No query specified

my13_mysql xtrabackup备份的时间点的更多相关文章

  1. mysqldump和xtrabackup备份原理实现说明

    背景: MySQL数据库备份分为逻辑备份和物理备份两大类,犹豫到底用那种备份方式的时候先了解下它们的差异: 逻辑备份的特点是:直接生成SQL语句,在恢复的时候执行备份的SQL语句实现数据库数据的重现. ...

  2. Percona XtraBackup 备份原理说明【转】

    本文来自:http://mysql.taobao.org/monthly/2016/03/07/ 前言 Percona XtraBackup(简称PXB)是 Percona 公司开发的一个用于 MyS ...

  3. MariaDB之基于Percona Xtrabackup备份大数据库[完整备份与增量备份]

    MariaDB之基于Percona Xtrabackup备份大数据库[完整备份与增量备份] 1.Xtrabackup的安装 percona-xtrabackup-2.2.3-4982.el6.x86_ ...

  4. Percona Xtrabackup备份mysql(转)

    add by zhj:另外,参考了Xtrabackup之innobackupex备份恢复详解,我用的是Xtrabackup2.2.6版本, 可以成功备份和恢复指定的数据库. 原文:http://www ...

  5. MySQL · 物理备份 · Percona XtraBackup 备份原理

    http://mysql.taobao.org/monthly/2016/03/07/ 前言 Percona XtraBackup(简称PXB)是 Percona 公司开发的一个用于 MySQL 数据 ...

  6. Percona XtraBackup 备份原理

    前言 Percona XtraBackup(简称PXB)是 Percona 公司开发的一个用于 MySQL 数据库物理热备的备份工具,支持 MySQl(Oracle).Percona Server 和 ...

  7. mysql xtrabackup 备份恢复实现,mysql命令备份数据库,打包压缩数据库

    简介 Xtrabackup是由percona提供的mysql数据库备份工具,据官方介绍,这也是世界上惟一一款开源的能够对innodb和xtradb数据库进行热备的工具.特点: (1)备份过程快速.可靠 ...

  8. xtrabackup备份mysql数据库的使用方法

    xtrabackup是由percona提供的mysql备份工具,它是一款物理备份工具,通过连接数据库把数据库的数据备份出来.对于innodb存储引擎其支持全量备份和增量备份.对于myisam存储引擎只 ...

  9. Percona XtraBackup 备份还原篇

    Percona XtraBackup 安装介绍篇已经对Percona XtraBackup的功能和安装做了比较详细的介绍,那么本篇我们直接进入主题,如何使用XtraBackup做备份.还原,下面主要介 ...

随机推荐

  1. JavaScript的self和this使用小结

    一.self这个非常简单.我们知道,打开任何一个网页,浏览器会首先创建一个窗口,这个窗口就是一个window对象,也是js运行所依附的全局环境对象和全局作用域对象.self 指窗口本身,它返回的对象跟 ...

  2. Tensorflow 优化学习

    # coding: utf-8 import tensorflow as tffrom tensorflow.examples.tutorials.mnist import input_data pr ...

  3. php学习笔记-if else

    生活不会总是波澜不惊的,要是那样也没有什么意思.代码也一样,if else的出现为平静的生活带来一点变化. <?php $money = 1000; if($money>0) { //sl ...

  4. SDUT 3361 数据结构实验之图论四:迷宫探索

    数据结构实验之图论四:迷宫探索 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem Description 有一个地下迷 ...

  5. SSH框架(四) struts2+spring3.0的登陆示例

    (一)关键理念及需要注意的地方: 使用struts2+spring3.0的框架搭建web程序,就是使用spring来进行依赖注入(依赖注入请参考baidu上面的解释:http://baike.baid ...

  6. Android开发环境搭建及HelloWorld

    在开始Android开发之旅启动之前,首先要搭建环境,然后创建一个简单的HelloWorld.本文的主题如下: 1.环境搭建 1.1.JDK安装 1.2.Eclipse安装 1.3.Android S ...

  7. super-smack

    我有个办法,不过不是用LR,是用super-smack,如果只对数据库进行抗压力测试,应该管用.Super-smack 现在是1.3版,源码下载地址如下:http://vegan.net/tony/s ...

  8. C# SendMessage用法一二

    函数功能:该函数将指定的消息发送到一个或多个窗口.此函数为指定的窗口调用窗口程序,直到窗口程序处理完消息再返回.而函数PostMessage不同,将一个消息寄送到一个线程的消息队列后立即返回.  函数 ...

  9. 微信开放平台 redirect_uri参数错误

    微信开放平台 redirect_uri参数错误   请注意是开放平台开放平台,公众平台和开放平台不是同一个. 解决办法 在写 授权回调域 时,地址只用写到域名级,不能写到域名下一级,这和QQ互联的回调 ...

  10. swift基础语法之——变量和常量

    swift使用let关键字来定义常量,使用var来定义变量,变量在使用前必须初始化(赋初始值) swift是类型安全语音,即不同类型的变量不能一起运算,必须转成同一类型才可以 变量的类型在声明时不必给 ...