Mysql-Xtrabackup备份恢复

mysql,xtrabackup · 浏览次数 : 0

小编点评

**全量+3增量备份恢复** 1. **全量备份:**使用 `nohup` 命令备份 MySQL 数据。 2. **增量备份:**使用 `incremental-dir` 参数指定增量备份目录。 3. **并发备份:**使用 `parallel` 参数设置并发数量。 4. **日志记录:**创建日志文件记录备份过程。 5. **恢复:**使用 `nohup` 命令恢复备份数据。

正文

恢复准备

1、安装Xtrabackup

2、数据备份和拷贝

 恢复步骤

1、恢复全量备份
2、恢复增量备份到全量备份
注意:开始恢复的增量备份要添加--redo-only参数,最后一次增量备份去掉--redo-only参数
3、对整体的完全备份进行恢复:停库——恢复——启动库

恢复场景

 

全量备份恢复


nohup innobackupex --decompress $RESTORE_PATH/XBK_FULL_XXXX > $RESTORE_PATH/log/XBK_FULL_XXXX-decompress.log &
nohup innobackupex --apply-log $RESTORE_PATH/XBK_FULL_XXXX > $RESTORE_PATH/log/XBK_FULL_XXXX-apply-log.log &

systemctl status mysql.service
systemctl stop mysql.service
rm -rf $MYSQL_HOME/data/*

###--move-back不拷贝文件,而是移动文件到目的地,使用场景:没有足够的磁盘空间同时保留数据文件和Backup副本,并且数据文件和backup副本在同一块盘
###--copy-back:做数据恢复时将备份数据文件拷贝到MySQL服务器的datadir。
###根据不同场景使用不同参数,此处使用--move-back
nohup innobackupex --defaults-file=$MYSQL_HOME/my.cnf --move-back $RESTORE_PATH/XBK_FULL_XXXXX > $RESTORE_PATH/log/XBK_FULL_XXXX-move-back.log &

chown -R mysql:mysql $MYSQL_HOME/data/*
systemctl start mysql.service

全量+1增量备份恢复

#全量
nohup innobackupex  --decompress --parallel=6  $RESTORE_PATH/XBK_FULL_XXXX > $RESTORE_PATH/log/XBK_FULL_XXXX-decompress.log &
nohup innobackupex  --apply-log   --redo-only  $RESTORE_PATH/XBK_FULL_XXXX > $RESTORE_PATH/log/XBK_FULL_XXXX-apply-log.log &

#第一次增量
nohup innobackupex  --decompress --parallel=6 $RESTORE_PATH/XBK_INCR_XXXX1 > $RESTORE_PATH/log/XBK_INCR_XXXX1-decompress.log &
nohup innobackupex  --defaults-file=$MYSQL_HOME/my.cnf --user=username --password='XXXX'  --redo-only --apply-log  $RESTORE_PATH/XBK_FULL_XXXX --incremental-dir=$RESTORE_PATH/XBK_INCR_XXXX1 >  $RESTORE_PATH/log/XBK_INCR_XXXX1-redo-only.log&

#停止mysql和清理数据 systemctl status mysql3306.service systemctl stop mysql3306.service
rm -rf /data/app/mysql3306/data/* #恢复 nohup innobackupex --defaults-file=$MYSQL_HOME/my.cnf --copy-back $RESTORE_PATH/XBK_FULL_XXXX > $RESTORE_PATH/log/XBK_FULL_XXXX-copy-back.log &
#启动mysql
chown -R mysql:mysql $MYSQL_HOME/data/* systemctl start mysql.service

 

全量+2增量备份恢复

#全量解压
nohup innobackupex  --defaults-file=$MYSQL_HOME/my.cnf  --decompress  --parallel=8  $RESTORE_PATH/XBK_FULL_XXXX > $RESTORE_PATH/log/XBK_FULL_XXXX-decompress.log &
nohup innobackupex  --defaults-file=$MYSQL_HOME/my.cnf  --apply-log   --redo-only   $RESTORE_PATH/XBK_FULL_XXXX > $RESTORE_PATH/log/XBK_FULL_XXXX-redo-only.log &

#第一次增量
nohup innobackupex  --defaults-file=$MYSQL_HOME/my.cnf --decompress --parallel=8 $RESTORE_PATH/XBK_INCR_XXXX1 > $RESTORE_PATH/log/XBK_INCR_XXXX1-decompress.log &
nohup innobackupex  --defaults-file=$MYSQL_HOME/my.cnf --user=username --password='XXXX' --redo-only --apply-log  $RESTORE_PATH/XBK_FULL_XXXX --incremental-dir=$RESTORE_PATH/XBK_INCR_XXXX1 > $RESTORE_PATH/log/XBK_INCR_XXXX1-redo-only.log &


#第二次增量
nohup innobackupex  --defaults-file=$MYSQL_HOME/my.cnf --decompress --parallel=8 $RESTORE_PATH/XBK_INCR_XXXX2  > $RESTORE_PATH/log/XBK_INCR_XXXX2-decompress.log &
nohup innobackupex  --defaults-file=$MYSQL_HOME/my.cnf --user=username --password='XXXX'   --apply-log  $RESTORE_PATH/log/XBK_FULL_XXXX --incremental-dir=$RESTORE_PATH/XBK_INCR_XXXX2 > $RESTORE_PATH/log/XBK_INCR_XXXX2-apply.log &

#停止mysql和清理数据文件
systemctl status mysql.service
systemctl stop mysql.service
rm -rf $MYSQL_HOME/data/*

#恢复
nohup innobackupex  --defaults-file=$MYSQL_HOME/my.cnf  --copy-back $RESTORE_PATH/XBK_FULL_XXXX  > $RESTORE_PATH/log/XBK_FULL_XXXX-copy-back.log &

#启动mysql
chown -R mysql:mysql $MYSQL_HOME/data/*
systemctl start mysql.service

 

全量+3增量备份恢复

 

#全量解压
nohup innobackupex  --defaults-file=$MYSQL_HOME/my.cnf  --decompress  --parallel=8  $RESTORE_PATH/XBK_FULL_XXXX > $RESTORE_PATH/log/XBK_FULL_XXXX-decompress.log &
nohup innobackupex  --defaults-file=$MYSQL_HOME/my.cnf  --apply-log   --redo-only   $RESTORE_PATH/XBK_FULL_XXXX > $RESTORE_PATH/log/XBK_FULL_XXXX-redo-only.log &

#第一次增量
nohup innobackupex  --defaults-file=$MYSQL_HOME/my.cnf --decompress --parallel=8 $RESTORE_PATH/XBK_INCR_XXXX1 > $RESTORE_PATH/log/XBK_INCR_XXXX1-decompress.log &
nohup innobackupex  --defaults-file=$MYSQL_HOME/my.cnf --user=username --password='XXXX' --redo-only --apply-log  $RESTORE_PATH/XBK_FULL_XXXX --incremental-dir=$RESTORE_PATH/XBK_INCR_XXXX1 > $RESTORE_PATH/log/XBK_INCR_XXXX1-redo-only.log &

#第二次增量
nohup innobackupex  --defaults-file=$MYSQL_HOME/my.cnf --decompress --parallel=8 $RESTORE_PATH/XBK_INCR_XXXX2 > $RESTORE_PATH/log/XBK_INCR_XXXX2-decompress.log &
nohup innobackupex  --defaults-file=$MYSQL_HOME/my.cnf --user=username --password='XXXX' --redo-only --apply-log  $RESTORE_PATH/log/XBK_FULL_XXXX --incremental-dir=$RESTORE_PATH/XBK_INCR_XXXX2 > $RESTORE_PATH/log/XBK_INCR_XXXX2-redo-only.log &

#第三次增量
nohup innobackupex  --defaults-file=$MYSQL_HOME/my.cnf --decompress --parallel=8 $RESTORE_PATH/XBK_INCR_XXXX3  > $RESTORE_PATH/log/XBK_INCR_XXXX3-decompress.log &
nohup innobackupex  --defaults-file=$MYSQL_HOME/my.cnf --user=username --password='XXXX'   --apply-log  $RESTORE_PATH/log/XBK_FULL_XXXX --incremental-dir=$RESTORE_PATH/XBK_INCR_XXXX3 > $RESTORE_PATH/log/XBK_INCR_XXXX3-apply.log &

#停止mysql和清理数据文件
systemctl status mysql.service
systemctl stop mysql.service
rm -rf $MYSQL_HOME/data/*

#恢复
nohup innobackupex  --defaults-file=$MYSQL_HOME/my.cnf  --copy-back $RESTORE_PATH/XBK_FULL_XXXX  > $RESTORE_PATH/log/XBK_FULL_XXXX-copy-back.log &

#启动mysql
chown -R mysql:mysql $MYSQL_HOME/data/*
systemctl start mysql.service

 

与Mysql-Xtrabackup备份恢复相似的内容:

Mysql-Xtrabackup备份恢复

恢复准备 1、安装Xtrabackup 2、数据备份和拷贝 恢复步骤 1、恢复全量备份2、恢复增量备份到全量备份注意:开始恢复的增量备份要添加--redo-only参数,最后一次增量备份去掉--redo-only参数3、对整体的完全备份进行恢复:停库——恢复——启动库 恢复场景 全量备份恢复 noh

[转帖]技术分享 | 国产麒麟 arm 上编译安装 xtrabackup8

原创 发布于 2022-07-19 13:29:29 3220 举报 作者:王向 爱可生 DBA 团队成员,负责公司 DMP 产品的运维和客户 MySQL 问题的处理。擅长数据库故障处理。对数据库技术和 python 有着浓厚的兴趣。 本文来源:原创投稿 *爱可生开源社区出品,原创内容未经授权不得随

数据特征采样在 MySQL 同步一致性校验中的实践

作者:vivo 互联网存储研发团队 - Shang Yongxing 本文介绍了当前DTS应用中,MySQL数据同步使用到的数据一致性校验工具,并对它的实现思路进行分享。 一、背景 在 MySQL 的使用过程中,经常会因为如集群拆分、数据传输、数据聚合等原因产生流动和数据复制。而在通常的数据复制过程

小白也能懂的Mysql数据库索引详解

一文让你彻底了解:主键索引/二级索引,聚簇索引/非聚簇索引,回表/索引覆盖,索引下推,联合索引/最左联合匹配,前缀索引,explain

mysql查看用户的过期时间

1. mysql查看用户的过期时间的方法 在MySQL中,用户的过期时间(也称为账户过期日期)是一个可选项,用于确定某个MySQL用户账户何时到期。但是,值得注意的是,并非所有的MySQL安装或版本都支持直接设置用户账户的过期时间。特别是,标准的MySQL用户表(如mysql.user)并没有一个专

【冷启动#1】实用的MySQL基础

简单安装一下MySQL Windows下(5.7.x) 本体安装 1、首先先下载安装包,名字如下: mysql-5.7.19-winx64.zip 2、配置环境变量,将解压之后的bin目录添加一下 3、在解压目录下创建my.ini文件,内容如下: [ client ] port=3306 defau

小白也能懂的Mysql数据库索引详解

核心概念 主键索引/二级索引 聚簇索引/非聚簇索引 回表/索引覆盖 索引下推 联合索引/最左联合匹配 前缀索引 explain 一、[索引定义] 1.索引定义 在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法

解读MySQL 8.0数据字典的初始化与启动

本文分享自华为云社区《MySQL全文索引源码剖析之Insert语句执行过程》,作者:GaussDB 数据库。 本文主要介绍MySQL 8.0数据字典的基本概念和数据字典的初始化与启动加载的主要流程。 MySQL 8.0数据字典简介 数据字典(Data Dictionary, DD)用来存储数据库内部

MySQL入门到实战详细教程

MySQL介绍 MySQL是一个开源的关系型数据库管理系统(RDBMS),由瑞典 MySQL AB 公司开发,属于 Oracle 旗下产品,它广泛应用于各种Web应用程序和网站,MySQL使用结构化查询语言(SQL)进行数据的管理和操作。 MySQL主要特点 开源免费:MySQL是一个开源项目,可以

《软件性能测试分析与调优实践之路》第二版-手稿节选-Mysql数据库性能定位与分析

在做MySQL数据的性能定位前,需要先知道MySQL查询时数据库内部的执行过程。只有弄清SQL的执行过程,才能对执行过程中的每一步的性能做定位分析。如图6-2-1所示。 图6-2-1 从图中可以看到,当查询出数据以后,会将数据先返回给执行器,此时执行器先将结果写到查询缓存里面,这样在下次查询相同的数