Xtrabackup 数据备份工具使用方法

1.安装

1.1 简介

XtraBackup(PXB) 工具是 Percona 公司用 perl 语言开发的一个用于 MySQL 数据库物理热备的备份工具,支持 MySQl(Oracle)、Percona Server 和 MariaDB,并且全部开源。Percona-Xtrabackup的工作原理是在启动时记住日志序列号(log sequence number == LSN),然后复制数据文件。这一过程需要耗费时间,在数据复制过程中如果文件正在更改,LSN将反映数据库在不同时间点的状态。同时,每次备份过程中PerconaXtrabackup会运行一个后台进程,监视事务日志文件,并从中复制更改。PerconaXtrabackup自数据文件开始执行以来,每次更改都需要事务日志记录。

  • Ubuntu

    example@ubuntu:~$ wget https://repo.percona.com/apt/percona-release_latest.$(lsb_release -sc)_all.deb
    example@ubuntu:~$ ls -al percona-release_latest.xenial_all.deb
    -rw-rw-r-- 1 example example 8900 Mar 12 21:37 percona-release_latest.xenial_all.deb
    example@ubuntu:~$ sudo dpkg -i percona-release_latest.$(lsb_release -sc)_all.deb
    example@ubuntu:~$ ls /etc/apt/sources.list.d/percona-original-release.list
    /etc/apt/sources.list.d/percona-original-release.list
    example@ubuntu:~$ sudo apt-get update
    example@ubuntu:~$ sudo apt-get install percona-xtrabackup-24
    
  • Centos

    [example@mail ~]$ sudo yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm
    [example@mail ~]$ ls /etc/yum.repos.d/percona-original-release.repo
    /etc/yum.repos.d/percona-original-release.repo
    [example@mail ~]$ sudo yum list | grep percona
    percona-release.noarch                  1.0-9                          installed
    ...
    [example@mail ~]$ sudo yum install libev percona-xtrabackup-24
    

2.全量备份及恢复

Xtrabackup默认数据存储目录为 /var/lib/mysql,默认读取"/etc/my.cnf、/etc/mysql/my.cnf 、/usr/etc/my.cnf 、~/.my.cnf"的数据库配置,可以通过 --variable-name=value 修改默认配置

  • Xtrabackup 部分参数说明

    • –target-dir=name 备份文件存放路径
    • –backup 数据备份
    • –prepare 为数据恢复做准备
    • –apply-log-only 适用于增量备份恢复准备过程,不进行LSN回滚
    • –use-memory 数据备份是使用的内存
    • –incremental-lsn=name (–backup)仅复制比指定LSN数值高的.ibd页
    • –incremental-basedir=name (–backup)新建增量备份的上次备份目录
    • –incremental-dir=name (–prepare) 恢复准备阶段增量备份目录
    • –databases=name --tables=name 指定数据库或表名
    • –copy-back 保留备份数据并恢复数据
    • –move-back 不保留备份数据并恢复数据
    • –galera-info --slave-info 用于集群
    • -u, --user=name -H, --host=name -P, —port=# -p, --password=name 数据库参数
  • 数据备份

    指定数据目录为/var/lib/lims_mysql,备份数据存储目录为/home/example/backup/full/

[example@mail ~]$ sudo xtrabackup -uexample -H172.17.42.1 -p --backup --datadir=/var/lib/lims_mysql/ --target-dir=/home/example/backup/full/

数据备份成功后会出现"completed OK!"提示,信息记录了 LSN为3505793

190329 14:30:28 [00] Writing /home/example/backup/full/xtrabackup_info
190329 14:30:28 [00]        ...done
xtrabackup: Transaction log of lsn (3505793) to (3505793) was copied.
190329 14:30:28 completed OK!

全量备份文件中文件列表如下:

[example@mail ~/backup/full]$ ls -al
drwxr-x--- 2 root root     4096 Mar 29 14:30 approval
-rw-r----- 1 root root      432 Mar 29 14:30 backup-my.cnf
drwxr-x--- 2 root root     4096 Mar 29 14:30 eq_stat
-rw-r----- 1 root root 79691776 Mar 29 14:30 ibdata1
drwxr-x--- 2 root root    16384 Mar 29 14:30 lims2_ali_test
drwxr-x--- 2 root root     4096 Mar 29 14:30 mysql
drwxr-x--- 2 root root     4096 Mar 29 14:30 performance_schema
drwxr-x--- 2 root root     4096 Mar 29 14:30 sj_tri
drwxr-x--- 2 root root     4096 Mar 29 14:30 unpc
-rw-r----- 1 root root       32 Mar 29 14:30 xtrabackup_binlog_info
-rw-r----- 1 root root      113 Mar 29 14:30 xtrabackup_checkpoints
-rw-r----- 1 root root      587 Mar 29 14:30 xtrabackup_info
-rw-r----- 1 root root     2560 Mar 29 14:30 xtrabackup_logfile

​ 备份目录中的 xtrabackup_checkpoints 文件记录了备份类型,开始LSN及结束LSN

[example@mail ~/backup/full]$ sudo cat xtrabackup_checkpoints
backup_type = full-backuped
from_lsn = 0
to_lsn = 3505793
last_lsn = 3505793
compact = 0
recover_binlog_info = 0
  • 数据恢复准备

    因为数据在备份过程中会有新的事物被提交。不使用 --prepare 准备数据,会导致未提交的事物被回滚。xtrabackup 不允许未经过准备的数据进行恢复

    [example@mail ~]$ sudo xtrabackup --prepare --target-dir=/home/example/backup/full/
    ...
    InnoDB: Shutdown completed; log sequence number 3523624
    190329 14:48:13 completed OK!
    
  • 数据恢复

    恢复数据时,MySQL的数据目录不能存在数据 && 数据库应处于关闭状态

    [example@mail ~]$ sudo xtrabackup -uexample -H172.17.42.1 -p --copy-back --datadir=/var/lib/lims_mysql/ --target-dir=/home/example/backup/full/
    ...
    190329 15:08:31 [01] Copying ./sj_tri/db.opt to /var/lib/lims_mysql/sj_tri/db.opt
    190329 15:08:31 [01]        ...done
    190329 15:08:32 completed OK!
    

    使用 --copy-back 等同于复制操作,即备份数据仍然保存;

    –move-back 恢复数据但不保存备份文件

    若不使用xtrabackup命令,也可以使用 rsync -avrP 或 cp -r 命令。文件复制成功后,需修改数据目录属主属组为mysql

    [example@mail ~]$ sudo rsync -avrP /home/example/backup/full/ /var/lib/lims_mysql
    或者
    [example@mail ~]$ sudo cp -r /home/example/backup/full/ /var/lib/lims_mysql
    [example@mail ~]$ sudo chown -R mysql:mysql /var/lib/lims_mysql
    

​ 启动数据库,查看数据状态

3.增量备份及恢复

  • 数据备份

    备份全量数据 ==>> /home/example/backup/full_backup/

  • [example@mail ~]$ sudo xtrabackup -uexample -H172.17.42.1 -p --backup --datadir=/var/lib/lims_mysql/ --target-dir=/home/example/backup/full_backup/
    ...
    190329 15:30:35 [00] Writing /home/example/backup/full_backup/xtrabackup_info
    190329 15:30:35 [00]        ...done
    xtrabackup: Transaction log of lsn (0) to (3523633) was copied.
    190329 15:30:35 completed OK!
    

​ 增量数据备份01

[example@mail ~]$ sudo xtrabackup -uexample -H172.17.42.1 -p --backup --datadir=/var/lib/lims_mysql/ --target-dir=/home/example/backup/incre_backup/01/ --incremental-basedir=/home/example/backup/full_backup/
...
190329 15:44:34 [00]        ...done
xtrabackup: Transaction log of lsn (3523623) to (30338852) was copied.
190329 15:44:34 completed OK!```​    增量备份数据02```shell
sudo xtrabackup -uexample -H172.17.42.1 -p --backup --datadir=/var/lib/lims_mysql/ --target-dir=/home/example/backup/incre_backup/02/ --incremental-basedir=/home/example/backup/incre_backup/01/
...
190329 16:04:34 [00]        ...done
xtrabackup: Transaction log of lsn (30338852) to (30347862) was copied.
190329 16:04:34 completed OK!
  • 数据恢复准备

    增量备份恢复准备时,除最后一个增量数据外,其他准备工作都需要使用 --apply-log-only

    [example@mail ~]$ sudo xtrabackup --prepare --apply-log-only --target-dir=/home/example/backup/full_backup/
    ...
    InnoDB: Shutdown completed; log sequence number 3523633
    InnoDB: Number of pools: 1
    190329 16:30:01 completed OK!
    
    [example@mail ~]$ sudo xtrabackup --prepare --apply-log-only --target-dir=/home/example/backup/full_backup/  --incremental-dir=/home/example/backup/incre_backup/01/
    ...
    190329 16:33:13 [00]        ...done
    190329 16:33:13 completed OK!
    
    [example@mail ~]$ sudo xtrabackup --prepare --target-dir=/home/example/backup/full_backup/  --incremental-dir=/home/example/backup/incre_backup/02/
    ...
    InnoDB: Shutdown completed; log sequence number 30351912
    190329 16:34:38 completed OK!
    

    此时数据已全部整合到了/home/example/backup/full_backup/ 文件中

    再次执行全量数据准备工作

    [example@mail ~]$ sudo xtrabackup  --prepare --target-dir=/home/example/backup/full_backup/
    ...
    190329 16:52:55 completed OK!
    
  • 数据恢复

​ 按照全量数据恢复步骤恢复即可

参考文档:

pdf文档1 提取码:y9rx

官网地址-Xtrabackup

innobackupex(2.2版本已移除)

Xtrabackup 数据备份工具使用方法相关推荐

  1. 数据备份_天津数据备份工具多少钱

    天津数据备份工具多少钱 DFA7G4AH 天津数据备份工具多少钱 参观了解DIDC情况后,江凌表示,市委市一直非常重视工业设计行业的发展,但目前尚无专门针对扶持工业设计的.伴随着制造业的发展,产品零件 ...

  2. 你必须要知道的数据备份工具rsync

    你必须要知道的数据备份工具rsync 数据镜像备份工具:rsync 什么是rsync ? rsync 是Linux/UNIX系统下的文件同步工具和数据传输工具,它采用:"rsync算法&qu ...

  3. Rsync 数据备份工具

    Rsync数据备份工具 1.Rsync简介 Rsync是一款开源的数据备份工具,可以用于不同主机之间同步传输数据,可以实现全量备份和增量备份. Rsync监听端口: Rsync工具默认运行在TCP的8 ...

  4. GoodSync 数据自动同步备份工具VS傲梅轻松备份系统数据备份工具 哪款更好?

    备份和同步软件的使用越来越广泛,因为在这个数据驱动的时代,数据的备份和恢复非常重要.在这里我想向大家推荐两款备份和同步软件--GoodSync和傲梅轻松备份. GoodSync是一款备份和同步软件,它 ...

  5. 苹果电脑数据备份和数据恢复方法+时间机器

    苹果电脑在Leopard操作系统中自带了一个叫时间机器(Time Machine)的软件,用于数据备份和恢复.既然70-80%的用户都不做备份,为什么苹果要在Leopard中隆重推出时间机器这个新功能 ...

  6. Linux下的数据备份工具rsync

    Linux下的数据备份工具很多,用得最多的是rsyns(远程同步) 同步远程数据类似scp 同步本地数据类似cp root@ip-172-31-8-212:~# rsync /etc/passwd / ...

  7. Linux数据备份工具

    一.rsync数据备份工具 1.rsync工具简介 rsync是Linux系统下的数据镜像备份工具,通过rsync可以将本地系统数据通过网络备份到任何远程主机上. rsync有如下特性: 可以镜像保存 ...

  8. Python中的数据可视化工具与方法——常用的数据分析包numpy、pandas、statistics的理解实现和可视化工具matplotlib的使用

    Python中的数据可视化工具与方法 本文主要总结了: 1.本人在初学python时对常用的数据分析包numpy.pandas.statistics的学习理解以及简单的实例实现 2.可视化工具matp ...

  9. 服务器怎么拷贝文件夹下,Syncovery(数据备份工具)如何在windows下远程访问服务器批量拷贝文件?Syncovery图文教...

    Syncovery是一款数据备份工具,能够在pc.mac.服务器.在线存储空间之间同步,并自带FTP,是一款灵活的同步备份工具,并同步Mac电脑,服务器,笔记本电脑,以及在线存储空间,一起来看看具体的 ...

  10. InfluxDB数据备份和恢复方法,支持本地和远程备份

    本文属于< InfluxDB系列教程>文章系列,该系列共包括以下 17 部分: InfluxDB学习之InfluxDB的基本概念 InfluxDB学习之InfluxDB的基本操作 Infl ...

最新文章

  1. 在Linux上利用python获取本机ip
  2. AI时代竟有智能化鸿沟,具备哪些条件才能跨过?
  3. python 的String,集合(List,元组,Dict)
  4. 云盒子企业网盘入驻阿里云市场,正式向公有云市场发力!
  5. phpcms漏洞总结
  6. ORACLE EBS 多账套总结
  7. Matlab 常用语法速记 1
  8. AIR文件操作(三):使用FileStream对象读写文件
  9. 目录与文件的权限意义
  10. FragmentActivity和Activity的区别
  11. 图片怎样把背景去掉?怎么把图片背景透明?
  12. 基于php考试系统设计与实现研究文毕业设计(论文)学生中期检查,毕业设计(论文)中期检查报告(学生填写)...
  13. springboot获取properties文件的配置内容(转载)
  14. 软考系统集成项目管理工程师全真模拟题
  15. The word 'XXX' is not correctly spelled
  16. 广东未来科技|民族科技助力立体显示终端产业集群崛起
  17. 后端开发规范(持续更新中...)
  18. 春节无法回家,为中国残疾人联合会春晚文字直播活动、为全国聋人朋友提供网络软件技术服务...
  19. 如何快速上线、部署javaweb项目
  20. (一)互联智能车载终端系统,介绍,构思,搭建

热门文章

  1. scl语言用plc脉冲做定时器_scl语言用plc脉冲做定时器_西门子PLC SCL语言开发学习笔记(二)...
  2. 春运抢火车票攻略汇总(持续更新中)
  3. 100%可用的总裁主题授权版 WordPress付费资源素材下载主题
  4. (白光LED显色性)计算白光LED的显色指数(CRI)数据异常,色质指数CQS来替代
  5. Kattis- 3D Printed Statues
  6. Python爬虫-豆瓣电影排行榜TOP250
  7. Python模块之Shapely
  8. Codeforces Round #739 (Div. 3) E. Polycarp and String Transformation
  9. 【存储知识】RAID(磁盘冗余阵列)与 LVM(逻辑卷管理器)
  10. 苹果电子邮件怎么注册_无需购买 iPhone,可以使用哪些苹果的优质服务?