当前位置: 首页 > news >正文

mysql实战——xtrabackup全量备份/增量备份及恢复

一、测试前准备

mysql数据库

端口3306
数据文件目录

/data/mysql/3306/data

安装目录/usr/lcoal/mysql
配置文件/etc/my.cnf

创建数据库

testXtra 

创建备份目录

备份目录/data/backup/
备份恢复数据文件目录/data/mysql/3307/data
备份恢复配置文件/etc/my_3307.cnf

 二、开始测试

1、全量备份数据库

命令:

xtrabackup --user=root --password=mysql --backup --parallel=10 --target-dir=/data/backup/full

2、全量备份恢复(先准备,再恢复)

(1)准备

xtrabackup --prepare --use-memory=2G --target-dir=/data/backup/full

(2)恢复

恢复的机器必须有my.cnf配置文件,再配置文件中配置好datadir目录即数据问目录,数据目录也必须为空,若不为空则会报错。

测试在本机恢复

vi my_3307.cnf

[client]
socket=/data/mysql/3307/data/mysql.sock

[mysqld]
basedir=/usr/local/mysql
datadir=/data/mysql/3307/data
user=mysql
port=3307
socket=/data/mysql/3307/data/mysql.sock
log_error=/data/mysql/3307/data/mysqld.err
log_timestamps=system
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd

[mysqld_safe]
log-error=/data/mysql/3307/data/mysqld.err
pid-file=/data/mysql/3307/data/mysqld.pid

#
# include all files from the config directory
#
!includedir /etc/my.cnf.d

恢复命令

 xtrabackup --defaults-file=/etc/my_3307.cnf --copy-back --parallel=10 --target-dir=/data/backup/full

(3)授权

 chown -R mysql.mysql /data/mysql/3307/data 

(4)启动数据库实例

mysqld_safe --defaults-file=/etc/my_3307.cnf & 

(5)grep mysql

(6)查看备份文件

三、增量备份

 1、先全量备份

xtrabackup --user=root --password=mysql --backup --target-dir=/data/backup/base

 2、全量备份之后增加些数据

3、第一次增量备份

增量备份需要获取全量备份的to_lsn。

(1)查看全量备份的to_lsn

 cd /data/backup/base

cat xtrabackup_checkpoints

如上图to_lsn=18374406

(2)第一次增量备份的命令

xtrabackup --user=root --password=mysql --backup --target-dir=/data/backup/inc4 --incremental-lsn=18374406

可以看到inc4是第一次增量备份生成的文件

(3)检查下备份文件是否有新增的数据文件

可以看到test2表空间 

4、第二次增量备份

(1)添加些数据

(2)查看第一次增量备份文件的to_lsn

(3)第二次增量备份的命令

xtrabackup --user=root --password=mysql --backup --target-dir=/data/backup/inc5 --incremental-lsn=18411278 

5、增量备份恢复步骤

(1) 全量备份准备

xtrabackup --prepare --apply-log-only --target-dir=/data/backup/base

(2)第一次增量备份准备

 xtrabackup --prepare --apply-log-only --target-dir=/data/backup/base --incremental-dir=/data/backup/inc4

 (3)第二次增量备份准备

xtrabackup --prepare --target-dir=/data/backup/base --incremental-dir=/data/backup/inc5

(4)修改配置文件

vi /etc/my_3307.cnf

[client]
socket=/data/mysql/3307/data/mysql.sock

[mysqld]
basedir=/usr/local/mysql
datadir=/data/mysql/3307/data
user=mysql
port=3307
socket=/data/mysql/3307/data/mysql.sock
log_error=/data/mysql/3307/data/mysqld.err
log_timestamps=system
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd

[mysqld_safe]
log-error=/data/mysql/3307/data/mysqld.err
pid-file=/data/mysql/3307/data/mysqld.pid

#
# include all files from the config directory
#
!includedir /etc/my.cnf.d

(5)恢复命令

xtrabackup --defaults-file=/etc/my_3307.cnf --copy-back --target-dir=/data/backup/base

(6)检查备份的数据文件 

可以看到第一次增量备份后新增的表空间被恢复了。

(7)启动备份的数据库实例

(8)grep mysql

(9)登录数据库实例

相关文章:

  • 机械产品3d模型网站让您的展示内容更加易于分享和传播
  • 大模型基础知识
  • 记录一次安装k8s初始化失败
  • 介绍下 npm 模块安装机制,为什么输入 npm install 就可以自动安装对应的模块
  • Docker 入门版
  • jdk8中元空间是否会触发GC
  • GitLab的原理及应用详解(四)
  • 打造坦克游戏:类方法的深入解析
  • 【ARMv7-A】——ATPCS(ARM-Thumb 过程调用标准)
  • 邦注科技三机一体除湿干燥机在工业中的应用
  • 达梦数据库登报测评命令
  • 适合下班做的副业兼职、1天挣300,7天涨粉2万
  • HTML5和CSS3的新特性
  • K8s集群中的Pod调度约束亲和性与反亲和性
  • 分布式事务解决方案(最终一致性【可靠消息解决方案】)
  • 《Javascript数据结构和算法》笔记-「字典和散列表」
  • 【面试系列】之二:关于js原型
  • 【跃迁之路】【477天】刻意练习系列236(2018.05.28)
  • Date型的使用
  • JWT究竟是什么呢?
  • Laravel核心解读--Facades
  • Mysql优化
  • Python代码面试必读 - Data Structures and Algorithms in Python
  • SQLServer之创建显式事务
  • 前端技术周刊 2018-12-10:前端自动化测试
  • 微信支付JSAPI,实测!终极方案
  • 小李飞刀:SQL题目刷起来!
  • 应用生命周期终极 DevOps 工具包
  • 06-01 点餐小程序前台界面搭建
  • ​什么是bug?bug的源头在哪里?
  • #if #elif #endif
  • $.ajax中的eval及dataType
  • $forceUpdate()函数
  • $GOPATH/go.mod exists but should not goland
  • (007)XHTML文档之标题——h1~h6
  • (2024,Flag-DiT,文本引导的多模态生成,SR,统一的标记化,RoPE、RMSNorm 和流匹配)Lumina-T2X
  • (ctrl.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MDd_DynamicDebug”不匹配值“
  • (阿里云万网)-域名注册购买实名流程
  • (二)PySpark3:SparkSQL编程
  • (附源码)ssm高校社团管理系统 毕业设计 234162
  • (附源码)计算机毕业设计ssm本地美食推荐平台
  • (教学思路 C#之类三)方法参数类型(ref、out、parmas)
  • (四十一)大数据实战——spark的yarn模式生产环境部署
  • .Net 代码性能 - (1)
  • .NETCORE 开发登录接口MFA谷歌多因子身份验证
  • .NET编程——利用C#调用海康机器人工业相机SDK实现回调取图与软触发取图【含免费源码】
  • @data注解_SpringBoot 使用WebSocket打造在线聊天室(基于注解)
  • @RequestMapping 的作用是什么?
  • [202209]mysql8.0 双主集群搭建 亲测可用
  • [4.9福建四校联考]
  • [Algorithm][综合训练][kotori和气球][体操队形][二叉树中的最大路径和]详细讲解
  • [BZOJ] 2044: 三维导弹拦截
  • [C++][opencv]基于opencv实现photoshop算法可选颜色调整
  • [C++]高精度 bign (重载运算符版本)
  • [C语言]编译和链接