mysqldump没有中断现场制作INSERT

syl*_*lye 10 mysql mysqldump

我即将将生产数据库迁移到另一台服务器.它大约38GB,它正在使用MYISAM表.由于我没有物理访问新服务器文件系统,我们只能使用mysqldump.

我查看了这个网站,看看mysqldump在线备份是否会打倒我们的生产网站.从这篇文章:运行没有锁定表的MySQLDump,它说明显mysqldump将锁定数据库并防止插入.但经过几次测试后,我很想知道其他情况.

如果我使用

mysqldump -u root -ppassword --flush-logs testDB > /tmp/backup.sql
Run Code Online (Sandbox Code Playgroud)

mysqldump最终会默认执行' --lock-tables ',这是一个READ LOCAL锁(参考mysql 5.1 doc),其中并发插入仍然可用.我已经做了一个for循环,每秒插入一个表,而mysqldump需要一分钟才能完成.每一秒都会在此期间插入记录.这意味着,mysqldump不会中断生产服务器,INSERT仍然可以继续.

有没有人有不同的经历?我想在继续我的生产服务器之前确保这一点,所以很高兴知道我做错了什么让我的测试不正确.

[我的mysql-server版本是5.1.52,而mysqldump是10.13]

Ron*_*obi 0

mysqldump 默认不添加 --lock-tables 。尝试使用 --lock-tables 让我知道是否有帮助

顺便说一句 - 您还应该使用添加锁,这将使您的导入速度更快!