首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

mysql5.7备份恢复工具实战

◆一、基础知识

◆1.1 mysql逻辑备份与物理备份的区别

MySQL 备份通常分为两种类型:逻辑备份和物理备份。这两种备份方法各有优缺点,适用于不同的场景。

◆逻辑备份:

逻辑备份是从数据库中导出数据和结构的 SQL 语句。这种备份通常使用 mysqldump 工具来完成。逻辑备份的主要优点是它具有较高的可移植性,可以在不同架构和版本的 MySQL 服务器上还原。但是,逻辑备份可能需要更长的时间来完成,特别是在处理大型数据库时。

逻辑备份的主要特点:

· 生成的备份文件是文本文件,包含 SQL 语句。

· 备份和恢复速度相对较慢。

· 可移植性好,可以在不同版本和架构的 MySQL 服务器上使用。

· 可以选择性地备份和恢复特定的数据库、表或记录。

◆物理备份:

物理备份是直接复制数据库的数据文件、索引文件和日志文件。这种备份方法通常使用文件系统快照或第三方工具(如 Percona XtraBackup)来完成。物理备份的主要优点是它通常更快,因为它不需要转换数据。然而,物理备份可能不如逻辑备份可移植,因为它依赖于特定的文件系统和操作系统。

物理备份的主要特点:

生成的备份文件是二进制文件,包含数据库的实际数据文件、索引文件和日志文件。

备份和恢复速度相对较快。

可移植性较差,通常只能在相同版本和架构的 MySQL 服务器上使用。

通常需要停止数据库或在读锁模式下进行备份,以确保数据的一致性。

总之,逻辑备份和物理备份有各自的优缺点,根据不同的应用场景和需求来选择合适的备份方法。

今天我们分享的主角就是大名鼎鼎的mysql物理备份神器-Percona XtraBackup

◆二、Percona XtraBackup的安装

◆2.1 环境描述

·操作系统版本:CENTOS 7.9

·MYSQL数据库版本:5.7

·数据库实例端口:3307

◆2.2 安装过程

◆1、安装yum源

◆2、安装XtraBackup 2.4版本的percona-xtrabackup

安装mysql对应版本的xtrabackup,不同服务器安装不同的版本

·mysql 5.1 – xtrabackup2.0

·mysql5.6 –xtrabackup 2.2

·mysql5.7 –xtrabackup2.4

◆3、常用参数说明

◆三、 备份与恢复过程

备份目录:/backup/mysql

◆3.1 全量备份与恢复

◆全量备份

◆全量恢复

1、删库并停止数据库

2、备份myql数据目录

3、日志包含了redo以及undo的操作,应用过程类似与mysql hang机后的recovery操作,完成后备份处于一致性状态

4、拷贝备份数据至my.cnf文件规定的位置

5、更改mysql数据目录的权限为mysql

6、启动数据库,至此数据恢复完成

◆3.2 增量备份与恢复

◆3.2.1 增量备份原理

增量备份有两种方法:

方法一:针对全量的basedir做增量

总是针对全量的basedir做增量,这个方式恢复起来就特别简单了,只需要将最后一次的增量备份合并到全量备份里,就可以恢复了。

第一种方法示例图:总是将1月1日的全备作为basedir,所以FROM_LSN号总是5000。

方法二:总是针对上一次增量,做增量备份

总是针对上一次的增量,做增量备份。这个方式的恢复,就要逐一合并了。总是把上一次(最近一次)的备份作为basedir

方法二示意图:

下面介绍的方法是针对第二种的。

◆3.2.2 增量恢复实验过程

1、先来一次全备,两次增备

◆2、prepare准备过程

这就是增量备份最麻烦的地方,因为总共做了三次备份,所以先做三次prepare

(1)对全备做prepare:

(2)对第一次增量prepare:

(3)对第二次增量prepare:

注意,第二次的增备是最后一次,所以不需要加上–redo-only参数:

(4)最后一步将两次增量备份和全量做一次合并

◆3、恢复数据

(1) 停止mysql服务

(2)模拟删除库(删除之前先备份一下目录 )

(3)恢复数据

(4)修改权限

(5)启动数据库,验证相关数据

◆四、常见问题汇总

问题1:

恢复时报Xtrabackup –copy-back fail Can’t create/write to file ‘./undo_001’

解决方法:

/etc/my.cnf配置文件中注释掉如下代码:

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20230608A00Z8U00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券