最近、誤ってステップ メソッドを使用して移行をロールバックしました。db:migrate を再度実行した後、想定どおりにすべてのデータが失われました。このデータを取得することは可能ですか。
1 に答える
件名に関するメーリングリストから取得:
最初に行うことは、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