使用innobackupex完成数据增量备份及恢复的步骤

1. 规划备份目录及配置及my.cnf

mkdir /backup/mysql/full

mkdir /backup/mysql/daily1

mkdir /backup/mysql/daily2

2. 全备:

innobackupex --user=root --password=yhw0715/backup/mysql/full

查看备份完成后的文件:

shell > ls –l /backup/mysql/full

drwxr-x---. 27 root root 4096 Jun  8 20:48   2017-06-08_20-48-23 #在全备目录下会生成以当前日期为命名的文件夹

备份的文件:

shell > ls –l /backup/mysql/full/2017-06-08_20-48-23

drwxr-x---. 2 root root   4096Jun   8 20:48 test

-rw-r-----. 1 root root     722 Jun  8 20:48 ib_buffer_pool

-rw-r-----. 1 root root 79691776 Jun  8 21:07 ibdata1

-rw-r-----. 1 root root 50331648 Jun  8 21:07 ib_logfile0

-rw-r-----. 1 root root 50331648 Jun  8 21:07 ib_logfile1

-rw-r-----. 1 root root 12582912 Jun  8 21:07 ibtmp1

drwxr-x---. 2 root root    4096 Jun 8 20:48 mysql

drwxr-x---. 2 root root    4096 Jun 8 20:48 performance_schema

-rw-r-----. 1 root root      412 Jun 8 20:48 backup-my.cnf

-rw-r-----. 1 root root       24 Jun 8 20:48 xtrabackup_binlog_info

-rw-r--r--. 1 root root       24 Jun 8 21:07 xtrabackup_binlog_pos_innodb

-rw-r-----. 1 root root      115 Jun 8 21:07 xtrabackup_checkpoints

-rw-r-----. 1 root root      479 Jun 8 20:48 xtrabackup_info

-rw-r-----. 1 root root  8388608 Jun 8 21:07 xtrabackup_logfile

其中:

xtrabackup_binlog_info 记录当前备份结束时的binlog文件名及position,用于日后基于binlog日志恢复如mysqlbinlog –start-position=154 binlog.000001|mysql –uroot -p。

xtrabackup_binlog_pos_innodb : 没太搞明白与xtrabackup_binlog_info的区别

xtrabackup_checkpoints 记录备份完成时的LSN号,用于增量备份时基于此LSN进行检查

xtrabackup_info(记录备份过程的一些信息及binlog位置信息):

uuid = 82aa52a6-4cc6-11e7-bf24-000c29373cd3

name =

tool_name = innobackupex

tool_command = --user=root --password=.../backup/mysql/full/

tool_version = 2.4.1

ibbackup_version = 2.4.1

server_version = 5.7.17-log

start_time = 2017-06-08 20:48:24

end_time = 2017-06-08 20:48:33

lock_time = 0

binlog_pos = filename‘slave-binlog.000001‘, position ‘154‘

innodb_from_lsn = 0

innodb_to_lsn = 10490958

partial = N

incremental = N

format = file

compact = N

compressed = N

encrypted = N

xtrabackup_logfile在备份开始后,首先会记录当前的LSN,xtrabackup会开启一个监控线程,用于监控redo log的变化(因在是热备,可能会产生一些增量的数据),在备份结束后,将产生的redo log备份到xtrabackup_logfile中。在恢复将xtrabackup_logfile日志进行重做,以达到数据备份的一致性。

3. 增量备份

首先插入一些测试数据insert into test values(‘a6’);

增量1:

innobackupex --user=root --password=yhw0715--incremental-basedir=/backup/mysql/full/2017-06-07_23-04-50 --incremental/backup/mysql/daily1

再插入一些测试数据insert into test values(‘a6’);

增量2:

innobackupex --user=root --password=yhw0715--incremental-basedir=/backup/mysql/daily1/2017-06-07_23-13-23/ --incremental/backup/mysql/daily2

4. 恢复全备

innobackupex --user=root --password=yhw0715--apply-log --redo-only /backup/mysql/full/2017-06-07_23-04-50

恢复增量1:

innobackupex --user=root --password=yhw0715--apply-log --redo-only /backup/mysql/full/2017-06-07_23-04-50--incremental-dir=/backup/mysql/daily1/2017-06-07_23-13-23/

恢复增量2(不需要加--redo-only):

innobackupex --user=root --password=yhw0715--apply-log /backup/mysql/full/2017-06-07_23-04-50--incremental-dir=/backup/mysql/daily2/2017-06-07_23-20-31

将合并完的数据,整体做一次apply-log

innobackupex --user=root --password=yhw0715--apply-log /backup/mysql/full/2017-06-07_23-04-50

5. 拷贝备份文件到data目录下:

5.1.stop mysqld

/etc/init.d/mysqld stop

5.2.备份原数据目录

mv /usr/local/mysql/data/usr/local/mysql/data_bak

5.3.创建data目录

mkdir /usr/local/mysql/data -p

5.4.拷贝备份到/usr/local/mysql/data下

innobackupex --user=root --password=yhw0715--copy-back /backup/mysql/full/2017-06-07_23-04-50

5.5.设置权限

chown -R mysql:mysql /usr/local/mysql/data

5.6.启动mysqld

/etc/init.d/mysqld start

6. 测试是否恢复成功

从以下查询结果看,数据恢复成功了

mysql> select * from test where account=‘a5‘ or account=‘a6‘;

+---------+

| Account |

+---------+

| a5     |

| a6     |

+---------+

2 rows in set (0.00 sec)

7. innobackupex主要参数说明

--user 备份数据库的用户名

--password 备份用户密码

--default-file 备份时指定my.cnf文件路径,如果未指定默认/etc/my.cnf

--apply-log 对xtrabackup 的 –prepare参数的封装

--redo-only 与apply-log 一起使用,在做备份恢复阶段,重做日志时,只重做已提交日志,rollback未提交的日志。

--copy-back 做数据恢复时,将数据文件拷贝到时mysql的data目录下。

--use-memory 在做恢复操作时,控制innodb实例使用的内存量。

--slave-info 主要用于基于现有的从库,增加多个从库的场景时使用,如果带上此参数,备份目录下会多一个xtrabackup_slave_info文件,文件内容保存现有从库的主从信息,binlog文件及position,用于新从库与主库change master to 时使用。

时间: 2025-01-02 01:14:27

使用innobackupex完成数据增量备份及恢复的步骤的相关文章

xtrabackup之Innobackupex增量备份及恢复

演示增量备份 #启动一个全备 innobackupex > --defaults-file=/mysql/mysqldata/3306/my.cnf > --host=127.0.0.1 > --user=xtrabk > --password='onlybackup' /mysql/mysqldata/backup/ ............ 160527 05:47:55 innobackupex: completed OK! [[email protected] mysqld

Xtrabackup 增量备份、恢复、原理

整合了网上的一些资料,结合自己的理解,并进行了实验验证 理解一: 1,Xtrabackup是什么 Xtrabackup是一个对InnoDB做数据备份的工具,支持在线热备份(备份时不影响数据读写),是商业备份工具InnoDB Hotbackup的一个很好的替代品. Xtrabackup有两个主要的工具:xtrabackup.innobackupex (1).xtrabackup只能备份InnoDB和XtraDB两种数据表,而不能备份MyISAM数据表 (2). innobackupex是参考了In

xtrabackup完全备份增量备份以及恢复

一.安装 1.配置Yum源 rpm -Uhv http://www.percona.com/downloads/percona-release/percona-release-0.0-1.x86_64.rpm 2.安装 yum install xtrabackup -y 二.修改Mysql主配置文件 my.cnf(根据编译安装的参数进行设置,RPM安装可省略) [mysqld] datadir=/data/mysqldb basedir=/usr/local/mysql/ 三.开始备份 1.完全

【mysql】使用xtrabackup在线增量备份及恢复l数据库

一.介绍 1.Xtrabackup有这么几个文件 innobackupex innobackupex 是xtrabackup的一个符号链接 . innobackupex still supports all features and syntax as 2.2 version did, but is now deprecated and will be removed in next major release. xtrabackup 一个由C编译而来的二进制文件,可以整备MySQL datab

Xtrabackup增量备份、恢复以及时间点恢复

1.记录当前的status信息 | master.000001 |      120 | 2.制作一个完整的备份文件 # innobackupex /backup 备份的文件:/backup/2016-11-16_16-18-54 查看其status信息 # cat xtrabackup_binlog_info master.000001 120 # 3.修改数据库信息以使得status发生变化 比如:创建了一个表tb1,并插入2条记录 mysql> select * from tb1 ; +-

xtrabackup 全备份,增量备份,恢复 mysql数据库

Xtrabackup使用指南 InnoDB数据备份工具 Xtrabackup是一个对InnoDB做数据备份的工具,支持在线热备份(备份时不影响数据读写,也就是不加锁),是商业备份工具InnoDB Hotbackup的一个很好的替代品 一.Xtrabackup介绍  A.Xtrabackup是什么 Xtrabackup是一个对InnoDB做数据备份的工具,支持在线热备份(备份时不影响数据读写),是商业备份工具InnoDB Hotbackup的一个很好的替代品. Xtrabackup有两个主要的工具

MySQL学习笔记之七:数据的备份和恢复

我们知道,数据是一个企业IT架构的核心,为了防止因某些意外原因造成数据遗失或其它一些特殊目的,在平时对数据做好备份尤其重要. 一.为什么要备份 1.灾难恢复:硬件故障.软件故障.自然灾害.黑客攻击.误操作等 2.审计:有时需要知道数据在过去某个时间点是什么样的 3.测试:一个最简单的其于实际数据来测试的方法是,定期用最新的生产环境数据更新测试服务器,只要把备份文件还原到测试服务器即可 二.备份和恢复需要注意的要点 1.可容忍丢失多少数据 2.恢复需要在多长时间内完成 3.需要恢复什么 三.备份类

MySQL备份与恢复之percona-xtrabackup实现增量备份及恢复 实例

innobackupex 的使用方法1.完全备份 参数一是完全备份地址 完全备份到/data/mysql/back_up/all_testdb_20140612 目录下innobackupex --user=root --password=123456 --no-timestamp /data/mysql/back_up/all_testdb_20140612现在完整备份的目录为/data/mysql/back_up/all_testdb_201406122.增量备份第一次sh incremen

mysqlbinlog 增量备份和恢复

增量备份 cp /var/lib/mysql/mysql-bin* /tmp/ 备份myblog数据库,清除增量备份里面的有关myblog的数据 mysqldump --flush-logs -uroot -p han >/tmp/myblog.sql 备份所有数据库,清除增量备份 mysqldump --flush-logs -u root -p --all-databases >/tmp.all.sql 查看指定时间的binlog内容 ysqlbinlog --start-date=&qu