欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 国际 > Mysql增量备份与恢复

Mysql增量备份与恢复

2025/5/22 18:09:35 来源:https://blog.csdn.net/weixin_65562581/article/details/148101593  浏览:    关键词:Mysql增量备份与恢复

1.练习数据增量备份

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

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

安装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主机 完成增量备份练习

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

周一完全备份(备份所有数据)
[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. 重启数据库服务

具体操作如下:

把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)

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词