• ベストアンサー

pgAdminIIIでのリストア

こんばんは。 pgAdminIIIを最近使いはじめました。 テーブルAを作成し、その後、そのテーブルのバックアップをCOMPRESSで作成しました。 そのバックアップファイルをデータを削除したテーブルAにリストアしようとしたのですが、 SET check_function_bodies = false というコマンドがエラーだと表示され、うまくリストアできませんでした。 何が間違っているのでしょうか? ご回答よろしくお願い致します。 ちなみにデータの文字コードはUnicodeでPostgreSQL7.3.9を利用しています。

質問者が選んだベストアンサー

  • ベストアンサー
  • nino2
  • ベストアンサー率88% (8/9)
回答No.2

pgAdminIIIに付属のpg_dump と、postgresqlのバージョンの不整合により発生するのでしょう。 pgAdminIIIを使いたいのであれば、Postgresqlのバージョンをあげるしかないのでは? (でも こんな発想は本末転倒ですが...) COMPRESS にしなければ、バックアップファイルの編集で対応可能でしょうが、そんなことまでして、使用する意味がないような気がします。

kenken48
質問者

補足

ご回答、ありがとうございます。 Postgresqlのバージョンをあげることになりそうですか・・・。 確かにCOMPRESSにしなければ、バックアップファイルを編集できますねー。それだとリストアもできるのですが、そこまでして使用する意味はなさそうですね・・・ 例えば、pgAdminIIIを使わず、コマンドプロンプトなら、うまくリストアできる可能性はあるのでしょうか? コマンドプロンプトでの操作はほとんどおこなったことがないので、これから勉強しなければなりませんが・・・ ご回答、よろしくお願い致します。

その他の回答 (3)

  • nino2
  • ベストアンサー率88% (8/9)
回答No.4

pgAdminIII HPには以下の記述があります。 Requirements PostgreSQL 7.4 or above (8.0 or above on Windows). 従って、無理では?

参考URL:
http://www.pgadmin.org/download/source.php
kenken48
質問者

お礼

そうですね。 ありがとうございます。 色々試してはみたのですが、無理でした。 ご丁寧に回答してくださってありがとうございました。

  • nino2
  • ベストアンサー率88% (8/9)
回答No.3

postgresqlがインストールされているサーバにログインして、 シェルから pg_dump コマンドを実行すれば、バックアップ可能です。 http://www.postgresql.jp/document/pg734doc/reference/app-pgdump.html あとは、どんな目的でpostgresqlを使用されているのかわかりませんが、postgresqlの最新版は8.1系 です。 7.3系と比べれば、性能、機能共に大きく改善されています。 postgresqlのバージョンアップも検討されたほうが良いかもしれません。

kenken48
質問者

補足

ご回答、ありがとうございます。 コマンド実行でバックアップを行うことができました。 ありがとうございます。 postgresqlのバージョンアップは諸事情によりできないんです。 pgAdminIIIでバックアップを取る際、もしくはpostgresql7.3.4でcheck_function_bodiesの設定を変更することはできないでしょうか? pgAdminIIIではバックアップを取る際に、自動で SET check_function_bodies='false'; が書き込まれているのでこれを何とかしたいのですが、やはりpostgresqlのバージョンアップでしか無理ですか? ご回答よろしくお願いします。

  • nino2
  • ベストアンサー率88% (8/9)
回答No.1

もしかしたら check_function_bodies が お使いのPostgresql にはない ?

参考URL:
http://ml.postgresql.jp/pipermail/pgsql-jp/2004-June/016786.html
kenken48
質問者

補足

nino2さん、ご回答ありがとうございます。 参考URLを読ませて頂いたのですが、そこに書かれているように check_function_bodieなんてありません という表示がでてしまいます。 その場合、 SET check_function_bodies = false; の記述を削除すればよいのでしょうか? ただ、バックアップをとったファイルを開いてみますと、文字化けをしていて、どの部分が SET check_function_bodies = false; に当たるのかわからないんです。エンコードを行ったのですが、どの文字種でも文字化けをしてしまいます。バイナリデータだから、当然なのかもしれませんが・・・ よろしくお願いいたします。

関連するQ&A