web-dev-qa-db-ja.com

xtrabackup prepare-ダンプ後または復元前?

xtrabackup --apply-logについて疑問があります。使用時に違いはありますか?ダンプの直後または復元の前(数か月後でも)に実行する必要がありますか?ばかげているようですが、何かが足りないかもしれません。

ドキュメント これを言います:

同じディレクトリにあるxtrabackup_logfileという名前のトランザクションログファイルを適用して、BACKUP-DIRでバックアップを準備します。また、新しいトランザクションログを作成します。 InnoDB構成は、バックアップが作成されたときにinnobackupexによって作成されたファイルbackup-my.cnfから読み取られます。

手伝ってくれてありがとう :)

2
Denis

純粋な運用上の立場

どのプロトコルが最適かを判断する必要があります

プランA:ダンプ後

実行--apply-logバックアップの直後。現在、完全バックアップがあります。復元時に(特に実際の災害復旧イベントで)ログの適用を適用して復旧時間を費やす必要はありません。したがって、回復はそのような悲惨な時期にのみ焦点を当てるでしょう。

プランB:復元する前

これは、バックアップの特定の時点の開始後に累積されたトランザクションが必要ない場合にのみ、有利に機能する可能性があります。このような状況は、書き込みが多い環境ではほとんど意味がありません。

おそらくこれらの状況下ではそれはより良いでしょう

  • スケジュールされたダウンタイム
  • 十分に小さいデータセット
  • バックアップまでの許容可能な時間枠(短時間)
  • バイナリログの追加バックアップ(追加保険)

エピローグ

どちらの方法を選択した場合でも、すべてのログが適切であることを確認してください。ログをすぐに適用すると、トランザクションログが破損しているかどうかがすぐにわかります。

また、本番システムのトランザクションがどれほど重いかを考慮する必要があります。どうして?

バックアップが受信トランザクションをバックアッププロセスと同じかそれよりも速く記録している場合は、PLAN Bを使用する以外に選択肢はありません。

2
RolandoMySQLDBA

復元時まで--apply-logを使用する主な理由は、 増分バックアップ をサポートすることです。

増分バックアップを作成する場合は、各増分バックアップに--apply-log --redo-onlyを使用し、復元する直前に--apply-logを使用して最終準備を行います。

それ以外の場合、増分バックアップを作成しない場合は、バックアップを作成した直後に--apply-logを実行しない理由はありません。その後、すぐに復元する準備が整います。

4
Bill Karwin

答えが見つかりました ここ 。短いのは「いつでもapply-logを実行できる」であり、リンク内のより有用な情報です。

0
Denis