ダンプとは
ダンプとは広義では様々な意味を持ちますが、DB界隈ではバックアップを取ることをDBをダンプすると言います。ダンプして生成したファイルをダンプファイルと呼びダンプファイルをインポートすればDBをそのまま復元出来るためとても便利です。
仮にサービスが壊れてしまい復元出来ないことになっても全く新しいコードを書いて同じサービスを作り直すことは比較的容易です。しかしDBが壊れたら復元することは困難を極めます。というよりもほぼ不可能です。だからこそDBのバックアップは必ず取っておくべきであり、手軽に残せるようなサポートが備わっています。今回はMySQLでダンプファイルを作成する方法と、復元する方法をまとめました。
ダンプファイル作成
下記のコマンドを実行すると全テーブル・全レコードのダンプファイルを作成します。
$ mysqldump -u [ユーザ名] -p[パスワード] --all-databases > [ダンプファイル名]
ダンプファイルの中身を見てみるとCREATE DATABASE
やCREATE TABLE
などのDBを作成する際に入力したであろうSQLクエリが記述されている筈です。更にはINSERT INTO
でこれまで作成し続けた全てのレコードを追加する内容も記述されているかと思います。ここまでくればダンプとは何かが大体理解出来たかと思います。
またmysqldump
コマンドには多様なオプションがあり、定義とデータを別々でダンプすることも可能です。DBによってはダンプファイルが数10GB以上になることもザラなので、レコード数やテーブルを指定したり状況に応じて必要なダンプファイルのみを作成するのが良いと思います。
ダンプをインポート
先程述べた通りダンプファイルの中身は普通のSQLクエリです。従ってsource
コマンドの引数でダンプファイルを指定すればその中のクエリが実行されてDBの作成からテーブルの作成やらレコード追加など全て通常通りに行ってくれます。
$ source [ダンプファイル名]
以上でDBのバックアップ取得は終わりです。ダンプなどという大げさな名前の割に実は大したことはありませんね。