• ADADADADAD

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

    mysql数据库 时间:2024-12-25 09:58:05

    作者:文/会员上传

    简介:

    使用innobackupex完成数据增量备份及恢复的步骤
    1. 规划备份目录及配置及my.cnfmkdir /backup/mysql/fullmkdir /backup/mysql/daily1mkdir /backup/mysql/daily22. 全备:inn

    以下为本文的正文内容,内容仅供参考!本站为公益性网站,复制本文以及下载DOC文档全部免费。

    使用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 Jun8 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 Jun8 20:48 mysql

    drwxr-x---. 2 root root 4096 Jun8 20:48 performance_schema

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

    -rw-r-----. 1 root root 24 Jun8 20:48 xtrabackup_binlog_info

    -rw-r--r--. 1 root root 24 Jun8 21:07 xtrabackup_binlog_pos_innodb

    -rw-r-----. 1 root root 115 Jun8 21:07 xtrabackup_checkpoints

    -rw-r-----. 1 root root 479 Jun8 20:48 xtrabackup_info

    -rw-r-----. 1 root root 8388608 Jun8 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 时使用。


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

    将本文的Word文档下载到电脑

    推荐度:

    下载
    热门标签: xtrabackup