1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > MYSQL数据库备份实战之xtrabackup(增量备份/差异备份)

MYSQL数据库备份实战之xtrabackup(增量备份/差异备份)

时间:2020-11-15 22:29:45

相关推荐

MYSQL数据库备份实战之xtrabackup(增量备份/差异备份)

xtrabackup

Percona

官网:

percona-server

InnoDB --> XtraDB

Xtrabackup

percona提供的mysql数据库备份工具,惟一开源的能够对innodb和xtradb数据库进行热备的工具

手册:/doc/percona-xtrabackup/LATEST/index.html

特点:

备份还原过程快速、可靠

备份过程不会打断正在执行的事务

能够基于压缩等功能节约磁盘空间和流量

自动实现备份检验

开源,免费

*由于前几天发过有mysql的安装教程这里就不解释那么多了*

安装xtrabackup

这里我们使用yum安装

yum install /yum/percona-release-latest.noarch.rpmyum -y install percona-xtrabackup-24.x86_64

安装成功后查看一下是否完成

rpm -ql percona-xtrabackup-24

备份方式有两种

1.增量备份:每次仅备份自上一次备份(注意是上一次,不是第一次)以来有变化的文件,所 以备份体积小,备份速度快,但是恢复的时候,需要按备份时间顺序,逐个备份版本进行恢复,恢复时间长。

2.差量备份: 占用空间比增量备份大,比完整备份小,恢复时仅需要恢复第一个完整版本和最后 一次的差异版本(包含所有的差异),恢复速度介于完整备份和增量备份之间。

增量备份

连接数据库进行完全备份

innobackupex --user=root --password='123456' /xtrabackup/full

备份完成后查看备份结果

时隔一天我再次备份,使用增量备份

innobackupex --user=root --password='Zwl159...' --incremental /xtrabackup/full/ --incremental-basedir=/xtrabackup/full/-10-09_02-10-47/

这里发现我备份的数据比起全备来说少很多,这是因为我备份的数据是根据上次备份时的节点 开始备份的

增量备份恢复流程

模拟恢复流程 我这里停止数据库服务后 删除我的库和日志文件

systemctl stop mysqldrm -rf /var/lib/mysql/*rm -rf /var/log/mysqld.log

首先进行数据回滚合并

innobackupex --apply-log --redo-only /xtrabackup/full/-10-09_02-10-47innobackupex --apply-log --redo-only /xtrabackup/full/-10-09_02-10-47 --incremental-dir=/xtrabackup/full/-10-10_00-07-48

合并成功后 进行恢复

nnobackupex --copy-back /xtrabackup/full/-10-09_02-10-47

数据恢复成功后对数据库服务进行恢复

chown -R mysql.mysql /var/lib/mysqlsystemctl start mysqld

数据库起来后验证一下是否成功

这里为了验证了一下

我第一次全量备份插入了一个id为1的字段

第二次增量备份我插入了一个id为2的字段

现在全部恢复成功

差异备份

差异备份比较于增量备份比较好理解

每次差异备份都是和全量备份的数据进行比较 进行差异备份

首先进行全量备份

innobackupex --user=root --password='Zwl159...' /xtrabackup

全备后查看 文件是否成功备份

这里是我的全备数据,这时我要写入一些数据进行差异备份

我这里插入了几条字段

进行差异备份

innobackupex --user=root --password='Zwl159...' --incremental /xtrabackup --incremental-basedir=/xtrabackup/-10-10_00-52-53

备份后查一下

这里显示的大小就是差异的数据大小

差异备份还原

模拟恢复流程 我这里停止数据库服务后 删除我的库和日志文件

systemctl stop mysqldrm -rf /var/lib/mysql/*rm -rf /var/log/mysqld.log

首先进行数据回滚合并

innobackupex --apply-log --redo-only /xtrabackup/-10-10_00-52-53innobackupex --apply-log --redo-only /xtrabackup/-10-10_00-52-53 --incremental-dir=/xtrabackup/-10-11_00-01-39/

现在开始恢复数据

innobackupex --copy-back /xtrabackup/-10-10_00-52-53/

数据恢复成功后对数据库服务进行恢复

chown -R mysql.mysql /var/lib/mysqlsystemctl start mysqld![在这里插入图片描述](https://img-/2b03fe1d253d4c888c50b54098054140.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAWldM54ix5oqA5pyv,size_20,color_FFFFFF,t_70,g_se,x_16)这里查询 所有数据都已恢复

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。