关于lvm快照结合rsync实现MySQL数据卷的远程备份教程

 更新时间:2025年05月29日 10:11:46   作者:学亮编程手记  
这篇文章主要介绍了关于lvm快照结合rsync实现MySQL数据卷的远程备份教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

关于lvm快照结合rsync实现MySQL数据卷的远程备份

lvcreate -s -n temp_snap -L 20G /dev/vg00/mysql_data  # 1. 创建临时快照(时间点冻结)
mount -o nouuid /dev/vg00/temp_snap /mnt/snap                  # 2. 挂载快照(访问冻结状态)
rsync -a /mnt/snap/ backup-server:/mysql_backups/    # 3. 将冻结状态数据独立化
umount /mnt/snap                                     # 4. 卸载
lvremove -f /dev/vg00/temp_snap                      # 5. 删除临时快照(释放资源)

-o nouuid:忽略 UUID 冲突(快照和原卷 UUID 相同,必须忽略)

上述命令通过 rsync 将 LVM 快照的数据传输到另一台服务器,实际上是在创建一份真正独立的备份。这与仅保留 LVM 快照有本质区别,具体作用和优势如下:

1. 核心作用:实现数据独立化

解除对原始卷的依赖

  • LVM 快照本身仍依赖原始卷的物理存储(通过 COW 机制),而 rsync 后的数据是完全独立的副本。
  • 即使原始服务器硬盘损坏,备份服务器上的数据依然安全。

避免快照空间耗尽风险

  • 快照空间有限,长期保留可能导致失效。
  • rsync 后,备份数据不受快照空间限制,可长期存储。

2. 典型应用场景

① 灾难恢复

  • 如果原服务器遭遇硬件故障、勒索软件攻击或误删除,可直接从备份服务器恢复数据。
  • 恢复示例
# 在备份服务器上直接使用数据
rsync -a /backup/mysql_backups/ /var/lib/mysql/
chown -R mysql:mysql /var/lib/mysql

② 数据迁移

  • 将数据迁移到新服务器或云环境时,无需停机。
  • 迁移示例
# 在新服务器上直接拉取备份数据
rsync -a backup-server:/mysql_backups/ /var/lib/mysql/

③ 测试与开发

  • 用备份数据搭建测试环境,不影响生产系统。
  • 用法示例
# 将备份数据挂载到测试容器
docker run -v /backup/mysql_backups:/var/lib/mysql mysql:latest

3. 为什么比单纯快照更可靠?

风险仅保留 LVM 快照rsync 到备份服务器
原始卷物理损坏快照无法使用数据完好无损
快照空间耗尽快照自动失效不影响备份数据
误删原始卷快照连带丢失备份数据独立保留
需要长期存档不适合(空间增长不可控)可长期保存

4. 操作流程的深层意义

完整命令链:

lvcreate -s -n temp_snap -L 20G /dev/vg00/mysql_data  # 1. 创建临时快照(时间点冻结)
mount /dev/vg00/temp_snap /mnt/snap                  # 2. 挂载快照(访问冻结状态)
rsync -a /mnt/snap/ backup-server:/mysql_backups/    # 3. 将冻结状态数据独立化
umount /mnt/snap                                     # 4. 卸载
lvremove -f /dev/vg00/temp_snap                      # 5. 删除临时快照(释放资源)

本质

通过快照获得一致性的时间点镜像 → 用 rsync 将其转化为真正的备份 → 最后清理临时资源。

5. 进阶建议

校验备份完整性

传输后对比校验和:

# 在原服务器生成校验文件
find /mnt/snap -type f -exec md5sum {} + > /tmp/checksum_origin

# 在备份服务器验证
ssh backup-server "find /mysql_backups -type f -exec md5sum {} +" | diff - /tmp/checksum_origin

结合增量备份

首次全量同步后,后续可通过 rsync --link-dest 实现增量备份,节省空间。

自动化脚本示例

#!/bin/bash
SNAPSHOT_NAME=mysql_$(date +%Y%m%d)
lvcreate -s -n $SNAPSHOT_NAME -L 20G /dev/vg00/mysql_data
mount /dev/vg00/$SNAPSHOT_NAME /mnt/snap
rsync -az --delete /mnt/snap/ backup-server:/mysql_backups/
umount /mnt/snap
lvremove -f /dev/vg00/$SNAPSHOT_NAME

总结

rsync 到另一台服务器的操作,本质是将 LVM 快照的临时一致性状态转化为永久独立备份,解决了快照的固有局限性,是专业备份方案的关键步骤。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Linux proc目录下子文件或子文件夹的作用

    Linux proc目录下子文件或子文件夹的作用

    这篇文章主要介绍了Linux proc目录下子文件或子文件夹的作用,以及读取这些信息的实际操作命令,需要的朋友可以参考下
    2014-03-03
  • 在Linux服务器下启动tomcat的三种方式

    在Linux服务器下启动tomcat的三种方式

    这篇文章主要介绍了在Linux服务器下启动tomcat的三种方式,Linux作为一种稳定安全的服务器一直受到业界欢迎,那么如何启动部署在服务器上的Tomcat呢,这篇文章带我们来了解
    2023-03-03
  • Linux之路由转发和SNAT的应用方式

    Linux之路由转发和SNAT的应用方式

    这篇文章主要介绍了Linux之路由转发和SNAT的应用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-05-05
  • Apache中Virtual Host虚拟主机配置及rewrite参数说明

    Apache中Virtual Host虚拟主机配置及rewrite参数说明

    这篇文章主要介绍了Apache中Virtual Host虚拟主机配置及rewrite模块中的重要参数说明,是在同一个Apache服务器软件上部署多个站点的基础方法,需要的朋友可以参考下
    2016-03-03
  • Linux中使用sort命令排序的完整教学

    Linux中使用sort命令排序的完整教学

    Linux 中的 sort 命令是 GNU coretils 包的一部分,该命令用于按升序 / 降序对指定文件中的文本行或标准输入中的文本行进行排序,本文将讨论 sort 命令的各种可用选项并提供一些实际示例来说明其用法,需要的可以了解下
    2026-01-01
  • Linux查看和修改MAC地址的方法大全

    Linux查看和修改MAC地址的方法大全

    MAC地址是网络设备(如网卡、无线网卡等)的唯一识别标识,在Linux系统中,我们可以通过修改MAC地址来实现一些网络方面的需求,比如伪装成其他设备,实现身份隐藏等,本文将介绍在Linux系统下如何查看和修改MAC地址,需要的朋友可以参考下
    2025-10-10
  • Linux中环境变量配置的步骤详解

    Linux中环境变量配置的步骤详解

    Linux中环境变量包括系统级和用户级,系统级的环境变量是每个登录到系统的用户都要读取的系统变量,而用户级的环境变量则是该用户使用系统时加载的环境变量。所以下面这篇文章主要给大家介绍了关于Linux中环境变量配置的相关资料,需要的朋友可以参考下。
    2017-07-07
  • Ubuntu中查看文件夹大小的常用方法(附避坑指南)

    Ubuntu中查看文件夹大小的常用方法(附避坑指南)

    在 Linux(Ubuntu/CentOS)服务器上进行开发或模型训练时,磁盘空间报警是常有的事,本文将总结 Linux 下查看文件夹大小的正确姿势,从基础命令到交互式神器,帮你快速定位磁盘杀手”
    2026-01-01
  • 如何修改linux操作系统下文件颜色提示

    如何修改linux操作系统下文件颜色提示

    修改Linux下文件颜色提示的方法:拷贝`DIR_COLORS`文件到home目录,编辑并修改颜色代码,保存后使用`eval dircolors ~/.dircolors`使更改生效,如果`ls`命令没有变化,可以使用`ls --color=auto`,在`~/.cshrc`中添加别名alias ls='ls --color=auto'
    2025-01-01
  • CentOS 6.7系统下安装配置JDK的方法

    CentOS 6.7系统下安装配置JDK的方法

    这篇文章主要给大家介绍的是在CentOS 6.7系统下如何安装配置JDK的方法,文中给出了详细的安装配置方法,有需要的朋友们可以参考借鉴,下面来跟着小编一起学习学习吧。
    2016-11-11

最新评论