バックアップ、復元

Tag:

バックアップと復元の方法について説明します。

MySQLのデータベースファイル

DBを作成するとmy.iniファイルの「datadir」で指定したディレクトリ配下にDBディレクトリが作成されます。
作成されるファイルは指定されたDBエンジンによって異なります。

データベースファイル
ファイル名 DBエンジン 概要
テーブル名.frm MyISAM
InnoDB
テーブルのカラム構成など、テーブル構造のデータを格納します。
DBディレクトリ配下に作成されます。
テーブル名.MYD MyISAM テーブルの実データを格納します。
DBディレクトリ配下に作成されます。
テーブル名.MYI MyISAM インデックスの実データを格納します。
DBディレクトリ配下に作成されます。
ibdataX InnoDB テーブルの実データを格納します。
my.iniファイルの「innodb_data_home_dir」で指定したディレクトリ配下に作成されます。
ib_logfoleX InnoDB トランザクションログを格納します。
my.iniファイルの「innodb_log_group_home_dir」で指定したディレクトリ配下に作成されます。

MyISAM
テーブル毎にデータファイルが作成されます。DBディレクトリ内にある『frmファイル』、『MYDファイル』、『MYIファイル』をコピーするだけでバックアップできます。

InnoDB
テーブル毎に『frmファイル』のみ作成します。レコードとインデックデータは、『ibdataXファイル』に格納します。1つの『ibdataXファイル』内に複数のInnoDBテーブルが格納されます。バックアップするには、『frmファイル』と『ibdataXファイル』、『ib_logfileXファイル』のコピーが必要です。
※設定によっては、InnoDBでもテーブル毎にデータファイルを作成することができるようです。

コールドバックアップ

コールドバックアップの手順です。

1.mysqld停止
2. データベースファイルのコピー
3. mysqld起動

mysqldump

mysqldumpを利用するとSQLベースでバックアップを取得できます。

/* バックアップ(DB指定) */
mysqldump -uユーザ名 -pパスワード データベース名 > .dump.sqlファイル

/* バックアップ(全DB) */
mysqldump -uユーザ名 -pパスワード --all-databases > .dump.sqlファイル

復元は以下の通りです。

/* 復元(DB指定) */
mysql -uユーザ名 -pパスワード データベース名 < .dump.sqlファイル

/* 復元(全DB) */
mysql -uユーザ名 -pパスワード < .dump.sqlファイル

パスワードを指定する場合、コマンドラインの履歴(ヒストリー)に残るので注意する必要があります。

スポンサーリンク