1

最近、誤ってステップ メソッドを使用して移行をロールバックしました。db:migrate を再度実行した後、想定どおりにすべてのデータが失われました。このデータを取得することは可能ですか。

4

1 に答える 1

0

件名に関するメーリングリストから取得:

最初に行うことは、postgresql をシャットダウンし、アーカイブされた WAL (pg_xlog 内のファイル) を含むデータ ディレクトリの完全なバックアップを作成することです。これが最初に行われていることを確認してください。

次に、バックアップはありますか?削除前のベース バックアップと、ベース バックアップの時点から現在までのすべての WAL ファイルがある場合は、データ損失の直前までポイント イン タイム リカバリを試すことができます。

http://www.postgresql.org/docs/9.1/static/continuous-archiving.html

そうでない場合、単一の行について話しているのでしょうか、それとも複数の行について話しているのでしょうか? 単一の行の場合は、ページを調べてデータを回復するなど、手動の手順を実行できる場合があります。

もう 1 つのオプションは、pg_resetxlog を試すことです (最初に安全なバックアップがあることを確認してください!)。

http://www.postgresql.org/docs/9.1/static/app-pgresetxlog.html

そして、現在のトランザクション ID を削除が実行される直前に設定してみてください。その後、pg_dump を使用するか、削除された行をエクスポートできる場合があります。

ここで詳細を読むことができます: http://postgresql.1045698.n5.nabble.com/Recover-rows-deleted-td5710305.html

于 2013-06-19T13:13:12.757 に答える