设为首页 收藏本站
查看: 549|回复: 0

[经验分享] 使用lvm-snapshot备份mysql数据库

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-11-24 09:13:44 | 显示全部楼层 |阅读模式
前提要求:
事务日志跟数据文件必须在同一个卷上;
创建快照卷之前,要请求MySQL的全局锁;在快照创建完成之后手动释放锁;
请求全局锁完成之后,做一次日志滚动;做二进制日志文件及位置标记(手动进行);

1、为数据施加读锁,滚动二进制日志文件并记录当前二进制文件起始时间段:
wKioL1RvSi_D4vfuAAFtKk5G1DY490.jpg
2、做快照;
wKiom1RvSoDiv_mdAABmlT0HCyc181.jpg
3、释放读锁:
wKioL1RvSx7D11F2AAAutnKi6FY453.jpg
4、挂载快照,将快照里面的数据复制出来,并删除快照:
[iyunv@localhost mydata]# mount /dev/VG/mysql  /mnt/ -o ro
[iyunv@localhost mydata]# mkdir /mysqlback
[iyunv@localhost mydata]# cp -a /mnt/ /mysqlback/20141121
[iyunv@localhost mydata]# umount /mnt/
[iyunv@localhost mydata]# lvremove  /dev/VG/mysql
Do you really want to remove active logical volume mysql? [y/n]: y
  Logical 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、结合之前记录的二进制日志开始时间导出成一个文件
[iyunv@localhost mydata]# mysqlbinlog  --start-position=107  mysql-bin.000011  > /tmp/20141121.sql
7、将数据库停止,删除数据,尝试恢复数据
wKiom1RvTj2gy3E0AAJsJ4-Pw4g601.jpg
8、启动mysql服务并查看数据是否恢复:
wKiom1RvTrjR7p6fAAM4fDuE2lU178.jpg
9、使用二进制日志恢复后来创建的用户:
mysql> source /tmp/20141121.sql;
wKioL1RvUK7zh8yUAAA5lIuAUOw949.jpg

总结:
备份过程:
1、对MySQL数据库了施加读锁,防止在备份过程中有用户插入数据而导致备份后的数据不一致
2、回滚日志,使当前状态的数据做一个完整的备份,之后的数据用二进制日志恢复
3、使用SHOW MASTER STATUS命令记录日志的开始时间
4、使用lvcreate命令对lv做快照
5、去除读锁

恢复过程:
6、将创建好的lv快照挂载到目录,并将里面的数据复制出来
7、卸载快照、再删除快照
8、将从快照复制出来的数据复制到/data/mydata
9、使用mysqlbinlog结合之前记录的开始时间点导出需要的二进制数据为一个xx.sql文件
10、将sql文件导入数据库即完成整改恢复过程


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-33509-1-1.html 上篇帖子: mysql在恢复数据时出现“table full”报错 下篇帖子: 如何解决jsp+mysql出现的中文乱码问题 数据库 mysql
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表