xtrabackup

Percona XtraBackup mysqldumpリストア時間比較 おまけでロールフォワード

xtrabackup

xtrabackup

MySQLのリストアがめっちゃ速いXtraBackupのご紹介です。

MySQLの運用としてmysqldumpはバックアップは良いものの、リストア時はとても遅くなり問題になります。不安になってきた方は1度検証環境で現在のデータをリストアして復旧時間を計測してみると面白いかもしれません。

システムの要件や規模によりますが、秒単位で利益が発生しすぐに復旧する必要があるWEBサービス、データ容量が多くなってきた場合は、XtraBackupに切り替えた方が良いでしょう。また逆に、業務が発生していない夜間や早朝は止めて良くて、データ量も少ないシステムならmysqldumpで十分です。

 

環境

  • 1CPU 3.30GHz
  • メモリ8GB
  • バックアップ対象DB容量:3.5GB
  • CentOS7

 

 

先に結論

mysqldumpがSQLに対して、xtrabackupは解凍なので当たり前っちゃ当たり前ですが恐ろしい差がでますね。レプリケーションとかしているとリストアしている間の時間はシビアなので速いにこしたことはないのです。

 

 

MySQLで普通にmysqldumpする

 

普通にmysqldumpします。

48秒で出来ました。

 

リストア

3分23秒

 

Xtrabackupのインストール

 

 

バックアップディレクトリの作成

 

バックアップ

29秒

 

 

 

いきなり!ロールフォワード

XtrraBackupがめちゃ速!という結論は出ていますし、会社記事作成用とはいえ、せっかくDBのバックアップとリストアする作業を設けたので、ロールフォワードの訓練もしておくことにします。

 

ロールフォワード(前進復帰)

例えば、夕方17時に障害が発生し、朝5時にバックアップした復旧ポイントにデータをリストアすることをロールバック。ロールバックした地点から夕方17時まで、更新処理を改めて行うことで復旧することをロールフォワードといいます。

 

 

ロールフォワードのシナリオ

  1. データ入力する作業中に誤ってデータの削除をしてしまっている事に後で気付いた!
  2. そこでロールバック&ロールフォワードによる復旧!

茶番にお付き合い下さい。

 

 

大切なデータの追加1

 

大切なデータの追加2

 

大切なデータの追加3

 

 

…!!!

サンプルデータの追加したと思ったら消してしまっています。

大変ですね。

 

 

緊急メンテナンスモードにしましょう。

サンプルデータの追加2をなかったことにしつつ、追加1と追加3は反映させた状態で復旧させなくてはいけません。

メンテナンスモードにして復旧するというシナリオです。

 

 

リストア

MySQLを止めます。

 

旧ファイル退避。mysql.oldにバイナリログも退避される

 

バックアップディレクトリの確認

 

バイナリのポジションの把握

mysql-bin.000001のファイルの154から見ればいいことがわかります。

 

リストアします。

25秒。

速いですね!

 

感動している場合じゃありません、復旧しなければ!!

 

binlogの具合を見てみよう。

わけがわからない。文字が多すぎですよね。事前知識がないと意味わからんです。

 

書いてある内容の解説

ヒント1.  

バイナリポジションの把握から154から見ていけばいいことがわかっています。

 

ヒント2. 

#171129 19:26:25

上記は2017年11月29日19時26分25秒をあらわします。

 

ヒント3. 

# at 数字はファイルの場所を指定していると考えてください。ポジション310と629の間にINSERTのクエリがあることがわかります。

 

また、事故のクエリはDELETEです、DELETEで検索すれば良いかもしれません!

 

 

DELETEで前後5行を検索します。

あっいいですね。

ポジション1373と1501の間に問題のクエリがあることがわかります。

 

もしくは、事故った時間がわかれば話は早いです。

時間を指定することでそこの時点からファイルを参照することが出来ます。

 

 

 

復旧用クエリ抽出

事故ったクエリを迂回するように指定することで復旧用クエリを抽出することが出来ます。

 

 

MySQLの起動

 

復旧用クエリによるロールフォワード

 

データの確認

 

大丈夫そうですね。

 

無事復旧できましたね。

お疲れ様です。

 

xtrabackup
最新情報をチェックしよう!
>システム構築・保守に特化した会社です。

システム構築・保守に特化した会社です。

システムの構築・保守運用「システムガーディアン」 社内システム担当が欲しいが、専属で雇うほどの仕事量はない。 必要な時に必要なだけ頼りたいというお悩みを持つ企業様へ専門知識を持って対応を行っております。 サーバから各種システムまで自社・他社で構築されたシステムに対してサポートを行っております。

CTR IMG