xtrabackup恢复数据有多快

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了xtrabackup恢复数据有多快相关的知识,希望对你有一定的参考价值。

参考技术A

有时候我们需要获取文件的创建时间。

例如:我在研究 《xtrabackup 原理图》的时候,想通过观察确认 xtrabackup_log 是最早创建 并且是 最晚保存的文件。我们就需要知道 xtrabackup_logfile 这个文件的创建时间戳和修改时间戳。


复习:Linux关于文件的三个时间戳

Linux 的文件系统保存有三个时间戳,利用 stat 指令查看文件信息可以获取。他们分别是 ATime、MTime 和 CTime

[root@192-168-199-198 backups]# stat 2.txt   File: ‘2.txt’  Size: 16            Blocks: 8          IO Block: 4096   regular fileDevice: 821h/2081d    Inode: 15          Links: 1Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)Access: 2019-07-23 12:12:14.276981038 +0800Modify: 2019-07-23 12:12:41.415980158 +0800Change: 2019-07-23 12:12:41.415980158 +0800 Birth: -

    ATime ——文件的最近访问时间

    只要读取文件,ATime 就会更新,对应的是 stat 命令获取的 Access 的值。

    [root@192-168-199-198 backups]# cat 2.txt   #<-- 读取文件121231233123123[root@192-168-199-198 backups]# stat 2.txt  File: ‘2.txt’  Size: 16            Blocks: 8          IO Block: 4096   regular fileDevice: 821h/2081d    Inode: 15          Links: 1Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)Access: 2019-07-23 12:22:09.644961733 +0800    #<-- 时间变化了Modify: 2019-07-23 12:12:41.415980158 +0800Change: 2019-07-23 12:12:41.415980158 +0800 Birth: -

    MTime ——文件的内容最近修改的时间

    当文件进行被写的时候,MTime 就会更新,对应的是 stat 命令获取的 Modify 的值。[root@192-168-199-198 backups]# echo hello_world > 2.txt    #<-- 修改文件内容[root@192-168-199-198 backups]# stat 2.txt  File: ‘2.txt’  Size: 12            Blocks: 8          IO Block: 4096   regular fileDevice: 821h/2081d    Inode: 15          Links: 1Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)Access: 2019-07-23 12:22:09.644961733 +0800Modify: 2019-07-23 12:26:23.466953503 +0800    #<-- 时间变化了Change: 2019-07-23 12:26:23.466953503 +0800 Birth: -

    这里不要用vi修改文件内容,因为用vi修改文件内容有可能会引起Inode变更,也就是你观察的文件并不是之前的文件了!这个和vi的原理有关。

    CTime ——文件属性最近修改的时间

    当文件的目录被修改,或者文件的所有者,权限等被修改时,CTime 也就会更新,对应的是 stat 命令获取的 Change 的值。[root@192-168-199-198 backups]# chmod 777 2.txt   #<-- 修改文件属性[root@192-168-199-198 backups]# stat 2.txt  File: ‘2.txt’  Size: 12            Blocks: 8          IO Block: 4096   regular fileDevice: 821h/2081d    Inode: 15          Links: 1Access: (0777/-rwxrwxrwx)  Uid: (    0/    root)   Gid: (    0/    root)Access: 2019-07-23 12:22:09.644961733 +0800Modify: 2019-07-23 12:26:23.466953503 +0800Change: 2019-07-23 12:30:35.830945320 +0800   #<-- 时间变化了 Birth: -
    Linux 无法获取文件创建时间?现在我们知道了Linux有三种时间,ATime、MTime 和 CTime,那么很好奇为什么没有 CRTime (创建时间) 呢?

    请点击输入图片描述

    对比 Windows 系统 (上图),Windows 的 NTFS 文件系统里存在三个时间戳,其中就包含了“创建时间”,但在 Linux 的设计哲学上没有文件“创建时间”这么一说,所以早期版本的ext文件系统不支持文件“创建时间”。但从 ext4 版本开始,文件创建时间存储在ext4文件系统的inode中,所以 ext4 文件系统使用特殊方法也是可以获取文件的创建时间的。

    也说明了,是否能获取文件的创建时间,和文件系统是否支持有关。

    Linux 上获取文件创建时间的步骤

    CentOS7 Linux系统自带一个工具,叫做 debugfs,他可以查出 ext4 文件系统上的文件的创建时间。man debugfs 发现工具的描述是 “ext2/ext3/ext4 file system debugger”,所以他是不支持 xfs 文件系统的。

    常用的 xfs 文件系统是否支持获取文件创建时间,还有如何获取,这个暂时不清楚,需读者查阅官方文档

参考技术B 1,Xtrabackup是什么
Xtrabackup是一个对InnoDB做数据备份的工具,支持在线热备份(备份时不影响数据读写),是商业备份工具InnoDB Hotbackup的一个很好的替代品。
Xtrabackup有两个主要的工具:xtrabackup、innobackupex
1、xtrabackup只能备份InnoDB和XtraDB两种数据表,而不能备份MyISAM数据表
2、 innobackupex是参考了InnoDB Hotbackup的innoback脚本修改而来的.innobackupex是一个perl脚本封装,封装了xtrabackup。主要是为了方便的 同时备份InnoDB和MyISAM引擎的表,但在处理myisam时需要加一个读锁。并且加入了一些使用的选项。如slave-info可以记录备份恢 复后,作为slave需要的一些信息,根据这些信息,可以很方便的利用备份来重做slave。
2,Xtrabackup可以做什么 :
在线(热)备份整个库的InnoDB、 XtraDB表
在xtrabackup的上一次整库备份基础上做增量备份(innodb only)
以流的形式产生备份,可以直接保存到远程机器上(本机硬盘空间不足时很有用)
MySQL数据库本身提供的工具并不支持真正的增量备份,二进制日志恢复是point-in-time(时间点)的恢复而不是增量备份。
Xtrabackup工具支持对InnoDB存储引擎的增量备份,工作原理如下:
(1)首先完成一个完全备份,并记录下此时检查点的LSN(Log Sequence Number)。
(2)在进程增量备份时,比较表空间中每个页的LSN是否大于上次备份时的LSN,如果是,则备份该页,同时记录当前检查点的LSN。
首 先,在logfile中找到并记录最后一个checkpoint(“last checkpoint LSN”),然后开始从LSN的位置开始拷贝InnoDB的logfile到xtrabackup_logfile;接着,开始拷贝全部的数据文 件.ibd;在拷贝全部数据文件结束之后,才停止拷贝logfile。
因为logfile里面记录全部的数据修改情况,所以,即时在备份过程中数据文件被修改过了,恢复时仍然能够通过解析xtrabackup_logfile保持数据的一致。
因为innobackupex支持innodb,myisam,所以本文说一下,怎么使用innobackupex

以上是关于xtrabackup恢复数据有多快的主要内容,如果未能解决你的问题,请参考以下文章

Xtrabackup 能不能做单库的备份恢复

数据备份与恢复 XtraBackup备份工具

xtrabackup8.0恢复数据库

xtrabackup8.0恢复数据库

xtrabackup8.0恢复数据库

Mysqldump 备份恢复与xtrabackup备份