◆一、基础知识
◆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配置文件中注释掉如下代码:
领取专属 10元无门槛券
私享最新 技术干货