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)
相关推荐
2401_8877245036 分钟前
CSS如何设置文字溢出显示省略号_利用text-overflowellipsis
jvm·数据库·python
m0_7478545237 分钟前
golang如何实现应用启动耗时分析_golang应用启动耗时分析实现思路
jvm·数据库·python
雪碧聊技术39 分钟前
下午题_试题二
数据库
解救女汉子1 小时前
如何截断SQL小数位数_使用TRUNCATE函数控制精度
jvm·数据库·python
2301_803875611 小时前
如何用 objectStore.get 根据主键 ID 获取数据库单条数据
jvm·数据库·python
weixin_458580121 小时前
如何修改AWR保留时间_将默认8天保留期延长至30天的设置
jvm·数据库·python
qq_654366981 小时前
C#怎么实现OAuth2.0授权_C#如何对接第三方快捷登录【核心】
jvm·数据库·python
justjinji2 小时前
如何用 CSS 变量配合 JS setProperty 实现动态换肤功能
jvm·数据库·python
2301_803875612 小时前
C#怎么使用TopLevel顶级语句 C#顶级语句怎么写如何省略Main方法简化控制台程序【语法】
jvm·数据库·python
九皇叔叔2 小时前
MySQL 8.0 测试库安装
数据库·mysql