jumper

コラム

MySQLのバックアップとリストア

2018年05月29日

MySQLの運用にとってバックアップとリストアは重要な作業のひとつです。DBのバックアップは、想定外のトラブルからデータを守るため、日常の保守運用では定期的に実施しています。また、そのバックアップデータはリストアによって元のDBに復元します。

SQLフォーマットとCSVフォーマット

SQLフォーマットとCSVフォーマット

MySQLのバックアップはさまざまなファイル形式で行うことができます。通常はSQLフォーマットを使うのが一般的といえますが、CSVフォーマットやその他の形式でも対応が可能です。

CSVフォーマットでエクスポートするメリットは、エクセルで直接読めることです。一般的な表計算ソフトでデータを扱える点は、DBエンジニア以外の人でも使いやすい、読めやすいなどのメリットがあります。

また、CSVフォーマットはDB構造を保持せず、データのみなので、SQLフォーマットと比べると軽量であり、バックアップファイルとしてはサーバ容量に負荷がかからない点もメリットといえます。

反面、CSVフォーマットではテーブル構造などは保持されないので、テーブル構造を含めてリストアする場合はSQLフォーマットが必須となります。

mysqldumpを使ったバックアップの作成

MySQLのバックアップ方法はいくつかありますが、mysqldumpコマンドでダンプをとるやり方が一般的です。MySQLをインストールするとmysqldumpコマンドも同時に利用できるようになります。

mysqldumpでのバックアップは、その方式にいくつかの方法があります。例えば特定のデータベースのみバックアップすることも出来ますし、全データおよびテーブル構造も含めてバックアップすることも可能です。

バックアップの実施は以下のコマンドを実行します。

$ mysqldump -u DBユーザ名 -p DB名 > 出力先ファイル名

実行後、パスワードを問い合わせしてきますので、正しいパスワードを入力すればバックアップが開始します。

これらに各種オプションを設定することが出来ます。例えば文字コードを指定するとか、ロックをかけるとかトランザクション処理を含めるなどです。

バックアップを実行すると、指定した場所にバックアップファイルが生成されますので、所定の場所に保存してください。

バッグアップデータからのリストア

バックアップで生成されたファイルから、DBを復元することをリストアといいます。リストアはmsqlコマンドを使います。バックアップの際はmysqldumpコマンドを使用しましたが、復元の場合はmsqlコマンドを使いますので間違わないようにしてください。

基本的なコマンドは以下の通りです。

$ mysql -u ユーザ名 -p < dumpファイル名
SQLフォーマットとCSVフォーマット

コマンドを実行するとパスワードをたずねてきますので、ユーザのパスワードを入力してください。これでDBが復元します。

なお、バックアップの際にテーブル構造を含めると、あらためてテーブルを構築する必要がありません。逆にいうとテーブル構造に問題がなければデータだけをリストアすればよいです。




まとめ

MySQLのバックアップ/リストアは、サービスの運用・保守では重要な作業です。いざという時にためにデータは必ずバックアップしましょう。また、定期的にバックアップをとる仕組みも必要です。障害からの迅速な復旧はデータベース管理者の大切な役割ですから、日頃からバックアップ/リストアの手順を押さえるようにしてください。


ソフトエイジェンシー関連製品URL

https://www.softagency.co.jp/products/mysql

CONTACT

製品・サービスに関するご質問、お見積もり、お問い合わせなど、お気軽にご連絡ください。

 050-5505-5509

受付時間 9:30 - 12:00, 13:00 - 17:00
(土日祝および年末年始を除く)