MySQLによるオンラインバックアップで注意すること

2018/03/23更新 カテゴリー:開発奮闘記 タグ: ,
  • このエントリーをはてなブックマークに追加

MySQLによるオンラインバックアップについて。バックアップにはmysqldumpコマンドを使いますが、単純にバックアップといえども、リストア(復元)する時のことも考えてないといけません。

SPONSOR

バイナリログがどこまでかかれているか

バックアップをとったとしても、実際にリストアする際には、時間差があります。例えば今日の朝バックアップをとったとして、夜にデータが壊れてリストアする場合、朝から夜までに保存されたデータは復旧できません。そこで、バイナリログが重要になります。バイナリログには実行されたSQL文が記録されていますので、バックアップデータ+このバイナリログで補填できます。

ですので、バックアップをとる際に、その時点でバイナリログがどこまでかかれているか記録しておきます。これは–mastar-data=2オプションをつけます。

共有ロックをかける

バックアップとっている際中に更新が行われないようロックをかけます。共有ロックは参照は許可しますが、更新は行われません。ただバックアップにすごく時間がかかるデータ量だとちょっと現実的ではないかもしれません。これは–lock-all-tablesというオプションをつけます。

ということで、最終的には以下のコマンド。

mysqldump -uroot --lock-all-tables --master-data=2 > dump.sql

備えあれば憂いなし。ですね。

フリーランスエンジニアの稼ぎ方

  • このエントリーをはてなブックマークに追加
SPONSOR

PROFILE

プロフィール

入江 慎吾/サービス開発だけで生きていく
自分のサービスだけで自由に生きる。勢いで受託開発をすべてやめて、サービスだけ作って生きていくことを決めたフリーのエンジニア。得意を教えて副業にできるMENTAを開発中! (詳しいプロフィール)
WEBサービス・アプリ開発に役立つ情報をイリテクの入江がお届けします。プログラミング、UI/UXデザイン、SNS・ブログマーケティングなど、プロダクト開発だけで自由に生きていくための実践的な情報を配信しています。

PRODUCT

イリテクで開発したプロダクト

RELATION

関連する記事

SPONSOR

TAG

タグから記事をさがす