一、数据迁移到LVM
(1)操作整体流程
flush table with read locak //全局读锁
create snapshot //创建快照
show master status;show slave status; [可选
]
unlock tables //解表
Copy files from the snapshot //拷贝到快照键
Unmount the snapshot //卸载快照键
Remove snapshot
1.先看看我们的系统有没有挂载逻辑键快照
df -Th
,如果没有需要进行迁移。
2.添加虚拟硬盘后,lsblk查看是否成功
3.把这块3G硬盘做成虚拟卷
vgcreate datavg /dev/sdb
4.分配2G的逻辑键
lvcreate -L 2G -n mysql datavg
5.使用lvscan
查看到逻辑键
6.格式化mysql
mkfs.xfs /dev/datavg/mysql
7.临时挂载到mnt上
mount /dev/datvg/mysql /mnt/
8.再将数据库文件包括权限都拷贝到 mnt上
cp -a /var/lib/mysql/* /mnt/
9.再卸载mnt
umount /mnt/
10.修改fstab 让我们的逻辑键 开机挂在到mysql数据库上
vim /etc/fstab
mount -a
chown -R myssql.mysql /var/lib/mysql
systemctl start mysqld service
整理
以上步骤实现了数据的迁移,如果数据库本身就装了LVM 就不需要上面的步骤直接走下面步骤开始
二、LVM快照备份流程
- 加全局读锁(加了后就不能修改数据库的数据,只能读)
mysql->flush tables with read lock
- 创建快照
lvcreate -L 500M -s -n lv-mysql-snap /dev/datavg/lv-mysql
mysql
- 释放锁
unlock tables
1-3步骤必须要再一个会话中完成,
echo " flush tables with read lock;SYSTEM lvcreate -L 500M -s -n lv-mysql-snap /dev/datavg/mysql; UNLOCK TABLES;" | mysql
- 快照中备份
mount -o ro,nouuid /dev/datavg/mysql-snap /mnt/
ls /mn/
就是快照的那一刻的数据
[root@192 ~]# tar -cf backup_lv/`date +%F`mysql_lv.tar /mnt/*
- 移除快照
unmount /dev/datavg/lv-mysql-snap
lvremove /dev/datavg/lv-mysql-snap