dポイントプレゼントキャンペーン実施中!

Linux版PostgreSQL7.Xからのバックアップファイルを使用し、Windows版PostgreSQL8.04へリストアをしたいと考えております。

具体的にどのようにしたら出来るのでしょうか?
ざっくばらんな質問で申し訳ありません、現在試しているのですが、Window版のpgadminIIIを使用しリストアしようとしても、Linux版のバックアップファイルが認識できないようで、OKボタンが押せない状態です。

A 回答 (3件)

大変失礼いたしました。

今回はキチンと
Windows版PostgreSQL8.0.4をインストールして
やってみました。

(3)の操作はやはりおっしゃるとおりになりますので、
かわりに次のようにしてください。


(2)の続き、
<1>新しく作ったDBにpsqlで接続する。

>psql -U postgres -h localhost windb

<2>ダンプファイルを読み込む。

windb=# \i C:/temp/out.sql

これでいかがでしょうか?
    • good
    • 0
この回答へのお礼

ありがとうございます!!教えていただいた通りに実行してみたところ上手くいきました。

新たにインストールまでさせてしまって、申し訳ありませんです。。

半ば諦めて力業でやろうかと考えておりましたので、本当に本当に助かりました。
感謝の気持ちで一杯です。

この度は本当にありがとうございましたm(__)m

お礼日時:2005/11/11 01:09

たしかにpgadminIIIではコケると思います。


何度もやったことがありますが、コマンドラインでリストアできると思います。

DBの文字コードは、移行前、移行後ともEUC_JPとして次のような方法で移行できます。
(ディレクトリ名など多少うろ覚えです。)

(1)LinuxのPostgreSQL7.1.x のDBをダンプ
ラージオブジェクトが含まれるなどの場合を除き、
バイナリではなく、プレインテキストでとります。

postgresユーザにスイッチして、
$ pg_dump -F p > out.sql
(より確実には $ pg_dump -F p -d > out.sql )

こうすると out.sql というダンプファイルが出来ます。これをWindowsサーバのどこかにコピーします。
たとえばC:\temp とか。

(2)WindowsのほうにDBを作る
コマンドプロンプトを開きます。
PostgreSQLのコマンドに環境変数でパスを通していない場合は、PostgreSQLのbinに移動します。

> cd C:\Program Files\PostgreSQL\8.0\bin

//たとえば移行後DBが、windbという名前なら

> createdb -U postgres -h localhost -E EUC_JP windb

(3)ファイルを指定してリストアします。

> psql -U postgres -h localhost windb < C:/temp/out.sql

コマンド実行時には、いちいちpostgresユーザのパスワードを聞いてきます。
だいたいこんな感じと思います。
    • good
    • 0
この回答へのお礼

とても丁寧な回答を本当にありがとうございました。

さっそく実行してみたのですが、一番最後の

> psql -U postgres -h localhost windb < C:/temp/out.sql

を実行したら

psql: FATAL: password authentication failed for user "postgres"

というエラーが出てしまいます。
これは何が原因なのでしょうか。。
もし知っていたら度々で誠に恐縮ですが、教えて頂けると大変助かります。

お礼日時:2005/11/09 11:09
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す