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

2024-05-24 07:36

本文主要是介绍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)登录数据库实例

这篇关于mysql实战——xtrabackup全量备份/增量备份及恢复的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/997778

相关文章

MySQL数据库双机热备的配置方法详解

《MySQL数据库双机热备的配置方法详解》在企业级应用中,数据库的高可用性和数据的安全性是至关重要的,MySQL作为最流行的开源关系型数据库管理系统之一,提供了多种方式来实现高可用性,其中双机热备(M... 目录1. 环境准备1.1 安装mysql1.2 配置MySQL1.2.1 主服务器配置1.2.2 从

Python版本信息获取方法详解与实战

《Python版本信息获取方法详解与实战》在Python开发中,获取Python版本号是调试、兼容性检查和版本控制的重要基础操作,本文详细介绍了如何使用sys和platform模块获取Python的主... 目录1. python版本号获取基础2. 使用sys模块获取版本信息2.1 sys模块概述2.1.1

深入理解Mysql OnlineDDL的算法

《深入理解MysqlOnlineDDL的算法》本文主要介绍了讲解MysqlOnlineDDL的算法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小... 目录一、Online DDL 是什么?二、Online DDL 的三种主要算法2.1COPY(复制法)

mysql8.0.43使用InnoDB Cluster配置主从复制

《mysql8.0.43使用InnoDBCluster配置主从复制》本文主要介绍了mysql8.0.43使用InnoDBCluster配置主从复制,文中通过示例代码介绍的非常详细,对大家的学习或者... 目录1、配置Hosts解析(所有服务器都要执行)2、安装mysql shell(所有服务器都要执行)3、

k8s中实现mysql主备过程详解

《k8s中实现mysql主备过程详解》文章讲解了在K8s中使用StatefulSet部署MySQL主备架构,包含NFS安装、storageClass配置、MySQL部署及同步检查步骤,确保主备数据一致... 目录一、k8s中实现mysql主备1.1 环境信息1.2 部署nfs-provisioner1.2.

MySQL中VARCHAR和TEXT的区别小结

《MySQL中VARCHAR和TEXT的区别小结》MySQL中VARCHAR和TEXT用于存储字符串,VARCHAR可变长度存储在行内,适合短文本;TEXT存储在溢出页,适合大文本,下面就来具体的了解... 目录一、VARCHAR 和 TEXT 基本介绍1. VARCHAR2. TEXT二、VARCHAR

MySQL中C接口的实现

《MySQL中C接口的实现》本节内容介绍使用C/C++访问数据库,包括对数据库的增删查改操作,主要是学习一些接口的调用,具有一定的参考价值,感兴趣的可以了解一下... 目录准备mysql库使用mysql库编译文件官方API文档对象的创建和关闭链接数据库下达sql指令select语句前言:本节内容介绍使用C/

mybatis直接执行完整sql及踩坑解决

《mybatis直接执行完整sql及踩坑解决》MyBatis可通过select标签执行动态SQL,DQL用ListLinkedHashMap接收结果,DML用int处理,注意防御SQL注入,优先使用#... 目录myBATiFBNZQs直接执行完整sql及踩坑select语句采用count、insert、u

Python爬虫HTTPS使用requests,httpx,aiohttp实战中的证书异步等问题

《Python爬虫HTTPS使用requests,httpx,aiohttp实战中的证书异步等问题》在爬虫工程里,“HTTPS”是绕不开的话题,HTTPS为传输加密提供保护,同时也给爬虫带来证书校验、... 目录一、核心问题与优先级检查(先问三件事)二、基础示例:requests 与证书处理三、高并发选型:

MySQL之搜索引擎使用解读

《MySQL之搜索引擎使用解读》MySQL存储引擎是数据存储和管理的核心组件,不同引擎(如InnoDB、MyISAM)采用不同机制,InnoDB支持事务与行锁,适合高并发场景;MyISAM不支持事务,... 目录mysql的存储引擎是什么MySQL存储引擎的功能MySQL的存储引擎的分类查看存储引擎1.命令