SSブログ

MySQL の論理バックアップとリストア [インフラ]

論理バックアップとリストアについて学習結果をまとめます。

論理バックアップは mysqldump コマンドを利用します。このコマンドは、対象のデータベースの内容を SQL 文 (create 文と insert 文) でダンプ (内容をまとめてテキストに記録) します。そのため、大規模なデータベースの場合、バックアップやリストアに時間がかかってしまうという欠点を持ちます。しかしながら、オンライン (サーバ無停止状態) によるバックアップが可能なため、データベースを止めることができないミッションクリティカルな環境では必要な方法になるかと思われます。

論理バックアップとリストアの特徴は以下の通りです。

(利点)
・オンライン時に取得
・バックアップの取得範囲を選択できる (全部、データベースレベル、テーブルレベル)
・他 PC や他バージョンの MySQL への移植が容易

(欠点)
・バックアップサイズが物理バックアップと比べると大きい
・バックアップとリストアが物理バックアップと比べると遅い
(SQL 文への変換処理などが大きな要因)

手順は以下の通りです。

[1]データベース mydb のバックアップを取得する場合

[バックアップ (例) ]
1. バックアップを取得
# mysqldump -u root -proot
  --hex-blob
  --default-character-set=utf8
  --lock-tables
  mydb > /bk/mydb-dump-`date +%Y%m%d%H%M%S`.sql
・--hex-blob
 バイナリ型 (BINARY、VARBINARY、BLOG) と BIT のデータを 16進数表記で出力
・--default-character-set
 mysqldump コマンド実行時に利用するデフォルト文字コード
・--lock-tables
 テーブル毎にロックをかける

[リストア (例) ]
1. バックアップしたデータを展開
# mysql -u root -proot mydb < /bk/mydb-dump-20160211120000.sql

[2]すべてのデータベースのバックアップを取得する場合

[バックアップ (例) ]
1. バックアップを取得
# mysqldump -u root -proot
  --hex-blob
  --default-character-set=utf8
  --lock-all-tables
  --all-databases > /bk/all-dump-`date +%Y%m%d%H%M%S`.sql
・--hex-blob
 上記参照
・--default-character-set
 上記参照
・--lock-all-tables
 すべてのデータベースのテーブルにロックをかける (※)
・--all-databases
 すべてのデータベース

 ※ バックアップ中に MyISAM 型のテーブルを更新せず、InnoDB 型のテーブルに対して ALTER TABLE, CREATE TABLE, DROP TABLE, RENAME TABLE, TRUNCATE TABLE を利用しない場合、--lock-all-tables の代わりに --single-transaction を指定することもできる。

[リストア (例) ]
1. バックアップしたデータを展開
# mysql -u root -proot < /bk/all-dump-20160211120000.sql

[本]オススメの書籍

MariaDB&MySQL全機能バイブル

MariaDB&MySQL全機能バイブル

  • 作者: 鈴木 啓修
  • 出版社/メーカー: 技術評論社
  • 発売日: 2014/12/18
  • メディア: 単行本(ソフトカバー)



タグ:DB
nice!(0)  コメント(41)  トラックバック(0) 
共通テーマ:仕事

MySQL の物理バックアップとリストア [インフラ]

MySQL の物理バックアップとリストアについて学習結果をまとめます。

ハードウェア障害 (HDDの故障など)、システム障害 (OSの不具合など)、ユーザの誤操作によるデータの削除など、これら障害は、長く使っていると必ず発生します。もしこれら障害が発生したとしても、すぐにデータをリストアできるようにバックアップを常にとることが肝心です。バックアップには、物理バックアップ、論理バックアップや第三者ツールによる取得方法がありますが、今回はその中で物理バックアップ (MySQL 停止状態) について学習します。

物理バックアップとリストアの特徴は以下の通りです。

(利点)
・バックアップサイズが論理バックアップと比べると小さい
・バックアップとリストアが論理バックアップと比べると速い

(欠点)
・他 PC の MySQL への移行は互換性の問題からできない可能性あり
・MySQL の他バージョンへの移行は互換性の問題からできない可能性あり

手順は以下の通りです。

[バックアップ (例) ]
1. MySQL サーバを停止
# service mysqld stop
2. データディレクトリを圧縮保存
# cd /var/lib
# tar cvfz /bk/mysql-`date +%Y%m%d%H%M%S`.tar.gz mysql
3. MySQL サーバを起動
# service mysqld start

[リストア (例) ]
1. 障害が発生した環境を復旧
2. MySQL サーバを停止
# service mysqld stop
3. 現在のデータディレクトリを削除
# cd /var/lib
# rm -r mysql
4. バックアップしたデータを展開
# tar xvfz /bk/mysql-20160211120000.tar.gz
5. MySQL サーバを起動
# service mysqld start

[本]オススメの書籍

MariaDB&MySQL全機能バイブル

MariaDB&MySQL全機能バイブル

  • 作者: 鈴木 啓修
  • 出版社/メーカー: 技術評論社
  • 発売日: 2014/12/18
  • メディア: 単行本(ソフトカバー)



タグ:DB
nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:仕事

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。