MySQL数据库备份工具mylvmbackup的使用解读

 更新时间:2025年05月29日 08:39:29   作者:学亮编程手记  
这篇文章主要介绍了MySQL数据库备份工具mylvmbackup的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

mylvmbackup 工具介绍

mylvmbackup 是一个专门用于 MySQL 数据库备份的工具,它结合了 LVM 快照MySQL 备份 的优点,可以在几乎不影响数据库性能的情况下创建一致的备份。

1. mylvmbackup 的核心特点

  • 基于 LVM 快照:利用 LVM 的写时复制(COW)机制,快速创建数据库的冻结副本。
  • 保证数据一致性:在创建快照前自动执行 FLUSH TABLES WITH READ LOCK,确保备份数据的一致性。
  • 支持压缩和加密:可结合 gzipbzip2openssl 进行压缩和加密。
  • 灵活存储:支持本地存储、远程备份(如 scprsync)或云存储(如 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 用户名(需 RELOADLOCK TABLES 权限)
  • --password:MySQL 密码
  • --lv:MySQL 数据所在的逻辑卷(如 /dev/vg_mysql/lv_mysql
  • --vg:卷组名称
  • --backuptype:备份格式(targzipbzip2 等)

(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 BackupOracle 官方工具,功能强大但收费

总结

mylvmbackup 是一个高效的 MySQL 备份工具,特别适合 大型数据库需要快速备份 的场景。它结合了 LVM 快照的速度MySQL 的数据一致性,是 DBA 工具箱中的一个实用选择。

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

相关文章

  • SQL IDENTITY_INSERT作用案例详解

    SQL IDENTITY_INSERT作用案例详解

    这篇文章主要介绍了SQL IDENTITY_INSERT作用案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • Ubuntu15下mysql5.6.25不支持中文的解决办法

    Ubuntu15下mysql5.6.25不支持中文的解决办法

    Ubuntu15下mysql5.6.25出现乱码,不支持中文,该问题如何解决呢?下面看看小编是怎么解决此问题的,需要的朋友可以参考下
    2015-09-09
  • 详解标准mysql(x64) Windows版安装过程

    详解标准mysql(x64) Windows版安装过程

    这篇文章主要介绍了标准mysql(x64) Windows版安装过程,需要的朋友可以参考下
    2017-08-08
  • mysql报错1033 Incorrect information in file: ‘xxx.frm’问题的解决方法

    mysql报错1033 Incorrect information in file: ‘xxx.frm’问题的解决方法

    这篇文章主要介绍了关于mysql报错1033 Incorrect information in file: 'xxx.frm'问题的解决方法,文中通过示例代码介绍的很详细,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-03-03
  • mysql如何查询某一时间段内没有卖出的商品

    mysql如何查询某一时间段内没有卖出的商品

    室友拿来一道关于mysql查询的问题,利用mysql查询某一时间段内没有卖出的商品,需要的朋友可以参考下
    2014-02-02
  • mysql的bigint 和 bigint(20) 主键自增的区别解析

    mysql的bigint 和 bigint(20) 主键自增的区别解析

    bigint和bigint(20)在MySQL中作为主键自增时,功能完全相同,本文介绍mysql的bigint和bigint(20)主键自增的区别,感兴趣的朋友跟随小编一起看看吧
    2026-01-01
  • mysql group by having 实例代码

    mysql group by having 实例代码

    mysql中group by语句用于分组查询,可以根据给定数据列的每个成员对查询结果进行分组统计,最终得到一个分组汇总表, 经常和having一起使用,需要的朋友可以参考下
    2016-11-11
  • CentOS系统下MySQL彻底卸载的几种方法

    CentOS系统下MySQL彻底卸载的几种方法

    在CentOS系统中,我们可以使用多种方法来卸载MySQL软件包,这篇文章主要给大家介绍了关于CentOS系统下MySQL彻底卸载的几种方法,文中通过代码示例将每种方法都介绍的非常详细,需要的朋友可以参考下
    2023-11-11
  • mysql模糊查询like与REGEXP的使用详细介绍

    mysql模糊查询like与REGEXP的使用详细介绍

    每位程序员们应该都知道,增删改查是mysql最基本的功能,而其中查是最频繁的操作,模糊查找是查询中非常常见的操作,于是模糊查找成了必修课。下面这篇文章就给大家详细介绍了mysql模糊查询like与REGEXP的使用,有需要的朋友们可以参考学习。
    2016-12-12
  • MySQL explain获取查询指令信息原理及实例

    MySQL explain获取查询指令信息原理及实例

    这篇文章主要介绍了MySQL explain获取查询指令信息原理及实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05

最新评论