mylvmbackup 工具介绍
mylvmbackup
是一个专门用于 mysql 数据库备份的工具,它结合了 lvm 快照 和 mysql 备份 的优点,可以在几乎不影响数据库性能的情况下创建一致的备份。
1. mylvmbackup 的核心特点
- 基于 lvm 快照:利用 lvm 的写时复制(cow)机制,快速创建数据库的冻结副本。
- 保证数据一致性:在创建快照前自动执行
flush tables with read lock
,确保备份数据的一致性。 - 支持压缩和加密:可结合
gzip
、bzip2
或openssl
进行压缩和加密。 - 灵活存储:支持本地存储、远程备份(如
scp
、rsync
)或云存储(如 aws s3)。 - 自动清理旧备份:可配置保留策略,避免磁盘空间耗尽。
2. 安装 mylvmbackup
debian/ubuntu
sudo apt-get install mylvmbackup
rhel/centos
sudo yum install mylvmbackup
从源码安装
wget https://github.com/mylvmbackup/mylvmbackup/archive/refs/tags/v0.16.tar.gz tar -xzvf v0.16.tar.gz cd mylvmbackup-0.16 perl makefile.pl make sudo make install
3. 基本使用方法
(1) 基本备份
mylvmbackup --user=mysql_user --password=mysql_pass --lv=mysql_lv --vg=mysql_vg --backuptype=tar
--user
:mysql 用户名(需reload
和lock tables
权限)--password
:mysql 密码--lv
:mysql 数据所在的逻辑卷(如/dev/vg_mysql/lv_mysql
)--vg
:卷组名称--backuptype
:备份格式(tar
、gzip
、bzip2
等)
(2) 备份到远程服务器
mylvmbackup --user=root --password=123456 --lv=mysql_lv --vg=vg_data --backuptype=tar --scp=user@backup-server:/backup/mysql/
(3) 自动清理旧备份
mylvmbackup --user=root --password=123456 --lv=mysql_lv --vg=vg_data --backuptype=tar --keep=7
--keep=7
:保留最近 7 天的备份,自动删除旧的。
4. 配置文件(/etc/mylvmbackup.conf)
可以预先配置默认选项,避免每次输入参数:
[defaults] user = mysql_user password = mysql_pass host = localhost lv = /dev/vg_mysql/lv_mysql vg = vg_mysql backuptype = tar backupdir = /backup/mysql keep = 5 scp = backup@remote-server:/mysql_backups/
5. 恢复备份
(1) 解压备份
tar -xvf /backup/mysql/mysql-backup-20231001.tar -c /tmp/mysql_restore
(2) 停止 mysql
systemctl stop mysql
(3) 恢复数据
rsync -av /tmp/mysql_restore/ /var/lib/mysql/ chown -r mysql:mysql /var/lib/mysql
(4) 启动 mysql
systemctl start mysql
6. 优缺点
✅ 优点
- 几乎零停机:lvm 快照使备份过程极快,对生产影响小。
- 数据一致性:自动锁定表,避免备份损坏。
- 灵活存储:支持本地、远程和云存储。
❌ 缺点
- 依赖 lvm:mysql 数据必须存储在 lvm 逻辑卷上。
- 快照空间管理:如果快照空间不足,可能导致备份失败。
- 需要 root 权限:因为涉及 lvm 操作。
7. 替代方案
工具 | 特点 |
---|---|
percona xtrabackup | 物理备份,支持增量备份,无需 lvm |
mysqldump | 逻辑备份,适合小型数据库 |
mysql enterprise backup | oracle 官方工具,功能强大但收费 |
总结
mylvmbackup
是一个高效的 mysql 备份工具,特别适合 大型数据库 和 需要快速备份 的场景。它结合了 lvm 快照的速度 和 mysql 的数据一致性,是 dba 工具箱中的一个实用选择。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论