lvm mysql_使用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以后收缩分区大小,还可以在系统运行过程中把一个分区从一块硬盘搬到另一块硬盘上面去等等,简直就像变魔术,而且这一切都可以在一个繁忙运行的系统上面直接操作,不会对你的系统运行产生任何影响,很安全。

查看磁盘使用状况:

复制代码 代码示例:

df -h

竟然发现/home分区的磁盘消耗的很快:

复制代码 代码示例:

Filesystem                Size  Used  Avail Use%   Mounted on

/dev/mapper/system-home    40G   32G    8G  80%    /home

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

复制代码 代码示例:

lvextend -L +5G /dev/system/home

resize_reiserfs -s +5G /dev/system/home

先把逻辑卷扩大5GB,再把上面的reiserfs文件系统扩大5GB,前后耗时不超过3秒钟。

再df -h查看:

复制代码 代码示例:

Filesystem                Size  Used  Avail Use%   Mounted on

/dev/mapper/system-home    45G   32G    13G  71%    /home

然后,/home立刻多了5GB的空间。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值