免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2796 | 回复: 5
打印 上一主题 下一主题

【已解决】求教关于mysql锁表问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-10-18 11:28 |只看该作者 |倒序浏览
本帖最后由 cenalulu 于 2012-10-22 10:28 编辑

一直头疼于mysql的备份,想使用脚本自动 周期化的备份mysql,但是由于对mysql认识有限,无法解决锁表问题,特来求教,谢谢。


我目前是手工执行备份。公司的mysql数据库不大 直接mysqldump做备份,考虑到将来的还原问题,在执行mysqldump备份前进行锁表,并记录position后备份。备份完再解锁,为了不影响正常服务,现打算通过脚本 放在凌晨执行,于是问题就来了。

我原来锁表使用的sql语句为。
flush table with read lock;
放到脚本中为
#锁表
echo "flush table with read lock;" | mysql -pXXXXX
#记录position
echo "show master status;" | mysql -pXXXXX
#备份
mysqldump --all-databases -pXXXXX > /tmp/XXX.sql
#解锁
echo "unlock tables;" | mysql -pXXXXX
发现出现了问题 锁表不成功,应该是sql进程结束时自动解锁的关系

求教 如何在脚本中实现这个锁表操作呢? 谢谢。

论坛徽章:
1
戌狗
日期:2013-10-24 17:31:55
2 [报告]
发表于 2012-10-18 13:02 |只看该作者
--default-character-set=utf8 --opt --extended-insert=false "
--triggers -R --hex-blob --single-transaction db_name > db_name.sql

论坛徽章:
0
3 [报告]
发表于 2012-10-18 15:40 |只看该作者
回复 2# syzxlyx
谢谢楼上 我想问下 这样做表是锁了 但是我怎么记录当时的position 号 以方便在我将来的恢复


   

论坛徽章:
0
4 [报告]
发表于 2012-10-19 09:55 |只看该作者
--master-data 或 --dump-slave 可以记录position

论坛徽章:
0
5 [报告]
发表于 2012-10-21 14:06 |只看该作者
龙雪刚 发表于 2012-10-19 09:55
--master-data 或 --dump-slave 可以记录position

谢谢 这正是我所需要的

论坛徽章:
0
6 [报告]
发表于 2012-10-24 16:32 |只看该作者
mysqldump时直接加上--lock-all-tables就可以锁表了,不用单独执行锁表解锁命令了,还有加--flush-logs参数再dump前会重新生成一个binlog文件,记住这个文件就行了,pos一般都是从106开始,5.5以后是107,或者用 5楼的加上 --master-data这个参数就自动记录在备份文件里了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP