您的位置 首页 数据库

Xtrabackup实现增量备份(恢复)实战

Xtrabackup实现增量备份(恢复)实战

xtrabackup物理备份数据时,实现增量备份原理分析:

数据备份过程参考博文:https://blog.51cto.com/u_15080021/2642159

  • 增量备份的实质是,基于上一次备份LSN变化过的数据页,进行相应的备份操作,从而可以不断实现增量备份操作;

  • 在备份同时产生的新的变更,会将redo日志信息备份;

  • 第一次增量备份时依赖于全量备份的,将来的恢复操作也要合并到全备中,再进行统一恢复;

说明:利用XPK增量备份数据,主要目的是减少频繁全备数据的时间开销,可以将每天增量的数据进行更快速的备份

 

# 增量备份准备:
[root@xiaoQ-01 ~]# mkdir /data/backup/full -p
-- 提前准备好全量备份的目录;
[root@xiaoQ-01 ~]# mkdir /data/backup/inc -p
-- 提前准备好增量备份的目录;

# 进行备份操作:
[root@xiaoQ-01 ~]# xtrabackup --defaults-file=/etc/my.cnf --host=192.168.30.101 --user=root --password=123456 --port=3306 --backup --parallel=4 --target-dir=/data/backup/full 
-- 进行全量备份操作,并且开启并发线程备份功能(--parallel=4),从而提高备份效率(建议4~8个)

mysql> create database pxb;
mysql> use pxb
mysql> create table t1(id int);
mysql> insert into t1 values(1),(2),(3);
mysql> commit;
-- 模拟登陆数据库,进行相关操作,实现增量备份的效果

[root@xiaoQ-01 ~]# xtrabackup --defaults-file=/etc/my.cnf --host=192.168.30.101 --user=root --password=123456 --port=3306 --backup --parallel=4 --target-dir=/data/backup/inc --incremental-basedir=/data/backup/full
-- 进行增量备份操作

# 可以进行继续备份操作(了解)
[root@xiaoQ-01 ~]# mkdir /data/backup/inc02 -p
-- 提前准备好增量备份的增量备份目录;

mysql> create database pxb02;
mysql> use pxb02
mysql> create table t1(id int);
mysql> insert into t1 values(1),(2),(3);
mysql> commit;
-- 模拟登陆数据库,进行相关操作,实现增量备份的效果

[root@xiaoQ-01 ~]# xtrabackup --defaults-file=/etc/my.cnf --host=192.168.30.101 --user=root --password=123456 --port=3306 --backup --parallel=4 --target-dir=/data/backup/inc02 --incremental-basedir=/data/backup/inc
-- 进行增量备份操作的下一次增量备份

Xtrabackup数据恢复方式02:增量备份恢复

模拟进行数据库数据破坏性操作:

 

[root@xiaoQ ~]# pkill mysqld
[root@xiaoQ ~]# rm -rf /data/3306/data/*
[root@xiaoQ ~]# rm -rf /data/3306/logs/*
[root@xiaoQ ~]# rm -rf /data/3306/binlog/*

进行数据库数据恢复的操作过程:

# 准备相关备份日志信息
[root@xiaoQ ~]# xtrabackup --prepare  --apply-log-only  --target-dir=/data/backup/full
-- 准备全量备份的日志;
[root@xiaoQ ~]# xtrabackup --prepare  --apply-log-only  --target-dir=/data/backup/full --incremental-dir=/data/backup/inc
-- 准备增量备份的日志,并且将增量备份合并到全量备份中;
-- apply-log-only 跳过消除(undo)阶段,只执行重做(redo)阶段,从而实现增量备份恢复
[root@xiaoQ ~]# xtrabackup --prepare  --target-dir=/data/backup/full
-- 在全量和增量数据合并后,在整体做日志信息的准备;

# 进行数据备份拷回操作
[root@xiaoQ ~]# xtrabackup --datadir=/data/3306/data --copy-back  --target-dir=/data/backup/full
或者
[root@xiaoQ ~]# xtrabackup  --copy-back  --target-dir=/data/backup/full
-- 将进行物理备份后的数据,再次进行还原恢复到备份前的目录中(拷贝回数据)

# 重新启动恢复业务功能
[root@xiaoQ ~]# chown -R mysql.mysql /data/*
[root@xiaoQ ~]# /etc/init.d/mysqld start
-- 重新设置数据目录权限,并重新启动恢复数据库业务

 

 

欢迎来撩 : 汇总all

白眉大叔

关于白眉大叔linux云计算: 白眉大叔

热门文章