MySQL 这么成熟的数据库,为什么用 mysqldump 老是要锁表,生产环境直接崩溃

2019-09-26 08:50:17 +08:00
 kisshere

MySQL5.7 版本,一张 800 万行的 MyISAM 表,准备每天定时备份,导出 SQL 至备份盘。因为是生产环境,肯定不能锁表,那样业务全都被锁死了,于是尝试各种方法:

mysqldump -u root -p --lock-tables=false MyDB MyTable>MyTable.sql //锁表卡死
mysqldump -u root -p --lock-tables=false --skip-add-locks MyDB MyTable>MyTable.sql //锁表卡死
mysqldump -u root -p --lock-tables=false --quick MyDB MyTable>MyTable.sql //锁表卡死
mysqldump -u root -p --compress --quick --triggers --routines --lock-tables=false --single-transaction MyDB MyTable>MyTable.sql //锁表卡死

用 show processlist 查看,一直卡在

SELECT /*!40001 SQL_NO_CACHE */ * FROM `MyTable`

目前根本不敢备份,用 mysqldump 就锁表,试了好多方法都不行,我快崩溃了,求 V 友数据大神帮忙

15716 次点击
所在节点    程序员
61 条回复
Felldeadbird
2019-09-26 09:51:14 +08:00
4 楼做法最好了。既不影响生产,也不影响备份。
Marstin
2019-09-26 09:54:57 +08:00
支持#11 老哥
zkaip
2019-09-26 10:00:21 +08:00
4 楼 +1
fuyufjh
2019-09-26 10:04:34 +08:00
这年头还有人用 MyISAM
xiaogui
2019-09-26 10:08:46 +08:00
推荐分主从数据库,然后用从库进行备份、查询等工作。
wps353
2019-09-26 10:20:59 +08:00
嗦嘎,这年头我还有人在使用这个引擎。
bomb77
2019-09-26 10:21:53 +08:00
lz 觉得物理备份有兼容性问题的这个思路不对,备份是用于故障意外导致原本的数据库损害无法访问等问题的恢复工作,不是拿来给你升级用的,你拿备份恢复数据的时候总不能用一个不同的 mysql 版本吧。。
升级数据库版本就是另外一个问题了。
d0m2o08
2019-09-26 10:22:21 +08:00
xtrabackup +1
用了都说好
awanabe
2019-09-26 10:37:15 +08:00
做一个主备
no13bus
2019-09-26 10:39:38 +08:00
锁表是为了一致性
ladypxy
2019-09-26 10:39:44 +08:00
Myisam 最好的备份方法是加锁,物理备份,释放锁。
如果是 zfs,直接快照,瞬间完成
a54552239
2019-09-26 10:49:58 +08:00
为啥这年头不能用 MyISAM ?
Raymon111111
2019-09-26 10:53:57 +08:00
MyISAM 不成熟
x7395759
2019-09-26 11:58:26 +08:00
学艺不精,请多看书
akira
2019-09-26 12:01:42 +08:00
不锁表的话,备出来的数据只能拿来参考,不能拿来恢复的。 而且原则上,全量备份的时候,建议还是先停业务,再来备份,会比较安全。
Sherlocker
2019-09-26 12:05:19 +08:00
mydumper 了解一下
Mac
2019-09-26 12:28:02 +08:00
主从复制,然后备份从表啊
littlewing
2019-09-26 13:02:08 +08:00
1. 用 innodb,mysqldump --single-transaction
2. 用 xtrabackup
zhaogaz
2019-09-26 13:06:10 +08:00
java,你已经是个成熟的语言了,应该学会自己写业务代码。
haozxuan001
2019-09-26 16:46:54 +08:00
我只想说一句话,不锁表,老板问你这是什么时候的数据,你说两个小时前的?五分钟前的?哪怕完成前一秒有个更新操作,你不就崩了。这个道理你不会不懂吧

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/604269

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX