mysql 大きなデータのDBダンプ
環境
MySQL 3.23.58
DB TEST_DB(データ量がとても大きなDB)
1.普通にmysldumpでTEST_DBのダンプを取る(TEST_DB.dump.sqlに保存)
mysqldump -uuser -ppassword TEST_DB > TEST_DB.dump.sql
結果
mysqldump: Out of memory (Needed 8164 bytes)
Out of memoryがおきる。
2.テーブル毎にTEST_DBのダンプを取る
mysqldump -uuser -ppassword TEST_DB TEST_TABLE1 > TEST_DB.TEST_TABLE1.dump.sql
1つのテーブルだけ、Out of memoryがおきる。
どんだけでかいんだ…。
3.mysqldump -q でOut of memoryがおきたテーブルのダンプを取る(TEST_TABLE5)
mysqldump -q -uuser -ppassword TEST_DB TEST_TABLE5 > TEST_DB.TEST_TABLE5.dump.sql
http://dev.mysql.com/doc/refman/4.1/ja/mysqldump.html
以下引用
-q, --quick
クエリをバッファせず、stdou に直接ダンプする。これを行うには、mysql_use_result() を使用する。大きなダンプの際に特に便利である。
-q オプションを付けないと、ダンプ結果をバッファリングしてからリダイレクトで、ファイルに書き込むのかな。