`

[转]利用LVM的快照功能做MySQL的热备份

阅读更多

利用LVM的快照功能做MySQL的热备份

MySQL的通常备份的方法有以下几种:

1、mysqldump命令

2、数据库文件拷贝命令

3、主从数据库备份

第一和第二种方法都会中断运行MySQL一段时间,尤其是在数据量比较大的时候,中断的时间会比较长,这样同时也会造成网站的中断。第三种方法虽然不会中断数据库,但主从经常会出现数据不一致的情况,而且要同时维护一台slave数据库,成本比较高。

现在给大家介绍一种利用LVM的快照功能做MySQL数据库备份的方法。这种方法最大的好处是完全不影响MySQL的运行,网站无需中断。

首先我们需要将MySQL的数据库目录放到LVM中。这个可以通过更改my.cnf的datadir参数来实现,也可以不改参数,用 ln -s 创建符号链接的方法将某一个数据库指向LVM中。

如果没有操作过LVM,可以参考这篇教程:Debian下LVM的安装和使用

lvcreate -L10G -n mysql-data vg01

mkfs.ext3 /dev/vg01/mysql-data

mkdir /home/mysqldata

mount /dev/vg01/mysql-data /home/mysqldata

chown -R mysql:mysql /home/mysqldata

ln -s /home/mysqldata/YOUR-DB /var/lib/mysql/YOUR-DB

接下来我们开始用LVM快照做备份:

1、首先给/dev/vg01/mysql-data创建一个快照卷,通常不需要为快照卷分配和父卷一样的空间大小,一般分配父卷的10%即可。

lvcreate -s -L1G -n mysql-data-snapshot /dev/vg01/mysql-data

2、用dd命令拷贝快照到备份文件

dd if=/dev/vg01/mysql-data-snapshot of=/backup/mysql-data-backup.img

3、将备份文件上传到备份服务器上

建议将备份好的文件上传到远程的服务器上,以防止服务器发生意外故障而造成本地备份文件丢失。

4、快照卷现在已经不需要了,删除掉

lvremove /dev/vg01/mysql-data-snapshot

这样我们就创建好了备份。备份周期可以一天一次,写好备份脚本,每天凌晨3-5点左右进行自动备份(该时间段一般访问量最小)。

============================================

当MySQL出现问题或者其它情况我们需要恢复备份的时候,我们可以将备份好的文件恢复到LVM中去。

1、首先创建一个新LV卷

lvcreate -L10G -n mysql-data-new vg01

2、如果本地没有保存备份文件,则从备份服务器上下载最新的备份文件

3、利用/dev/loop设备挂载备份文件

losetup /dev/loop0 mysql-data-backup.img

4、用dd命令拷贝备份文件到新建的LV卷里

dd if=/dev/loop0 of=/dev/vg01/mysql-data-new

5、关闭mysql,必要的时候同时也要关闭webserver

/etc/init.d/mysql stop

6、重新mount

umount /home/mysqldata
mount /dev/vg01/mysql-data-new /home/mysqldata

7、检查MySQL是否正常,如果一切正常,删除原来的硬盘文件,卸载loop设备

losetup -d /dev/loop0
lvremove /dev/vg01/mysql-data

备份完成!

原文网址:http://www.asklinux.com/mysql/22

分享到:
评论

相关推荐

    mysql8备份-centos8.zip

    在CentOS 8中,备份策略可能还包括系统级别的快照,例如使用LVM快照或Rsync,这样可以同时保护MySQL数据和系统文件。备份后的文件(如上述的`backup.sql`)应被安全地存储在另一台机器或者云存储服务上,以实现异地...

    MySQL数据库备份.docx

    1. **mysqldump**:MySQL自带的逻辑备份工具,支持InnoDB的热备份。适用于小型数据库,通过完全备份和二进制日志可以实现基于时间点的恢复。对于MyISAM表需使用温备份,InnoDB表则可进行热备份。 2. **基于LVM快照...

    Mysql 备份恢复与xtrabackup备份

    3. **快照备份** 是另一种热备份方法,依赖于操作系统级别的文件系统快照功能,如Linux的LVM快照。LVM快照利用写时复制技术,能够在数据发生变化时保存一致性视图。然而,快照备份的局限在于只能用于本地备份,若...

    MySQL数据库在线备份策略与实践

    通过使用mysqldump和LVM快照等技术,我们可以在数据库运行时进行数据备份,从而最小化对业务的影响。在实际应用中,应根据业务需求和数据量选择合适的备份策略,并定期测试备份的恢复能力,以确保在关键时刻能够迅速...

    MySQL数据库备份以及常用备份工具集合

    `mysqldump`是MySQL自带的逻辑备份工具,支持热备份(对InnoDB引擎)。对于MyISAM引擎,需要在备份时锁定表;而对于InnoDB,可以使用`--single-transaction`选项进行无锁热备份。在恢复时,若使用逻辑备份,记得关闭...

    03-MySQL备份与恢复1

    - LVM快照:利用Linux逻辑卷管理器创建数据的即时副本,用于快速备份。 - `mysqldump`:MySQL的内置工具,用于逻辑备份,支持单表和整个数据库的备份。 - Percona Xtrabackup:开源工具,特别适合InnoDB表的物理备份...

    MySQL备份原理详解

    快照备份是一种热备份方式,借助如Linux的LVM来实现。LVM利用写时复制技术创建快照,能够在不影响服务的前提下捕获数据库的状态。不过,快照备份局限于本地且依赖于磁盘的完整性,适用于防止误操作,但不是长期的...

    mysql备份总结

    #### 一、冷备份与热备份 **冷备份**通常是指在数据库关闭的情况下进行的数据备份。这种方法简单直接,适用于不需要频繁备份的场景。然而,在生产环境中很少会关闭数据库服务来进行备份,因此冷备份并不是一种推荐...

    关于Mysql的日志管理、备份与恢复

    - **xtrabackup**:Percona Xtrabackup是一款开源的物理备份工具,它能在不锁定数据库的情况下完成热备份,适用于大型数据库。恢复速度快,能直接恢复到任意时间点。 - **LVM快照+binlog**:Linux LVM(Logical ...

    Linux下实现MySQL数据备份和恢复的命令使用全攻略

    LVM(Logical Volume Manager)是一种在 Linux 中管理磁盘分区的高级工具,可以创建快照以备份 MySQL 数据库。步骤如下: - **创建快照卷**:使用 LVM 创建数据库所在卷的快照,这提供了一个在不影响原卷的情况下...

    MySQL备份与恢复之真实环境使用冷备(2)

    MySQL数据库的备份与恢复是确保数据安全的重要环节。在之前的讨论中,我们了解了冷备份的概念,即...通过LVM、RAID、热备份以及异地备份等手段,我们可以大大提高数据的安全性和可恢复性,从而避免潜在的数据损失风险。

    【面试资料】-(机构内训资料)MySQL篇.zip

    4. 快照备份:如LVM快照或文件系统的快照功能。 六、安全性 1. 用户权限管理:GRANT和REVOKE命令设置用户权限,以及收回权限。 2. 加密存储:使用加密连接(SSL)、加密存储过程,保护数据安全。 3. 审计日志:记录...

    网站数据自动备份方法

    另外,一种较为先进的备份方法是使用LVM快照或者利用mysqlhotcopy等工具进行热备份,这样在备份时无需停止MySQL服务。 对于虚拟主机用户,可以利用本地电脑的FTP软件设置备份任务,备份文件到本地。对于数据库,...

    数据库的守护神:灾难恢复全解析

    例如,在Linux环境下使用LVM快照技术进行备份的命令为: ```bash lvcreate -s -n snapshot_name -L 1G volume_group_name/logical_volume_name ``` ##### 6. 故障转移 故障转移机制可以在主数据库出现故障时自动...

Global site tag (gtag.js) - Google Analytics