1

私が取り組んでいる開発タスクをスピードアップしようとしています。大規模なMySQLデータベース(約5GB)にアクセスして分析するコードを書いています。私は自分のコードをテストしたいと思っています。コードを変更した後、試してみる必要があります (DB でいくつかの挿入/更新/削除を行います)。正しく機能させるには、コードの微調整を数回繰り返す必要があります。しかし、各反復の後、コードを実行する前の状態に DB を復元する必要があります。各テストの後に完全な DB ドロップ/復元を行うのは非常に時間がかかります。これは私が現在行っていることです。したがって、巻き戻しプロセスを簡素化する方法を探しています。おそらく、データを操作したステートメント (約 30 秒間にわたって行われた) を時系列の逆順に元に戻すことができるように、十分な情報を使用して DB の変更をログに記録することによります。

より迅速な増分復元を可能にするツールを知っている人はいますか? 基本的に、クエリログを逆に再生する方法はありますか? または、少なくとも最近の変更を元に戻すために、スナップショットに対してデータの差分を実行しますか?

参考までに、私は InnoDB で MySQL 5.5.x を使用しています。私は Ruby on Rails でコーディングしていますが、Ruby 以外のコードが他にもあるので、理想的には、テストの実行前後に実行できる、言語に依存しないコマンド ライン ユーティリティのようなものを探しています。

4

1 に答える 1

1

btrfs や ZFS などのファイルシステムを使用する場合は、ファイルシステムのスナップショットを使用して状態をキャプチャできます。データベースのコンテンツ用に特別なパーティションを保持している場合、mysqld を停止し、スナップショットに戻ってサーバーを再起動するのは簡単です。

于 2012-03-06T21:50:56.480 に答える