◆緊急につき早期の回答にはポイント奮発します◆

PostgreSQL上で、delete from <table_name> によって、誤ってデータを削除してしまいました。
なんとかして復旧する方法はないでしょうか?
よろしくお願いします。

回答の条件
  • 1人5回まで
  • 登録:2006/09/21 01:59:34
  • 終了:2006/09/28 02:00:08

回答(8件)

id:takahiro_kihara No.1

狂人日記回答回数833ベストアンサー獲得回数112006/09/21 02:11:42

ポイント18pt

http://www.postgresql.jp/document/ で、

日本語ドキュメントが手に入るようですよ。

でも多分、この人は、こんな回答じゃ全然

満足してくれないでしょうね。

「PostgreSQL の対話式カーソルは読み取り専用です。」だそうだから、バックアップを取っていない限り、復旧不能では?

バックアップというのは、機械のミスにだけではなく、人間のミスに対して(人間のミスにこそ?)役に立つのです。

って、そういう僕自身、最近全くバックアップとってないけど…

お役に立てず、<(_ _)>

id:tecra

うーむ。そこをなんとか。

物理的には残っているらしいのですが。。。

2006/09/21 02:14:01
id:inokuni No.2

いのくに回答回数1343ベストアンサー獲得回数212006/09/21 02:14:22

ポイント17pt

http://www.postgresql.jp/document/pg800doc/html/backup.html

貴重なデータを全て保存しているため、 PostgreSQL データベースは定期的にバックアップされなければなりません。

ということなので、バックアップしてあるかと思います。

バックアップから復旧してみては?

http://wiz.syscon.co.jp/BackupDbLinux.html

http://www.hizlab.net/app/pgadmin.html

http://www.stackasterisk.jp/tech/dataBase/postgresql02_03.jsp

id:tecra

もちろんバックアップがあれば復旧しますが、最終dumpがしばらく前なので、リストアでは十分な復旧が行えないのです。

残存ファイルやログからなんとか復旧できる方法を求む。

2006/09/21 02:28:48
id:lunlumo No.3

lunlumo回答回数107ベストアンサー獲得回数142006/09/21 02:49:05

ポイント17pt

 ここで紹介されているrecovery_target_timeを指定する方法で復旧できないでしょうか。

http://www.mono-space.net/doc/jpug_ezo2/#i11

id:tecra

あいにくPostgres7.4なので、PITRが使えないのです。

2006/09/21 02:59:05
id:wakachang No.4

wakachang回答回数185ベストアンサー獲得回数82006/09/21 03:21:01

ポイント17pt

こちらをうまく使えば復旧できると思います。

http://www.finaldata.jp/product/final_data4_4.html

id:tecra

DB上の話なので、ファイルが消えてしまったのとは少し状況が違います。

2006/09/21 03:28:29
id:hiro7days No.5

hiro7days回答回数391ベストアンサー獲得回数322006/09/21 03:46:59

ポイント17pt

http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=26804&am...

基本的にはどうにもなりません。

PostgreSQLでは、VACCUMEコマンドを実行するまでは、ディスク上に物理的にデータが存在はしています。ですがこれを元にデータを復旧する手順は用意されていないようです。

7.4ではトランザクションログを利用した実装でないので復旧は難しいかと思います。

他の商用DBであればできるのですけども・・・

@ITに同様の質問がありましたので、記載しておきます。

残念ながら、無理だと思われます。

回答になっておりませんので、ポイントは不要です。

失礼致しました。

id:tecra

xlogは残っているようなのですが、復旧手順がないんですね。。。

そろそろ諦めるしかないか。。。

2006/09/21 03:57:03
id:goldman No.6

goldman回答回数86ベストアンサー獲得回数02006/09/21 09:59:48

ポイント17pt

ROLLBACK をコマンド入力する。

id:kurukuru-neko No.7

kurukuru-neko回答回数1844ベストアンサー獲得回数1552006/09/21 11:13:59

ポイント17pt

壊れたファイルのリカバリーツールですが。

(試す前にデータは物理バックアップはしてください)

pgfsck

http://svana.org/kleptog/pgsql/pgfsck.html

id:lunlumo No.8

lunlumo回答回数107ベストアンサー獲得回数142006/09/21 21:13:32

ポイント10pt

 試したわけでも方法が紹介されていたわけでもありませんが,トランザクションIDベースで論理削除されるようなので,pg_resetxlog辺りでxidを無理繰り戻してみるのはどうでしょうか。

http://www.postgresql.jp/document/pg746doc/html/app-pgresetxlog....

  • id:kurukuru-neko

    CENTOSでPostGreSQL 7.4
    pgfsckでためしに数件のテーブルで削除を
    ためしたら。
    削除されたデータの抽出ができました。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません