• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

使用lvm-snapshot备份mysql数据库_MySQL

mysql 搞代码 4年前 (2022-01-09) 15次浏览 已收录 0个评论

前提要求:

事务日志跟数据文件必须在同一个卷上;

创建快照卷之前,要请求MySQL的全局锁;在快照创建完成之后手动释放锁;

请求全局锁完成之后,做一次日志滚动;做二进制日志文件及位置标记(手动进行);

1、为数据施加读锁,滚动二进制日志文件并记录当前二进制文件起始时间段:

2、做快照;

3、释放读锁:

4、挂载快照,将快照里面的数据复制出来,并删除快照:

[root@localhost mydata]# mount /dev/VG/mysql /mnt/ -o ro[root@localhost mydata]# mkdir /mysqlback[root@localhost mydata]# cp -a /mnt/ /mysqlback/20141121[root@localhost mydata]# umount /mnt/[root@localhost mydata]# lvremove /dev/VG/mysqlDo you really want to remove active logical volume mysql? [y/n]: yLogical volume "mysql" successfully removed

5、向一个表插入数据是数据发生改变,要在最后使用二进制日志恢复此信息。

mysql> INSERT INTo newtb values('jack');Query OK, 1 row affected (0.01 sec)mysql> select * from newtb;+------+| Name |+------+| tom || jack |+------+

2 rows in set (0.00 sec)

6、结合之前记录的二进制日志开始时间导出成一个文件

[root@localhost mydata]# mysqlbinlog –start-position=107 mysql-bin.000011 > /tmp/20141121.sql

7、将数据库停止,删除数据,尝试恢复数据

8、启动mysql服务并查看数据是否恢复:

9、使用二进制日志恢复后来创建的用户:

mysql> source /tmp/20141121.sql;

总结:

备份过程:

1、对MySQL数据库了施加读锁,防止在备份过程中有用户插入数据而导致备份后的数据不一致

2、回滚日志,使当前状态的数据做一个完整的备份,之后的数据用二进制日志恢复

3、使用SHOW MASTER STATUS命令记录日志的开始时间

4、使用lvcreate命令对lv做快照

5、去除读锁

恢复过程:

6、将创建好的lv快照挂载到目录,并

本文来源gaodai^.ma#com搞#代!码网

将里面的数据复制出来

7、卸载快照、再删除快照

8、将从快照复制出来的数据复制到/data/mydata

9、使用mysqlbinlog结合之前记录的开始时间点导出需要的二进制数据为一个xx.sql文件

10、将sql文件导入数据库即完成整改恢复过程


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:使用lvm-snapshot备份mysql数据库_MySQL

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址