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 工具箱中的一个实用选择。

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

相关文章

  • 高并发状态下Replace Into造成的死锁问题解决

    高并发状态下Replace Into造成的死锁问题解决

    本文主要介绍了高并发状态下Replace Into造成的死锁问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-01-01
  • MySQL replace into 语句浅析(一)

    MySQL replace into 语句浅析(一)

    这篇文章主要介绍了MySQL replace into 语句浅析(一),本文讲解了replace into的原理、使用方法及使用的场景和使用示例,需要的朋友可以参考下
    2015-05-05
  • MySQL系列之九 mysql查询缓存及索引

    MySQL系列之九 mysql查询缓存及索引

    缓存SELECT操作或预处理查询的结果集和SQL语句,当有新的SELECT语句或预处理查询语句请求,先去查询缓存,判断是否存在可用的记录集,判断标准:与缓存的SQL语句,是否完全一样,区分大小写
    2021-07-07
  • MySQL创建数据库和创建数据表

    MySQL创建数据库和创建数据表

    MySQL 是最常用的数据库,在数据库操作中,基本都是增删改查操作,简称CRUD。但是,这篇文章主要介绍了数据库和数据表如何创建,想详细了解的小伙伴可以参考阅读一下
    2023-03-03
  • MySQL快速禁用账户登入及如何复制/复用账户密码(最新推荐)

    MySQL快速禁用账户登入及如何复制/复用账户密码(最新推荐)

    这篇文章主要介绍了MySQL如何快速禁用账户登入及如何复制/复用账户密码,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2024-01-01
  • MySQL快速插入大量数据的解决方案和代码示例

    MySQL快速插入大量数据的解决方案和代码示例

    在这篇博客中,我们将深入探讨如何高效插入大量数据到MySQL数据库,无论你是数据库新手还是经验丰富的开发者,这篇文章都将为你提供实用的解决方案和代码示例,帮助你解决插入3万条数据需要20多秒的问题,需要的朋友可以参考下
    2024-08-08
  • mysql 获取当天发布的信息的语句

    mysql 获取当天发布的信息的语句

    mysql 获取当天发布的信息的实现语句,需要的朋友可以参考下。
    2010-03-03
  • MySQL创建高性能索引的全步骤

    MySQL创建高性能索引的全步骤

    这篇文章主要给大家介绍了关于MySQL创建高性能索引的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-05-05
  • MySQL中CONCAT()函数拼接出现NULL的问题解决

    MySQL中CONCAT()函数拼接出现NULL的问题解决

    本文主要介绍了MySQL中CONCAT()函数拼接出现NULL的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • mysql中多表删除其中ID相同记录的方法

    mysql中多表删除其中ID相同记录的方法

    这篇文章主要介绍了mysql中多表删除其中ID相同记录的方法,需要的朋友可以参考下
    2014-04-04

最新评论