`
xitong
  • 浏览: 6178870 次
文章分类
社区版块
存档分类
最新评论

使用LVM快照做mysql完全备份和lvm的扩容

 
阅读更多

在规划mysql数据库时最好将数据和日志分开放到lvm分区中。使用LVM快照备份,需要将数据放在lvm分区。

试验中因mysql数据不是放在lvm分区,所以先将数据移到lvm分区。
1.把原来存放在普通分区的数据移至LVM中
# lvcreate -n mysql_data -L 1G GLSvg –建立lvm分区
# mkfs.ext3 /dev/GLSvg/mysql_data –进行格式化

# mysqladmin -uroot -p123 shutdown –关闭Mysql服务器
# tar cjvf /opt/mysql_data.tar.bz2 .–将原来数据库的数据打成包
# rm -rf /data2/* –删除原数据

# vim /etc/fstab –修改文件系统挂载表
/dev/GLSvg/mysql_data /data2 ext3 defaults 0 0

# tar xvf mysql_data.tar.bz2 -C /data2将原来的数据解压至新存储(LV)上

启动mysql
# cd /opt/mysql-glibc/
# ./bin/mysqld_safe –defaults-file=/data2/my.cnf &

2.为mysql_data做快照
# lvcreate -n mysql-snap -L 100M -s /dev/GLSvg/mysql_data -s给/dev/GLSvg/mysql_data建立大小为100M的快照

#ll /dev/mysqllvm/ –查看快照设备
lv_mysqllvm mysql-snap

–>mysql-snap快照设备
–>/dev/GLSvg/mysql_data存放原始数据的lvm分区
–>cow(copy online write)新写入数据,数据的写入量不能超过cow设备大小,不然整个LV存储都会坏掉,移除快照设备后,cow上写入的数据将写入到原lvm分区

# ll /dev/mapper/ –查看cow设备
mysqllvm-mysql–snap
mysqllvm-mysql–snap-cow
mysqllvm-lv_mysqllvm
mysqllvm-lv_mysqllvm-real

3、从快照上做完整备份
# mount /dev/mysqllvm/mysql-snap /mnt/ –将快照设备挂载到/mnt目录
# cd /mnt
# tar czvf /opt/mysql-snap.tar.gz ./ –备份快照上文件

4、删除快照
# umount /mnt –卸载挂载设备
# lvremove /dev/GLSvg/mysql-snap –移除快照设备

5、从快照上还原数据:
# mysqladmin -uroot -p147258369 shutdown –关闭mysql服务器
# rm -rf /data2/* –删除原Lvm上的所有数据
# tar xvf mysql-snap.tar.gz -C /data2–还原数据
# cd /opt/mysql-glibc/ –进入到mysql安装目录
# ./bin/mysqld_safe –defaults-file=/data2/my.cnf &

快照后新的操作使用binlog日志进行恢复。

注意:使用LVM快照需要进行锁表和解锁

mysql> flush tables with read lock; –锁表

mysql> unlock tables; —解锁


lvm的扩容

LVM (Logic Volume Management,逻辑卷管理),是传统商业Unix就带有的一项高级磁盘管理工具,异常强大。后来LVM移植到了Linux操作系统上,尽管不像原来Unix版本那么强大,但瘦死的骆驼比马大,Linux的LVM仍然非常强大,可以在生产运行系统上面直接在线扩展硬盘分区,可以把分区umount以后收缩分区大小,还可以在系统运行过程中把一个分区从一块硬盘搬到另一块硬盘上面去等等,简直就像变魔术,而且这一切都可以在一个繁忙运行的系统上面直接操作,不会对你的系统运行产生任何影响,很安全。
还是拿JavaEye的网站服务器随便举个小例子吧。话说今天晚上我登录JavaEye网站服务器随便这么一查看磁盘使用状况:

C代码收藏代码
  1. df-h

竟然发现/home分区的磁盘消耗的很快
C代码收藏代码
  1. FilesystemSizeUsedAvailUse%Mountedon
  2. /dev/mapper/system-home40G32G8G80%/home

有点出乎意料,已经使用了80%,如果用光了,可就有点麻烦了,所以为了安全,把/home分区扩大5GB,多给它点硬盘空间,敲入两条shell命令

C代码收藏代码
  1. lvextend-L+5G/dev/system/home
  2. resize_reiserfs-s+5G/dev/system/home

先把逻辑卷扩大5GB,再把上面的reiserfs文件系统扩大5GB,前后耗时不超过3秒钟。再df -h查看一下:
C代码收藏代码
  1. FilesystemSizeUsedAvailUse%Mountedon
  2. /dev/mapper/system-home45G32G13G71%/home

哈哈,/home立刻多了5GB,搞定收工,这是不是很像变戏法,我没停任何服务,没重起服务器,大家没有任何感觉,就一切搞定,说实话我也一直觉得LVM很cool,所以我一直是LVM+Reiserfs的忠实拥趸。有兴趣学习LVM的同学可以下载后面的附件,这可是我珍藏多年的LVM秘籍!

分享到:
评论

相关推荐

    MySQL使用LVM快照实现备份

    本文给大家详细的说明了使用LVM快照的方式来为Mysql制作备份的方法和步骤,有需要的小伙伴可以参考下

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

    2、利用LVM快照+二进制日志实现备份 3、使用Xtrabackup备份 一:实验环境介绍: 系统介绍:CentOS6.4_X64 数据库版本:mysql-5.5.33 二:基于Mysqldump命令实现备份恢复 2.1、思路概念 Mysqldump是一个逻辑备份命令...

    freezer:适用于文件系统,MongoDB,MySQL的OpenStack Swift增量备份和还原自动化工具。 LVM快照和加密支持。 在opendev.org上维护的代码镜像

    使用lvm快照备份MySQL 从特定日期自动将数据还原到文件系统 存储量低,因为备份是作为流上传的 灵活的备份策略(增量和差异) 数据以GNU Tar格式归档,用于基于文件的增量 多种压缩算法支持(zlib,bzip2,xz) ...

    MySQL备份原理详解

    这篇文章主要讨论MySQL的备份方案,重点介绍几种备份方式的原理,包括文件系统快照(LVM),逻辑备份工具Mysqldump,Mydumper,以及物理备份工具Xtrabackup,同时会详细讲解几种方案的优缺点,以及可能遇到的问题。...

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

    三种备份方案, mysqldump+binlog、xtrabackup、lvm快照+binlog。还有删除后恢复数据的详细操作

    MySQL数据库运维之数据恢复的方法

    之前三篇文章分别介绍了MySQL数据库常见的备份方法,其中包括逻辑备份和物理备份,本篇将...3、使用LVM快照卷完成数据库物理备份恢复,期间需要重启数据库服务; 二、使用mysqlbinlog进行时间点恢复 1、介绍 mysqlb

    MySQL闪回原理与实战

    也有团队利用LVM快照来缩短恢复时间,但快照的缺点是会影响mysql的性能。  MySQL闪回(flashback)利用binlog直接进行回滚,能快速恢复且不用停机。本文将介绍闪回原理,给出笔者的实战经验,并对现存的闪回工具作...

    MySQL闪回(flashback)原理与实战

    也有团队利用LVM快照来缩短恢复时间,但快照的缺点是会影响mysql的性能。 MySQL闪回(flashback)利用binlog直接进行回滚,能快速恢复且不用停机。本文将介绍闪回原理,给出笔者的实战经验,并对现存的闪回工具作比较...

Global site tag (gtag.js) - Google Analytics