使用innobackupex完成数据增量备份及恢复的步骤
admin
2023-05-18 09:41:41
0

使用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在备份开始后,首先会记录当前的LSNxtrabackup会开启一个监控线程,用于监控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 做数据恢复时,将数据文件拷贝到时mysqldata目录下。

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

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

 


相关内容

热门资讯

浙江宣传评文艺圈“塌房”:人品... 近几年来,文艺圈人品“塌房”事件屡有发生,从言行失范、私德有亏到违法犯罪,当创作者的德行有了污点,其...
伊朗看到了美国的3个软肋 全世界现在哭笑不得。刚扬言要狠狠打击伊朗,打击伊朗的能源基础设施,甚至感觉迫在眉睫、必须要打、不打不...
接连反转!特朗普透露三个信息 特朗普称美伊3日将举行谈判。美国总统特朗普当地时间8月2日,美国总统特朗普谈及伊朗时称,关于霍尔木兹...
河南深夜通报:查实作弊 针对近期备受关注的2026年河南省“三支一扶”计划招募相关舆情,河南省“三支一扶”领导小组协调办公室...
高通机器人演示翻车,DeepM... 人形机器人领域正呈现出截然不同的两面性。一端是高通(Qualcomm)机器人的尴尬演示:在展示搭载最...
小米多款主力手机涨价,店员:很... 8月2日,小米商城显示,多款手机主力机型价格上调300元至500元不等。其中,REDMI Turbo...
主持人陈璇采访《奥德赛》主创人... 诺兰新片《奥德赛》周四举行北京首映礼,上海外语频道主持人陈璇采访外籍主创人员时半蹲弯腰,背对镜头,向...
初创公司推Arm架构AI服务器... 由前谷歌和Meta工程师于2023年创立的Majestic Labs,近日发布了一款旨在挑战英伟达G...
日元跌跌不休,美国罕见出手,外... 【环球时报驻日本特约记者 王军】在日元跌至近40年来最低水平后,日本政府和日本银行连续出手干预汇市,...
特朗普再提珍珠港事件 据朝日电视台8月3日报道,美国总统特朗普表示,美国政府出手买入日元实施汇率干预,目的是帮扶日本。2日...