Linux

关注公众号 jb51net

关闭
首页 > 网站技巧 > 服务器 > Linux > lvm快照结合rsync实现MySQL数据卷的远程备份

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

作者:学亮编程手记

这篇文章主要介绍了关于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. 核心作用:实现数据独立化

解除对原始卷的依赖

避免快照空间耗尽风险

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 快照的临时一致性状态转化为永久独立备份,解决了快照的固有局限性,是专业备份方案的关键步骤。

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

您可能感兴趣的文章:
阅读全文