通过LVM来做Mysql的热备份

以前发布在公司内网的,现在慢慢的搬到这里来。

背景知识:关于LVM以及LVM snapshot的介绍文章:http://vbird.dic.ksu.edu.tw/linux_basic/0420quota.php#lvm

下面是具体的步骤

第一步 将现有的mysql数据迁移到LVM中

su root
service mysql stop
lvcreate -L 30G -n mysql-data xpos-vg
mkfs -t ext4 /dev/xpos-vg/mysql-data
mkdir /tmp/mysql
mount /dev/xpos-vg/mysql-data /tmp/mysql
cd /var/mysql/data
tar cf – . | tar xf – -C /tmp/mysql     #将现有的数据全部拷贝到lv中
rm -rf *
umount /tmp/mysql
mount /dev/xpos-vg/mysql-data /var/mysql/data
sudo service mysql start

现在mysql就已经允许在LVM中了, lv=/dev/xpos-vg/mysql-data.

 

第二部 通过LVM snapshot备份mysql

mysql -uroot -p -e ‘flush tables with read lock;’     //防止创建快照过程中有数据写入
lvcreate -n mysql-snap -L 2G -s /dev/xpos-vg/mysql-data     //为/dev/xpos-vg/mysql-data创建snapshot
mysql -uroot -p -e ‘unlock tables;’    //解除锁
mount /dev/xpos-vg/mysql-snap /tmp/mysql/
mkdir -p /data/backup/mysql/full-bak-`date +%F`
cd /tmp/mysql/
tar cf – . | tar xf – -C /data/backup/mysql/full-bak-`date +%F`     //将snapshot中的数据备份到其他地方
cd /
umount /tmp/mysql
lvremove /dev/xpos-vg/mysql-snap    //删除snapshot

这样mysql的数据就快速备份到了/data/backup/mysql/full-bak-`date +%F`文件夹中了。

发表评论?

0 条评论。

发表评论


注意 - 你可以用以下 HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>