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

MySQLによるオンラインバックアップについて。バックアップにはmysqldumpコマンドを使いますが、単純にバックアップといえども、リストア(復元)する時のことも考えてないといけません。
バイナリログがどこまでかかれているか
バックアップをとったとしても、実際にリストアする際には、時間差があります。例えば今日の朝バックアップをとったとして、夜にデータが壊れてリストアする場合、朝から夜までに保存されたデータは復旧できません。そこで、バイナリログが重要になります。バイナリログには実行されたSQL文が記録されていますので、バックアップデータ+このバイナリログで補填できます。
ですので、バックアップをとる際に、その時点でバイナリログがどこまでかかれているか記録しておきます。これは–mastar-data=2オプションをつけます。
共有ロックをかける
バックアップとっている際中に更新が行われないようロックをかけます。共有ロックは参照は許可しますが、更新は行われません。ただバックアップにすごく時間がかかるデータ量だとちょっと現実的ではないかもしれません。これは–lock-all-tablesというオプションをつけます。
ということで、最終的には以下のコマンド。
mysqldump -uroot --lock-all-tables --master-data=2 > dump.sql
備えあれば憂いなし。ですね。
[sc name=”engeneer”]
SHARE
PROFILE

入江 慎吾
教える、学べるオンラインメンターサービスMENTAの代表 / 2-30個のサービスをつくり、M&Aで億単位の売却 / 受託開発20年→受託をやめサービス開発に専念→個人開発でつくったMENTAがヒット→ランサーズグループにジョイン / YouTubeで「サービスづくりで生きていく」配信中 / 「自分のサービスで生きていく」をコンセプトに個人開発オンラインサロン「入江開発室」を運営(詳しいプロフィール)
教える、学べるオンラインメンターサービスMENTAの代表 / 2-30個のサービスをつくり、M&Aで億単位の売却 / 受託開発20年→受託をやめサービス開発に専念→個人開発でつくったMENTAがヒット→ランサーズグループにジョイン / YouTubeで「サービスづくりで生きていく」配信中 / 「自分のサービスで生きていく」をコンセプトに個人開発オンラインサロン「入江開発室」を運営(詳しいプロフィール)
SUBSCRIBE
メールマガジンに登録いただけると、ブログの新着記事をお知らせいたします。(励みにもなります!)また、YouTubeチャンネルでも個人開発・サービスについての情報を発信中です。