MySQLで増分バックアップを行う最良の方法は何ですか?
質問
MySQLバージョン5.0を使用しており、テーブルのほとんどはInnoDBです。スレーブサーバーへのレプリケーションを実行します。 MySQLログファイルを毎日バックアップすることを考えています。
質問
- ログファイルを使用せずに増分バックアップを行う他の方法はありますか?
- 増分バックアップを行う際のベストプラクティスは何ですか?
解決
AFAIK増分バックアップを実行する唯一の方法は、バイナリログを使用することです。完全バックアップ(InnoDBホットコピー)を行う場合は他のオプションもありますが、増分は、行われたすべてのトランザクションをログに記録する必要があることを意味します。
データをバックアップする理由を自問する必要があります。レプリケーション用のスレーブがあるので、誤って削除した場合にバックアップが主にデータを戻すためのものであると思いますか?
おそらく1時間ごとにログをローテーションし、バックアップを取ります。つまり、復元すると、データは最大で1時間前に残り、最後の完全なスナップショット以降の任意の時点に復元できます。
他のヒント
各スキーマに常に同じファイル名とパスを使用して、mysqldumpを使用して定期的にスキーマをダンプできます(つまり、最新のものを置き換えます)
次に、rdiff-backup、duplicity、Duplicati、Areca Backupなどの増分/デルタバックアップをサポートするバックアップツールと組み合わせます。重複ドキュメントの例:
重複はlibrsyncを使用するため、増分アーカイブはスペースです 効率的で、それ以降に変更されたファイルの部分のみを記録する 最後のバックアップ
この方法では、最初のバックアップは最初の完全なダンプの圧縮コピーになり、2番目のバックアップには1番目と2番目のダンプとの圧縮された差分が含まれます。任意の時点のmysqldumpファイルを復元してから、そのファイルをMySQLに復元できます。