Mysql_LVM快照备份、恢复

MYSQL 的 LVM 快照备份、恢复 1、划分分区 【标识号:8e】 2、创建 lvm 分区: (1)、建立 pv Pvcreate /dec/sda5 1. 查看 pv:pvs (2)、建立 vg(卷组) Vgcreate vgtest /dev/sda5 1. 查看 vg:vgs (3)、建立 lv(逻辑分区),并指定大小 Lvcreate -L 4G -n lvtest vgtest 1. 查看 lv:lvs (4)、格式化 lv(格式化逻辑分区) Mkfs.ext4 /dev/vgtest/lvtest 3、迁移原 mysql 数据: (1)、将建立的分区挂载到临时目录【不可以挂载到 /tmp 目录下】 Mount /dev/vgtest/lvtest /mysql 1. /mysql 为临时新建的目录 (2)、迁移原 mysql 数据 ①、停止 mysql 服务 Service mysqld stop ②、cd var/lib/mysql ③、tar cf - . | tar -xf - -C /mysql 1. 将数据迁移到刚才挂载的逻辑分区上【/mysql】 1. - 指输出到屏幕 1. 。 指当前目录 1. -C:指定解压的目录 (3)、卸载临时分区 Umount /mysql (4)、重新挂载到 mysql 服务的分区(/var/lib/mysql) Mount /dev/vgtest/lvtest /var/lib/mysql (5)、审核/var/lib/mysql 的权限,特别注意 selinux 恢复/var/lib/mysql 目录权限: Restorecon -R /var/lib/mysql (6)、启动 mysql 服务,若能正常启动,则 OK Service mysqld restart 4、创建快照: (1)、锁表:在命令行模式下 Mysql> flush tables with read lock (2)、查看 position 号: Mysql> Show master status 1. 记录下 position 号,假定为 106 (3)、创建快照: lvcreate -L 40M -s -n mysnap1 /dev/vgtest/lvtest 1. -L:指定容量【容量一般为已知容量的 2 倍,用完后释放】 1. -s:建立快照 -n 指定快照名 2 (4)、解锁 Mysql> unlock tables 5、备份: (1)、挂载快照 【这里我们还是挂载到刚才建的临时目录】 Mount /dev/vgtest/mysnap1 /mysql 1. 默认快照建立后,位于卷组里 (2)、从快照里备份,默认日志不备份 Tar cf 123.tar 文件 1 文件 2 文件 3 文件 4 。。。。。 (3)、删除快照,释放空间 Lvremove /dev/vgtest/mysnap1 6、恢复: (1)、停 mysql 服务 Service mysqld stop (2)、初始化 mysql 环境,日志保留 (3)、恢复备份的 tar 包【123.tar】 Tar xf 123.tar -C /var/lib/mysql (4)、重演日志,开始位置,为刚才记录 position 号 mysqlbinlog --start-posirion 106 mysql-bin.000013 | mysql -uroot -predhat (5)、启动 mysql 服务 Service mysqld start 7、测试: 登陆到 mysql 数据库,查看数据是否完整,即可!! ******************************************************************************* 恢复时,注意日志里是否有误操作的,如果有,记得跳过 mysql-proxy