Mysql增量备份与恢复

1.练习数据增量备份

增量备份:备份上次备份后,新产生的数据。

PERCONA Xtrabackup是一款强大的在线热备份工具,备份过程中不锁库表,适合生产环境。支持完全备份与恢复、增量备份与恢复、差异备份与恢复。

bash 复制代码
安装Xtrabackup
150、151主机均操作安装
[root@mysql151 ~]# wget https://downloads.percona.com/downloads/Percona-XtraBackup-8.0/Percona-XtraBackup-8.0.35-33/binary/redhat/8/x86_64/percona-xtrabackup-80-8.0.35-33.1.el8.x86_64.rpm?_gl=1*xsf375*_gcl_au*MTQ3NTE4MjI2MC4xNzQ2MDI1MjYy
[root@mysql151 ~]# yum install -y zstd perl-DBD-MySQL
[root@mysql151 ~]# rpm -ivh percona-xtrabackup-80-8.0.35-33.1.el8.x86_64.rpm 

在mysql150主机 完成增量备份练习

对数据做增量备份前,必须先有一次备份,也就是首次备份,通常首次备份备份所有数据;比如每周周一完全备份,每周周二到周日增量备份。

bash 复制代码
周一完全备份(备份所有数据)
[root@mysql150 ~]# xtrabackup --host=127.0.0.1 --user=root --password=123456 --backup --target-dir=/fullbak --datadir=/var/lib/mysql
[root@mysql150 ~]# ls /fullbak/
backup-my.cnf  binlog.index    ibdata1  mysql.ibd           sys   test2     undo_002                xtrabackup_checkpoints  xtrabackup_logfile
binlog.000002  ib_buffer_pool  mysql    performance_schema  test  undo_001  xtrabackup_binlog_info  xtrabackup_info         xtrabackup_tablespaces
单独开个页面 用于插入新数据 
[root@mysql150 mysql]# mysql -uroot -p123456 
mysql> insert into test.one values ('测试1',11,'女');


周二增量备份(备份周一备份后新产生的数据)
[root@mysql150 ~]# xtrabackup --host=127.0.0.1 --user=root --password=123456 --backup --target-dir=/new2 --incremental-basedir=/fullbak --datadir=/var/lib/mysql
插入新数据
mysql> insert into test.one values ('测试2',11,'女');

周三增量备份(备份周二备份后新产生的数据)
[root@mysql150 ~]# xtrabackup --host=127.0.0.1 --user=root --password=123456 --backup --target-dir=/new3 --incremental-basedir=/new2  --datadir=/var/lib/mysql
插入新数据
mysql> insert into test.one values ('测试3',11,'女');

周四增量备份(备份周三备份后新产生的数据)
[root@mysql150 ~]# xtrabackup --host=127.0.0.1 --user=root --password=123456 --backup --target-dir=/new4 --incremental-dir=/new3  --datadir=/var/lib/mysql

2.练习数据增量恢复

增量恢复数据步骤:

  1. 准备恢复数据
  2. 合并数据
  3. 清空数据库目录
  4. 拷贝数据
  5. 修改数据库目录所有者/组用户为mysql
  6. 重启数据库服务

具体操作如下:

bash 复制代码
把MySQL150主机的备份文件拷贝给mysql151
[root@mysql150 ~]# ls /|grep new
new2
new3
new4
new5
new6
new7
[root@mysql150 ~]# ls /|grep fullbak
fullbak
[root@mysql150 ~]# scp -r /new* root@192.168.10.151:/opt
[root@mysql150 ~]# scp -r /fullbak* root@192.168.10.151:/opt

在MySQL51主机使用备份文件恢复数据
1)、准备恢复数据
[root@mysql151 ~]# xtrabackup --prepare --apply-log-only --target-dir=/opt/fullbak
2)、合并数据
//将周二的增量数据拷贝到周一备份目录里,合并后周一的目录里存放的是
周一 + 周二 的数据
[root@mysql151 ~]# xtrabackup --prepare --apply-log-only --target-dir=/opt/fullbak --incremental-dir=/opt/new2
//将周三的增量数据拷贝到周一备份目录里,合并后周一的目录里存放的是
周一 + 周二 + 周三 的数据
[root@mysql151 ~]# xtrabackup --prepare --apply-log-only --target-dir=/opt/fullbak --incremental-dir=/opt/new3

清空数据库目录

[root@mysql151 ~]# rm -rf /var/lib/mysql/*
[root@mysql151 ~]# xtrabackup --prepare --target-dir=/opt/fullbak
拷贝数据
[root@mysql151 ~]# xtrabackup --copy-back --target-dir=/opt/fullbak
修改数据库目录所有者/组用户为mysql
[root@mysql151 ~]# chown -R mysql:mysql /var/lib/mysql
重启数据库服务
[root@mysql51 ~]# systemctl  restart  mysqld
[root@mysql151 ~]# mysql -uroot -p123456
mysql> select * from test.one;
+---------+------+------+
| name    | age  | sex  |
+---------+------+------+
| 测试    |   10 | 男   |
| 测试1   |   11 | 女   |
| 测试2   |   11 | 女   |
+---------+------+------+
3 rows in set (0.01 sec)
相关推荐
xiao-xiang4 小时前
redis-保姆级配置详解
数据库·redis
白鹭6 小时前
MySQL(多表查询练习)
数据库·mysql
xiao-xiang10 小时前
redis-sentinel基础概念及部署
数据库·redis·sentinel
AI 嗯啦10 小时前
SQL详细语法教程(三)mysql的函数知识
android·开发语言·数据库·python·sql·mysql
时序数据说11 小时前
国内时序数据库概览
大数据·数据库·物联网·时序数据库·iotdb
杰克尼11 小时前
mysql-条件查询案例
数据库·mysql
你那是什么调调13 小时前
`SHOW PROCESSLIST;` 返回列详解(含义 + 单位)
mysql
运维行者_14 小时前
使用Applications Manager进行 Apache Solr 监控
运维·网络·数据库·网络安全·云计算·apache·solr
云心雨禅15 小时前
网站突然崩了,此站点遇到了致命错误!
服务器·mysql