mysqlのデータベースを「バックアップする方法」と「復元する方法」について!
■バックアップには2通りの方法がある
①特定のデータベースのみバックアップする
②全てのデータベースをバックアップする
■【重要】バックアップする前に知っておいて欲しい mysqldump コマンドのオプション
–single-transaction
これはInnoDB のトランザクションを利用してバックアップを取得することができる。
例えばバックアップの対象となるデータが膨大で、バックアップに1時間かかるとする。 そうした場合でもトランザクションを利用してくれるので、バックアップを開始した時点のデータも(1時間後に)終了する間際のデータも全く整合性のとれたデータであることを保証してくれます。
–single-transaction オプションは何も考えずにつけておくと良いものです。
■MySQL:特定のデータベースのデータを dump(バックアップ)する
次のコマンドで行います。
$ mysqldump --single-transaction -u DBユーザ名 -p DB名 > 出力先ファイル名
実行例)
DBユーザーはroot で test01 という名前のデータベースを/tmp/mysqldump_test01.dump というファイル名でバックアップしたい場合は、次のようになる。
実行するとパスワードを設定している場合はパスワードを聞かれるので、パスワードを入力してバックアップ完了となります。
$ mysqldump --single-transaction -u root -p test01 > /tmp/mysqldump_test01.dump
Enter password:(入力)
完了
■MySQL:全てのデータベースのデータを dump(バックアップ)する
次のコマンド
$ mysqldump --single-transaction -u root -p -x --all-databases > 出力ファイル名
■【重要】オプション -x
は、全てのデータベースの全てのテーブルをロックするためのオプション。 バックアップ中のデータの操作を禁止します。
実行例)
DB ユーザー名 root で全てのデータベースを /tmp/mysql_all_db.dump というファイル名でバックアップしたい場合は、次のようになります。
$ mysqldump --single-transaction -u root -p -x --all-databases > /tmp/mysql_all_db.dump
完了!
「復元する方法」についてはこちら