利用xtrabackup8完全,增量备份及还原MySQL8
利用xtrabackup8完全,增量备份及还原MySQL8
1、环境准备
| 服务器 | 作用 | 数据库版本 | xtrabackup版本 |
|---|---|---|---|
| 10.0.0.8 | 数据备份 | mysql8.0.26 | 8.0.28 |
| 10.0.0.18 | 数据还原 | mysql8.0.26 | 8.0.28 |
2、备份
[root@rocky8 ~]# ls
anaconda-ks.cfg percona-xtrabackup-80-8.0.28-20.1.el8.x86_64.rpm
[root@rocky8 ~]# yum install -y percona-xtrabackup-80-8.0.28-20.1.el8.x86_64.rpm
[root@rocky8 ~]# mkdir /data/backup
[root@rocky8 ~]# systemctl start mysqld.service
[root@rocky8 ~]# xtrabackup --backup --target-dir=/data/backup/base #完全备份
[root@rocky8 ~]# rz hellodb_innodb.sql
[root@rocky8 ~]# mysql < hellodb_innodb.sql #修改数据
[root@rocky8 ~]# mysql
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| hellodb |
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
mysql> insert students(name,age)values('wang',20); #修改数据
[root@rocky8 ~]# xtrabackup --backup --target-dir=/data/backup/inc1 --incremental-basedir=/data/backup/base #第一次增量备份
[root@rocky8 ~]# mysql
mysql> insert students(name,age)values('jack',22); #第二次修改数据
[root@rocky8 ~]# xtrabackup --backup --target-dir=/data/backup/inc2 --incremental-basedir=/data/backup/inc1 #第二次增量备份
[root@rocky8 ~]# du -sh /data/backup/* #观察目录文件的大小
70M /data/backup/base
4.9M /data/backup/inc1
2.0M /data/backup/inc2
[root@rocky8 ~]# scp -r /data/backup/* root@10.0.0.28:/data/backup/ #拷贝到远程主机
[root@rocky ~]# cd /data/backup #远程主机查看拷贝过来生成的三个文件
[root@rocky backup]# ls
base inc1 inc2
3、还原
# 还原机操作:
[root@rocky ~]# yum install -y percona-xtrabackup-80-8.0.28-20.1.el8.x86_64.rpm
##预准备完成备份,此选项--apply-log-only 阻止回滚未完成的事务
[root@rocky ~]# xtrabackup --prepare --apply-log-only --target-dir=/data/backup/base
#合并第1次增量备份到完全备份
[root@rocky ~]# xtrabackup --prepare --apply-log-only --target-dir=/data/backup/base --incremental-dir=/data/backup/inc1
######## 合并第2次增量备份到完全备份:最后一次还原不需要加选项--apply-log-only #########
[root@rocky ~]# xtrabackup --prepare --target-dir=/data/backup/base --incremental-dir=/data/backup/inc2
[root@rocky ~]# systemctl stop mysqld
[root@rocky ~]# cd /data/backup/base/
[root@rocky base]# xtrabackup --copy-back --target-dir=/data/backup/base #执行这一步需要进入到备份目录下,也就是base目录下,要不然会报找不到备份文件 #或者执行下面操作也可以
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[root@centos ~]#cp -r /backup/base/* /var/lib/mysql #执行了上边命令就不用执行这一步
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[root@rocky base]# chown -R mysql. /var/lib/mysql
[root@rocky base]# systemctl start mysqld.service
#验证
[root@rocky ~]# mysql
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| hellodb |
mysql> use hellodb
mysql> select * from students;
| 26 | wang | 20 | F | NULL | NULL |
| 27 | jack | 22 | F | NULL | NULL |
利用xtrabackup8完全,增量备份及还原MySQL8的更多相关文章
- mysql 利用binlog增量备份,还原实例
mysql 利用binlog增量备份,还原实例 张映 发表于 2010-09-29 分类目录: mysql 标签:binlog, mysql, mysqldump, 增量备份 一,什么是增量备份 增量 ...
- Mysql性能优化三(分表、增量备份、还原)
接上篇Mysql性能优化二 对表进行水平划分 如果一个表的记录数太多了,比如上千万条,而且需要经常检索,那么我们就有必要化整为零了.如果我拆成100个表,那么每个表只有10万条记录.当然这需要数据在逻 ...
- 通过innobackupex实现对MySQL的增量备份与还原
备份 增量备份是基于完整备份的,所以我们需要先做一次完整备份: innobackupex --password=test /backup/ 备注:test是我的MySQL服务的root用户的密码,/b ...
- 瞧一瞧!这儿实现了MongoDB的增量备份与还原(含部署代码)
一 需求描述 我们知道数据是公司的重要资产,业务的系统化.信息化就是数字化.数据高效的存储与查询是系统完善和优化的方向,而数据库的稳定性.可靠性是实现的基础.高可用和RPO(RecoveryPoint ...
- Xtrabackup 全备和还原以及增量备份和还原
目录 MySQL环境介绍 全备和还原 准备备份目录 创建测试数据 全量备份 模拟删除数据 还原数据操作 第一步 备份备份文件 第二步 关闭数据库 第三步 移除数据库的data目录 第四步 恢复前准备 ...
- Mysql大数据备份和增量备份及还原
目前主流的有两个工具可以实现物理热备:ibbackup和xtrabackup ;ibbackup是需要授权价格昂贵,而xtrabackup功能比ibbackup强大而且是开源的 Xtrabackup提 ...
- innobackupex实现对MySQL的增量备份与还原
备份增量备份是基于完整备份的,所以我们需要先做一次完整备份: innobackupex --defaults-file=/etc/my.cnf --user root --password cheng ...
- MySQL 利用xtrabackup进行增量备份详细过程汇总 (转)
Xtrabackup下载.安装以及全量备份请参考:http://blog.itpub.net/26230597/viewspace-1465772/ 1,创建mysql备份用户 mysql -uroo ...
- linux下利用ruby做系统备份与还原
啥都不说了,都在代码里 :) #!/usr/bin/ruby BAK_PATH = "/media/backup.tar.xz" def to_backup exclude_fil ...
随机推荐
- 深入理解Spring事件机制(一):广播器与监听器的初始化
前言 Spring 从 3.x 开始支持事件机制.在 Spring 的事件机制中,我们可以令一个事件类继承 ApplicationEvent 类,然后将实现了 ApplicationListener ...
- 杀死 Windows 某个端口
进入终端命令行,输入netstat -aon|findstr 3000查找端口号所对应的 PID: 输入指令taskkill /pid 20348 /f:
- Python自动化测试之文件操作
1.读.写.追加文件 读:打开文件 r 读写:r+ 写:w 可写不可读 清空原文件 写读:w+ 清空文件 追加:a+ 可以读写,文件不存在自动创建 练习读txt文件类容: #-*- c ...
- spring-aop-事务-注解开发-代理
1.spring + mybatis: Aop流程: 提前定义好几个用于Aop的类 前置通知:新建MyBeForeAdvice类 实现 MethodBeforeAdvice,并实现其方法 后置通知:新 ...
- Docker 拉取Nginx镜像 和运行
Docker 镜像拉取 docker pull [OPTIONS] NAME[:TAG|@DIGEST] 镜像拉取命令 OPTIONS说明: -a :拉取所有 tagged 镜像 --disable- ...
- 大家都能看得懂的源码之ahooks useInfiniteScroll
本文是深入浅出 ahooks 源码系列文章的第十七篇,该系列已整理成文档-地址.觉得还不错,给个 star 支持一下哈,Thanks. 简介 useInfiniteScroll 封装了常见的无限滚动逻 ...
- 【读书笔记】C#高级编程 第三章 对象和类型
(一)类和结构 类和结构实际上都是创建对象的模板,每个对象都包含数据,并提供了处理和访问数据的方法. 类和结构的区别:内存中的存储方式.访问方式(类是存储在堆上的引用类型,结构是存储在栈的值类型)和它 ...
- [LeetCode]-217.存在重复元素-简单
217. 存在重复元素 给定一个整数数组,判断是否存在重复元素. 如果存在一值在数组中出现至少两次,函数返回 true .如果数组中每个元素都不相同,则返回 false . 示例 1: 输入: [1, ...
- 《Java基础——线程类》
Java基础--线程类 一.线程的创建之Thread类: 规则: 通过声明一个新类作为子类继承 Thread 类,并复写 run() 方法,就可以启动新线程并执行自己定义的 run()方法 ...
- 使用 systemd 定时器代替 cron 作业
转载自:https://mp.weixin.qq.com/s/HpDVp1sNYve8b7OdoHdGNw 创建一个定时器 首先,创建一个运行基础东西的简单的服务,例如 free 命令.举个例子,你可 ...