游乐游手机版
首页/数据库/文章详情

MySQL热备工具Percona XtraBackup全备步骤与远程冷备程序

时间:2026-08-20 21:44
1—环境与工作场景:量化派使用背景:MySQL 主从架构中的从库宕机,只剩主库在高负载运行。此时急需对主库数据进行备份,并尽快重新搭建从库。 2—经验总结:合格的运维工程师或 DBA 在操作数据库数据之前,首先要做好备份。这样当数据库出现异常或故障时,才能快速进行恢复。但是传统的数据恢复过程通常比

#1—环境与工作场景:量化派

mysql热备工具-perconainnobackupex全备步骤【附远程冷备程序】

使用背景:MySQL 主从架构中的从库宕机,只剩主库在高负载运行。此时急需对主库数据进行备份,并尽快重新搭建从库。

#2—经验总结:合格的运维工程师或 DBA 在操作数据库数据之前,首先要做好备份。

这样当数据库出现异常或故障时,才能快速进行恢复。

但是传统的数据恢复过程通常比较耗时,往往难以满足业务对恢复时效的要求,因此需要使用更高效的数据库备份与恢复工具。

之前也了解到 mysqldump 在某些场景下可能会锁表,尤其是大数据量备份时速度较慢。

经过研究后,我们最终决定采用 percona innobackupex。它是一款常用的 MySQL 热备工具,支持全量备份和增量备份。

优点很多,整体非常适合生产环境使用。下面直接整理操作手册,便于后续自己快速执行 MySQL 备份与恢复。

#3—安装

innobackupex 的安装方式可以直接参考官网,官方提供了多种安装方案:https://www.percona.com/doc/percona-xtrabackup/2.4/index.html

我们采用的是 rpm 包安装方式,这样便于后续统一版本管理,

###3.1 下载包 wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.0/binary/redhat/7/x86_64/percona-xtrabackup-24-2.4.0-rc1.1.el7.x86_64.rpm

###3.2 本地安装 yum localinstall percona-xtrabackup-24-2.4.0-rc1.1.el7.x86_64.rpm

###3.3 卸载命令 yum remove percona-xtrabackup

###4 数据备份与恢复

    备份之前,需要将原有 MySQL 的 data 目录清空。注意,必须将 data 目录中的内容全部删除。。data 目录全部清空。。data 目录全部清空。。

##4.1—备份数据

    innobackupex --defaults-file=/your/path/of/mysql/3306/my.cnf --user=root --password=123456 --port=3306 --host=localhost --parallel=4 --database=test /path/to/BACKUP-DIR/ 2>/tmp/data/err.log
友情提示:
①——
--parallel=4 该参数可以显著提升数据备份速度,这里可理解为将备份效率提升到约四倍;
②——
--database=test 表示仅对 test 数据库单独备份;如果不加此参数,则表示对整个 MySQL 实例进行全库备份
③——
2>/tmp/data/err.log 将输出信息写入日志文件,便于排查备份问题
④——我们没有选择在备份过程中直接压缩数据,因为压缩会额外占用数据库操作时间,所以最终采用在数据库备份完成之后,再使用 tar zcf 的方式进行压缩。实践证明,这种方式更适合我们的业务场景。

##4.2—准备数据

    innobackupex --apply-log --use-memory=4G /path/to/BACKUP-DIR
友情提示:--use-memory=4G 该命令默认大小是100m,可以根据服务器内存情况适当调大,以提升数据恢复速度

##4.3—开始恢复

    innobackupex --copy-back /path/to/BACKUP-DIR

实际操作一次,你就会感受到它在 MySQL 热备和快速恢复方面的效率优势。

#5—权限设置

    chown -R mysql:mysql mysql目录

#6—完成以上步骤后,就可以继续操作你的数据库了。

#7—

我们第一次使用时,在备份到 18G 左右的位置遇到了一些异常,出现过短暂锁表的情况。第二次执行数据库备份时,在进行到 16G 左右时临时将 3306 端口 drop 掉,待备份完成后,再恢复该端口访问。

    --16G时

iptables -A INPUT -p tcp --dport 3306 -j DROP

--数据恢复完后

iptables -A INPUT -p tcp --dport 3306 -j ACCEPT

service iptables stop

service iptables start

*8—远程冷备:实用神技能,尤其是最后这一句最关键

#!/bin/bash

backup_time=`date +%Y_%m_%d_%H`
current_ip="${要备份的机器ip}"
remote_ip="${远程机器ip}"
remote_path="/home/quant_group/mysql/${current_ip}/full/${backup_time}.tar"
mysql_host="--host=${current_ip}"
mysql_user="--user=${备份的用户名}"
mysql_pass="--password=${备份的密码}"
mysql_port="--port=3306"
defaults_file="--defaults-file=/home/quant_group/mysql/3306/my.cnf"

innobackupex ${defaults_file} ${mysql_user} ${mysql_pass} ${mysql_port} ${mysql_host} --stream=tar ./ | gzip | sshpass -p '' ssh root@${remote_ip} "cat - > ${remote_path}"
来源:https://apiv1.oschina.net/oschinapi/blog/detail?id=728101
上一篇Navicat批量设置字段默认值的方法与步骤 下一篇MySQL用户中User与Host组合的含义及正确理解
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
Redis是什么:核心特性、架构与应用场景解析
数据库 · 2026-09-01

Redis是什么:核心特性、架构与应用场景解析

Redis是一款基于内存的键值型NoSQL数据库,以超高读写速度和丰富的数据结构著称。本文系统梳理Redis的核心特性、架构组成、性能优势及典型应用场景,并通过与Memcached、MySQL、MongoDB的对比,帮助开发者快速判断Redis是否适合当前业务需求。

Windows 安装 MongoDB 完整图文教程
数据库 · 2026-09-01

Windows 安装 MongoDB 完整图文教程

本文详细介绍在 Windows 系统上安装 MongoDB 的完整流程。从官网下载 MSI 安装包开始,逐步演示自定义安装路径、配置 Windows 服务、跳过 MongoDB Compass 等关键选项,并提供通过系统服务列表验证安装是否成功的方法,帮助开发者快速搭建本地 MongoDB 环境。

Linux 安装 MongoDB 完整指南:依赖配置、环境变量与服务启动
数据库 · 2026-09-01

Linux 安装 MongoDB 完整指南:依赖配置、环境变量与服务启动

本文详解在 Linux 系统下安装 MongoDB 的完整流程,涵盖依赖包安装、二进制包下载解压、环境变量配置、数据与日志目录创建及服务启动验证。通过标准化命令与路径说明,帮助开发者快速完成部署并确认服务状态。

MacOS安装MongoDB完整教程
数据库 · 2026-09-01

MacOS安装MongoDB完整教程

本文介绍在MacOS系统下安装MongoDB的完整流程,涵盖下载、解压、目录配置、环境变量设置及服务启动。通过明确的命令与参数说明,帮助开发者快速完成环境搭建并验证安装结果。

Ubuntu系统安装与配置Redis完整指南
数据库 · 2026-09-01

Ubuntu系统安装与配置Redis完整指南

本文详解在Ubuntu系统中安装Redis的两种主流方式:apt在线安装与源码编译安装。涵盖版本选择逻辑、服务启停与状态检查、连接验证方法,以及在线练习工具与桌面GUI客户端的对比与使用建议,帮助开发者快速搭建并验证Redis运行环境。