web-dev-qa-db-ja.com

MySqlデータベースを特定の時点に最も速くロールバックする方法は?

私は現在テストデータベースで作業しており、現在の構成のため、テスト後にクリーンアップすることはありません。おそらくその構成をすぐに変更することはありません。現在、ステージングサーバーにUIテストを適用するためにサーバーを使用しています。

ですから、mysqldumpを試しましたが、復元時間は遅く、次にmysqldbcopyを試しましたが、コピー時間は優れていますが、percona xtrabackupのinnobackupexを使用して増分バックアップについて何かを読んだので、もっと速くなると思います。

可能な限り高速な方法でデータベースを特定の時点にロールバックするための最良のオプションは何ですか?.

3

論理的な変更(DDL/DMLなど)を行った後で以前の状態にロールバックしようとしている場合は、xtrabackupが役立ちます。ただし、変更を行う前にMySQLがシャットダウンしている間に、データのrawコピーを作成します。変更が完了したら、MySQLを停止し、以前のコピーを復元して、バックアップを再開します。

より複雑なポイントインタイムリカバリを探している場合-はい、インクリメンタルを使用したxtrabackupは役立ちますが、以前の提案ほど速くはありません。たとえば、次のようにすることができます。

  1. 完全バックアップを取る
  2. データに変更を加える
  3. 増分バックアップを取る
  4. データに変更を加える
  5. #1からバックアップを復元
  6. データにさらに変更を加える
  7. #3からバックアップを復元-この時点で、#4を実行する前のスナップショットに復元しました。

この増分の組み合わせにより、単一の完全なrawコピーではなく、異なる時点で復元できます。

1
Jervin Real