Xtrabackup 数据备份工具使用方法
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 数据备份工具使用方法相关推荐
- 数据备份_天津数据备份工具多少钱
天津数据备份工具多少钱 DFA7G4AH 天津数据备份工具多少钱 参观了解DIDC情况后,江凌表示,市委市一直非常重视工业设计行业的发展,但目前尚无专门针对扶持工业设计的.伴随着制造业的发展,产品零件 ...
- 你必须要知道的数据备份工具rsync
你必须要知道的数据备份工具rsync 数据镜像备份工具:rsync 什么是rsync ? rsync 是Linux/UNIX系统下的文件同步工具和数据传输工具,它采用:"rsync算法&qu ...
- Rsync 数据备份工具
Rsync数据备份工具 1.Rsync简介 Rsync是一款开源的数据备份工具,可以用于不同主机之间同步传输数据,可以实现全量备份和增量备份. Rsync监听端口: Rsync工具默认运行在TCP的8 ...
- GoodSync 数据自动同步备份工具VS傲梅轻松备份系统数据备份工具 哪款更好?
备份和同步软件的使用越来越广泛,因为在这个数据驱动的时代,数据的备份和恢复非常重要.在这里我想向大家推荐两款备份和同步软件--GoodSync和傲梅轻松备份. GoodSync是一款备份和同步软件,它 ...
- 苹果电脑数据备份和数据恢复方法+时间机器
苹果电脑在Leopard操作系统中自带了一个叫时间机器(Time Machine)的软件,用于数据备份和恢复.既然70-80%的用户都不做备份,为什么苹果要在Leopard中隆重推出时间机器这个新功能 ...
- Linux下的数据备份工具rsync
Linux下的数据备份工具很多,用得最多的是rsyns(远程同步) 同步远程数据类似scp 同步本地数据类似cp root@ip-172-31-8-212:~# rsync /etc/passwd / ...
- Linux数据备份工具
一.rsync数据备份工具 1.rsync工具简介 rsync是Linux系统下的数据镜像备份工具,通过rsync可以将本地系统数据通过网络备份到任何远程主机上. rsync有如下特性: 可以镜像保存 ...
- Python中的数据可视化工具与方法——常用的数据分析包numpy、pandas、statistics的理解实现和可视化工具matplotlib的使用
Python中的数据可视化工具与方法 本文主要总结了: 1.本人在初学python时对常用的数据分析包numpy.pandas.statistics的学习理解以及简单的实例实现 2.可视化工具matp ...
- 服务器怎么拷贝文件夹下,Syncovery(数据备份工具)如何在windows下远程访问服务器批量拷贝文件?Syncovery图文教...
Syncovery是一款数据备份工具,能够在pc.mac.服务器.在线存储空间之间同步,并自带FTP,是一款灵活的同步备份工具,并同步Mac电脑,服务器,笔记本电脑,以及在线存储空间,一起来看看具体的 ...
- InfluxDB数据备份和恢复方法,支持本地和远程备份
本文属于< InfluxDB系列教程>文章系列,该系列共包括以下 17 部分: InfluxDB学习之InfluxDB的基本概念 InfluxDB学习之InfluxDB的基本操作 Infl ...
最新文章
- 在Linux上利用python获取本机ip
- AI时代竟有智能化鸿沟,具备哪些条件才能跨过?
- python 的String,集合(List,元组,Dict)
- 云盒子企业网盘入驻阿里云市场,正式向公有云市场发力!
- phpcms漏洞总结
- ORACLE EBS 多账套总结
- Matlab 常用语法速记 1
- AIR文件操作(三):使用FileStream对象读写文件
- 目录与文件的权限意义
- FragmentActivity和Activity的区别
- 图片怎样把背景去掉?怎么把图片背景透明?
- 基于php考试系统设计与实现研究文毕业设计(论文)学生中期检查,毕业设计(论文)中期检查报告(学生填写)...
- springboot获取properties文件的配置内容(转载)
- 软考系统集成项目管理工程师全真模拟题
- The word 'XXX' is not correctly spelled
- 广东未来科技|民族科技助力立体显示终端产业集群崛起
- 后端开发规范(持续更新中...)
- 春节无法回家,为中国残疾人联合会春晚文字直播活动、为全国聋人朋友提供网络软件技术服务...
- 如何快速上线、部署javaweb项目
- (一)互联智能车载终端系统,介绍,构思,搭建
热门文章
- scl语言用plc脉冲做定时器_scl语言用plc脉冲做定时器_西门子PLC SCL语言开发学习笔记(二)...
- 春运抢火车票攻略汇总(持续更新中)
- 100%可用的总裁主题授权版 WordPress付费资源素材下载主题
- (白光LED显色性)计算白光LED的显色指数(CRI)数据异常,色质指数CQS来替代
- Kattis- 3D Printed Statues
- Python爬虫-豆瓣电影排行榜TOP250
- Python模块之Shapely
- Codeforces Round #739 (Div. 3) E. Polycarp and String Transformation
- 【存储知识】RAID(磁盘冗余阵列)与 LVM(逻辑卷管理器)
- 苹果电子邮件怎么注册_无需购买 iPhone,可以使用哪些苹果的优质服务?