具有读锁的mysqldump和flush表

时间:2012-03-20 17:22:44

标签: mysql mysqldump

我从server1到server2运行mysqdump

我使用的mysqldump命令是

mysqldump -q -u dump -p######## -h ###.###.###.### --add-drop-database --add-drop-table --set-charset --all-databases > dump.sql

并且用户和权限都是正确的。

当我运行这个时,我确实得到了一个输出文件(dump.sql),但它停止在948,920字节,即使我离开它1小时也没有增加。

我已经尝试了mysqldump 8次,并使用来自正在运行的进程的相同消息:

292186  root    localhost   RED Query   26  Waiting for release of readlock LOCK TABLES `OLD_RED_NOTES` READ /*!32311 LOCAL */,`RED_ADD` READ /*!32311 LOCAL */,`RED_COUNTRY` RE

但是,如果我没有执行 FLUSH TABLES WITH READ LOCK; ,我可以毫无问题地获得7GB文件。

我简直无法理解为什么我不能用表锁来获得它!

猛烈抨击谷歌48小时!请帮忙

1 个答案:

答案 0 :(得分:0)

以root身份执行“SHOW PROCESSLIST”以查看其他进程是否正在攻击您的表并为您提供锁定。如果您的表是InnoDB,请使用SHOW ENGINE INNODB STATUS,它将显示InnoDB锁和其他信息。如果您正在使用MyISAM,“SHOW STATUS LIKE'Table%'”将显示您是否一直在进行大量锁定或仅使用转储。