我查看了这个网站,想知道mysqldump在线备份是否会导致我们的生产网站崩溃。从这篇文章中:Run MySQLDump without Locking Tables,显然它说mysqldump会锁定数据库并阻止插入。但经过几次测试,我好奇地发现情况正好相反。
如果我使用
mysqldump -u root -ppassword --flush-logs testDB > /tmp/backup.sql
mysqldump默认会使用'--lock-tables',这是一种READ LOCAL锁(参考mysql 5.1文档),在此期间并发插入仍然可用。我已经做了一个for循环来每秒插入到其中一个表中,而mysqldump需要一分钟才能完成。在那段时间内,每秒钟都会插入记录。这意味着,mysqldump不会中断生产服务器,INSERT仍然可以继续进行。
是否有人有不同的经验?在继续在我的生产服务器上操作之前,我想确保这一点,因此很高兴知道是否有任何错误导致我的测试不正确。
[我的mysql-server版本是5.1.52,mysqldump是10.13]