当前位置: 代码网 > it编程>数据库>Mysql > 关于lvm快照结合rsync实现MySQL数据卷的远程备份教程

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

2025年05月29日 Mysql 我要评论
关于lvm快照结合rsync实现mysql数据卷的远程备份lvcreate -s -n temp_snap -l 20g /dev/vg00/mysql_data # 1. 创建临时快照(时间点冻结

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

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com