MySQLをバックアップする方法
アプローチはふたつある。
- テーブルファイルを丸コピーする
- SQLをつかう
ファイルを丸コピーする これはちょっとチート臭い。けどこれが一番楽。(昔はよくやった。今でも使えるのかなぁ)
テーブルファイルを丸コピーする
cd /var/lib/mysql/DATABASE_NAME cp TABLE_NAME.* TABLE_NAME_2.*
SQLをつかう
bash> echo "CREATE table as TABLE_NAME from SELECT * FROM TABLE;" | mysql -p -u USERNAME mysql> CREATE table as TABLE_NAME from SELECT * FROM TABLE;
SQL経由じゃないと怖いからヤダってときは後者。ただ前者の方が圧倒的に早い。
ちなみにmysqlのDumpコマンドは後者のアプローチ
2014-08-04追記
サンプルが動かなくなってたので記述修正。
mysql のコピーは以下のとおりに出来る。
mysql> CREATE table COPY_TABLE_NAME SELECT * FROM ORIGINAL_TABLE;