基于LVM快照mysql备份

来源:互联网 发布:詹姆斯各项数据排名 编辑:程序博客网 时间:2024/06/05 20:20

我想要创建一个lvm,然后创建一个/data目录,将lvm挂载到此目录下,然后修改mysql的datadir为/data/mysql(mysql的默认datadir为/var/lib/mysql),接着创建快照,进行mysql备份

一、创建lvm

1、添加一块硬盘/dev/sdb,划分一个分区/dev/sdb1,大小2G,修改文件类型为8e
这里写图片描述
2、创建pv、vg、lv
这里写图片描述
3、将mylv格式化,并挂载到/data
这里写图片描述
这里写图片描述
4、将/var/lib/mysql下的文件拷贝到/data
这里写图片描述

二、修改mysql的datadir的路径

1、修改/etc/my.cnf
这里写图片描述
将原本的datadir与socket注释掉,添加新的记录
2、修改/etc/init.d/mysqld
这里写图片描述
将原本get_mysql_option注释掉,添加新的记录
3、修改/usr/bin/mysqld_safe
这里写图片描述
将下面
这里写图片描述
改为
这里写图片描述
4、修改/usr/lib64/mysql/mysql_config
这里写图片描述
这里写图片描述
5、修改selinux
这里写图片描述
6、启动服务
这里写图片描述
7、登入mysql
这里写图片描述
解决办法
这里写图片描述
成功连接
这里写图片描述

三、创建快照

1、锁表
这里写图片描述
2、创建快照(在另一个控制台操作)
这里写图片描述
3、释放表
这里写图片描述
4、挂载快照
这里写图片描述
5、将快照打包,并删除快照
这里写图片描述
这里写图片描述

四、测试

1、在已有数据库learn,创建表class
这里写图片描述
2、备份日志文件(增量备份)
这里写图片描述
3、删除/data/mysql里的文件,将快照解压缩到/data/mysql
这里写图片描述
4、连接数据库
这里写图片描述
解决办法
这里写图片描述
4、查看数据库learn
这里写图片描述
恢复到创建class表之前状态
5、恢复到创建class表之后的状态
这里写图片描述
这里写图片描述

总结:花了很多时间去网上百度怎么修改mysql的datadir,尝试了很多办法,都启动不了mysql。后面终于成功启动服务,但是连接mysql时,所需要的socket文件还是在/var/lib/mysql下,只能通过链接,将/var/lib/mysql/mysql.sock链接到/data/mysql/mysql.sock。在后面的测试中,快照压缩包里不含socket文件,在还原时,还是需要重启mysql,删除原来/var/lib/mysql/mysql.sock,再进行将/var/lib/mysql/mysql.sock链接到/data/mysql/mysql.sock

0 0