lvm的快照(mysql备份)

1.将lv挂载mysql数据目录

先添加两块硬盘,然后重启虚拟机。

 

pv物理卷
pvcreate /dev/sdb pvcreate /dev/sdc vg卷组 vgcreate vg0 /dev/sdb /dev/sdc lv逻辑卷 lvcreate -L 3G -n /dev/vg0/lv0 vg0 格式化 mkfs.ext4 /dev/vg0/lv0 挂载 mount /dev/vg0/lv0 /usr/local/mysql/data/ 自动挂载 vim /etc/fstab /dev/vg0/lv0 /usr/local/mysql/data/ ext4 defaults 0 0
2.保证数据完整(全备 完全恢复)
[root@robin data]# mysqldump -u root -p123 --all-databases > /all.sql (全备)
删掉data目录
[root@robin data]# rm -rf ./*
初始化数据库(修改权限)
[root@localhost mysql]# /usr/local/mysql/bin/mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data
恢复备份
mysql -u root -p123 < all.sql

3.锁库
mysql> FLUSH TABLES WITH READ LOCK;
4.创建快照
[root@robin data]# lvcreate -L 300M -s -n /dev/vgmysql/lvmysql-snampshot  /dev/vgmysql/lvmysql
5.解锁
mysql> unlock tables;
6.备份

mount /dev/vgmysql/lvmysql-snampshot /opt
[root@robin opt]# tar -cvf /backup/mysql.bak.tar /opt/*
7.删除快照
[root@robin /]# umount /opt/
[root@robin /]# lvremove /dev/vgmysql/lvmysql-snampshot
#!/bin/bash
mysql -u root -p123 -e "FLUSH TABLES WITH READ LOCK;\!lvcreate -L 500M -s -n /dev/vg0/lv0
-snampshot  /dev/vg0/lv0;unlock tables;"
mount /dev/vg0/lv0-snampshot /opt
tar -cjvf /backup/mysql.data.tar.bz2 /opt/*
umount /opt/
lvremove /dev/vg0/lv0-snampshot  (用shell脚本写的3-7步)    

 恢复

1.确定mysql进程结束
[root@robin backup]# killall mysqld
2.解压恢复
[root@robin backup]# tar -xvf /backup/mysql.bak.tar -C /tmp/

[root@robin tmp]#  cd opt

[root@robin opt]# cp -r ./*  /usr/local/mysql/data/

3.重启mysqldd

[root@robin opt]# systemctl restart mysqld

[root@robin opt]# mysql -u root -p123

问题:
1.锁表(时间不好估算)
2.快照大小

 


 

posted on 2019-07-04 19:47  北橘  阅读(173)  评论(0编辑  收藏  举报