「mysqldump」を使った「MySQL」のバックアップとリストア

MySQLには、mysqldumpというバックアッププログラムが用意されています。このmysqldumpを使ったバックアップとリストアについて、まとめておきます。

mysqldumpを使ったMySQLデータのバックアップ

すべてのデータベースをバックアップする場合には、-Aオプションを付けて

# mysqldump -A -u user -p > dumpfile.sql

とすることで、dumpfile.sqlというダンプファイルが作成されます。

–all-databases, -A
すべてのデータベース内のすべてのテーブルをダンプします。これは–databasesオプションを使用してコマンドラインですべてのデータベース名を指定するのと同じです。

MySQL :: MySQL 5.1 リファレンスマニュアル :: 7.12 mysqldump — データベースバックアッププログラム

また、特定のデータベースをバックアップする場合には、データベース名を指定して

# mysqldump -u user -p db_name > dumpfile.sql

とします。

–optオプションについて、MySQLのバージョンが5.1の場合には、特に明示的に指定する必要はないようです。

–opt
このオプションはショートハンドです。–add-drop-table –add-locks –create-options –disable-keys –extended-insert –lock-tables –quick –set-charsetを特定することと同じことです。速いダンプオプレーションを提供し、MySQL サーバにすばやく再ロードできるダンプファイルを生成します。

–optオプションはデフォルトで有効化されています。
http://dev.mysql.com/doc/refman/5.1/ja/mysqldump.html

ただし、4.1のマニュアルには、デフォルトで有効である旨の記述がありません。場合によって、明示的に指定する必要があるようです。

ダンプファイルを使ったMySQLのリストア

mysqldumpを使って作成したダンプファイルを使って、MySQLのリストアを行うには、以下のように作業します。

すべてのデータベースのダンプファイルをリストアする場合には、

# mysql -u user -p < dumpfile.sql

特定のデータベースのダンプファイルをリストアする場合には、まず、指定のデータベースを作成します。

# mysql -u root -p
Enter password:
mysql> CREATE DATABASE `db_name`;
Query OK, 1 row affected
mysql> exit
Bye

そのあとで、

# mysql -u user -p  db_name < dumpfile.sql

とします。

参考ページ

カテゴリー: サーバ・インフラのこと   タグ:   この投稿のパーマリンク

トラックバック

「mysqldump」を使った「MySQL」のバックアップとリストア への1件のコメント

  1. ピンバック: pc.casey.jp » [MySQL] 大容量データベースの移動(1)

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>