mysqldumpでnot found (Errcode: 24)が出た話
テーブルが大量にあるDBの運用でmysqldumpをした際に、
mysqldump -uroot hoge > /tmp/hoge_20130227.dump mysqldump: Got error: 1105: File './hoge/hoge80_201304.MYD' not found (Errcode: 24) when using LOCK TABLES
のようなエラーメッセージが表示された。
一応ファイル確認してみるも、
ll /var/lib/mysql/hoge/hoge80_201304* hoge80_201304.MYD hoge80_201304.MYI hoge80_201304.frm
ある・・・。
で、どうやらmysqldumpをする際にLOCK TABLEを実行するのだが、
テーブルが多すぎてファイルオープンに失敗しているようだった。
参照
http://bugs.mysql.com/bug.php?id=26026
検証用DBだったので、
-
- skip-lock-tablesを追加して、
mysqldump -uroot --skip-lock-tables hoge > /tmp/hoge_20130227.dump
で、解決。