2012-03-20 52 views
0

,我從server1上mysqdump到Server2mysqldump和FLUSH TABLES同讀鎖

我使用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小時!請幫助

+0

聽起來像是在鎖定您的old_red_notes表的其他東西上發生了死鎖。任何其他用戶/進程在您嘗試執行轉儲時碰到數據庫? – 2012-03-20 17:27:22

回答

0

以root身份執行「SHOW PROCESSLIST」以查看還有哪些進程正在打你的表並給你鎖定。如果你的表是InnoDB,那麼使用SHOW ENGINE INNODB STATUS將顯示InnoDB鎖和其他信息。如果你正在使用MyISAM,「SHOW STATUS LIKE'Table%'」會告訴你,如果你總是碰到大量的鎖,或者只有轉儲。