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

六十八、【Linux数据库】percona软件介绍 、 innobackupex备份与恢复

XtraBackup架构全景图

核心流程
热备份
Redo日志
LSN跟踪
InnoDB引擎
XtraBackup
一致性保证
增量基础
全量备份
MySQL实例
增量备份
备份存储
云存储
本地存储
磁带库

Percona 软件与 XtraBackup 功能概述

Percona 软件介绍

Percona 是一家提供 MySQL 相关软件和服务的公司,其核心产品包括:

  1. Percona Server:增强版 MySQL 服务器,提供更好的性能和扩展性
  2. Percona XtraBackup:开源热备份工具,支持 InnoDB/XtraDB 存储引擎
  3. Percona Toolkit:高级命令行工具集,用于管理 MySQL
  4. Percona Monitoring and Management (PMM):监控和管理平台

XtraBackup 核心功能

  1. 热备份:在备份期间不影响数据库读写操作
  2. 增量备份:仅备份自上次备份以来更改的数据
  3. 流压缩:备份时直接压缩数据
  4. 并行备份:多线程加速备份过程
  5. 加密备份:保护备份数据安全

备份恢复流程

全量备份
增量备份1
增量备份2
准备备份
恢复数据

演示步骤

1. 安装 Percona XtraBackup

# 安装Percona仓库
[root@localhost ~]# yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm -y# 启用仓库
[root@localhost ~]# percona-release enable-only tools release# 安装XtraBackup
[root@localhost ~]# yum install percona-xtrabackup-80 -y

2. 全量备份

# 创建备份目录
[root@localhost ~]# mkdir -p /backup/full# 执行全量备份
[root@localhost ~]# xtrabackup --backup --target-dir=/backup/full --user=root --password=your_password# 查看备份文件
[root@localhost ~]# ls /backup/full
ibdata1  mysql  performance_schema  sys  test  xtrabackup_binlog_info  xtrabackup_checkpoints

3. 增量备份

# 创建增量备份目录
[root@localhost ~]# mkdir /backup/inc1# 基于全量备份执行增量备份
[root@localhost ~]# xtrabackup --backup --target-dir=/backup/inc1 \--incremental-basedir=/backup/full \--user=root --password=your_password

4. 准备备份(恢复前)

# 应用全量备份日志
[root@localhost ~]# xtrabackup --prepare --apply-log-only --target-dir=/backup/full# 应用增量备份到全量
[root@localhost ~]# xtrabackup --prepare --apply-log-only --target-dir=/backup/full \--incremental-dir=/backup/inc1# 最终准备
[root@localhost ~]# xtrabackup --prepare --target-dir=/backup/full

5. 恢复数据

# 停止MySQL服务
[root@localhost ~]# systemctl stop mysqld# 清空数据目录(生产环境请先备份)
[root@localhost ~]# rm -rf /var/lib/mysql/*# 恢复备份
[root@localhost ~]# xtrabackup --copy-back --target-dir=/backup/full# 修改数据目录权限
[root@localhost ~]# chown -R mysql:mysql /var/lib/mysql# 启动MySQL服务
[root@localhost ~]# systemctl start mysqld

6. 验证恢复

# 登录MySQL检查数据
[root@localhost ~]# mysql -u root -p -e "SHOW DATABASES;"
Enter password: 
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| test               |
+--------------------+

命令总结表格

演示命令功能描述关键参数
yum install percona-xtrabackup-80安装XtraBackup软件包名称
xtrabackup --backup --target-dir=/path全量备份--target-dir 备份目录
xtrabackup --backup --target-dir=/inc --incremental-basedir=/full增量备份--incremental-basedir 基础目录
xtrabackup --prepare --apply-log-only --target-dir=/full准备全量备份--apply-log-only 仅应用日志
xtrabackup --prepare --target-dir=/full --incremental-dir=/inc合并增量备份--incremental-dir 增量目录
xtrabackup --prepare --target-dir=/full最终准备
xtrabackup --copy-back --target-dir=/full恢复备份--copy-back 恢复模式
chown -R mysql:mysql /var/lib/mysql修复权限数据目录
systemctl stop mysqld停止服务
systemctl start mysqld启动服务

功能作用详解

1. XtraBackup 工作原理

备份过程

  1. 复制InnoDB数据文件(物理拷贝)
  2. 备份期间监控redo日志变化
  3. 锁定MyISAM表(非InnoDB)进行一致性备份
  4. 保存备份点日志位置

恢复过程

  1. 应用redo日志前滚事务
  2. 回滚未提交事务
  3. 恢复非InnoDB表

2. 增量备份原理

全量备份
增量备份1
增量备份2
准备备份
恢复
  • LSN(Log Sequence Number):每个InnoDB页的日志序列号
  • 增量备份只拷贝LSN大于基础备份LSN的页

3. 高级备份选项

压缩备份

xtrabackup --backup --compress --target-dir=/backup/compressed

加密备份

xtrabackup --backup --encrypt=AES256 --encrypt-key="your_encryption_key" --target-dir=/backup/encrypted

并行处理

xtrabackup --backup --parallel=4 --target-dir=/backup/parallel

流式备份

xtrabackup --backup --stream=xbstream | gzip > backup.xb.gz

4. 生产环境实践

备份策略

# 每周日全量备份
0 2 * * 0 /usr/bin/xtrabackup --backup --target-dir=/backup/full_$(date +\%F)# 每日增量备份
0 2 * * 1-6 /usr/bin/xtrabackup --backup --incremental-basedir=/backup/last_full --target-dir=/backup/inc_$(date +\%F)

备份验证

# 创建测试实例
xtrabackup --prepare --target-dir=/backup/full
mysqld --no-defaults --datadir=/backup/full --socket=/tmp/test.sock# 运行一致性检查
pt-table-checksum --socket=/tmp/test.sock
http://www.lryc.cn/news/623174.html

相关文章:

  • 《后室Backrooms》中文版,购物误入异空间,怪物追逐,第一人称冒险逃生
  • STM32-GPIO实践部分1-跑马灯实验
  • Java基础 8.16
  • 基于深度强化学习的多用途无人机路径优化研究
  • 基于Transformer的机器翻译——模型篇
  • C# 应用特性的更多内容:多维度解析与深度拓展
  • Mysql常见的优化方法
  • 如何在 Ubuntu 24.04 Server 或 Desktop 上安装 XFCE
  • 【Python】Python爬虫学习路线
  • IOMMU多级页表查找的验证
  • 字节数据流
  • 后量子密码算法ML-KEM介绍及开源代码实现
  • 11-verilog的RTC驱动代码
  • CPP多线程2:多线程竞争与死锁问题
  • RK3568 NPU RKNN(三):RKNN-ToolKit2模型构建与推理
  • 微服务架构实战指南:从单体应用到云原生的蜕变之路
  • AUTOSAR进阶图解==>AUTOSAR_SWS_FlexRayTransceiverDriver
  • 如何在FastAPI中玩转APScheduler,实现动态定时任务的魔法?
  • 【Docker】Ubuntu上安装Docker(网络版)
  • 储能领域大数据平台的设计中如何使用 Hadoop、Spark、Flink 等组件实现数据采集、清洗、存储及实时 / 离线计算,支持储能系统分析与预测
  • 打卡day40
  • 一些 DS 题目
  • Spark 数据分发性能深度剖析:mapPartitions vs. UDF – 你该选择哪一个?
  • docker-compose-mysql-定时备份数据库到其他服务器脚本
  • 【Web后端】Django、flask及其场景——以构建系统原型为例
  • 【OpenGL】LearnOpenGL学习笔记09 - 材质、光照贴图
  • 体彩排列三第2025218期号码分析
  • [Python]PTA:for 求奇数分之一序列前N项和
  • OpenWrt的快速设置向导功能与相关问题解答
  • Media Controller API 介绍