mysqldumpによるバックアップはコストも高く、復元にも時間がかかります。
mysqlのデータベースはそもそもファイルで構成されているので、ファイルをそのまま別の場所に移動するだけでもバックアップになります。
但し、書き込みなどが頻発しているデータベースをコピーするのはデータの不整合などを起こすことがあるので、データベースへの書き込みを禁止してバックアップしてくれる、mysqlhotcopyというコマンドがあります。
次のようにコマンドを実行すると、指定したデータベースのバックアップが tmp 以下にファイルとして保存されます。
$ mysqlhotcopy -u root データベース名 /tmp/
/tmp/データベース名としてフォルダが作成され、以下にすべてのテーブルに対応するファイルが作成されます。
/tmp/データベース名 以下には3種類の拡張子のファイルがありますが、次のような構成になっています。
*.MYDファイル MySQLのデータファイル
*.MYIファイル MySQLのインデックスファイル
*.frmファイル MySQLのテーブル定義ファイル
つまり1つのテーブルにつき3ファイルが使われるということです。
作成されたバックアップをrsyncコマンドなどで他のマシンに移動しておけばバックアップも万全ですね。
復元するには、MySQLを停止し、これらのファイルをMySQLのデータディレクトリにコピーor移動してMySQLを起動すると復元が完了します。
スポンサードリンク
PHP&MySQL