• 締切済み
  • 困ってます

Linux上のpostgreSQLデータをWindowsでみたい

サーバA(OS:Linux Fedora Core 4、データベース:PostgreSQL 8.0 で運用しているシステムがあり、毎日そのデータを下記のdumpコマンドで PostgreSQLの全データをバックアップしています pg_dumpall > postgres.out  サーバAを触るのは怖いので、別のマシンB(Windows-Xp)に postgresql-8.2.6をインストールしました。 このバージョンは、postgresqlとともに、pgAdmin3というGUIの管理 ツールもついていると聞きここに、サーバAからバックアップされている postgres.outをrestoreして pgAdmin3でデータベース・テーブル等をみようとしています (postgres.out)を使ってのリストアの仕方は (1)(postgres.out)をpostgresqlの/binディレクトリの中に入れる (2)psqlのメニューから次のコマンドを打つ psql -d manmg -f postgres.out   (3)pgAdmin3を立ち上げるとサーバAのDBは追加されているようなのですが  テーブルは(0)となって見えません マシンBの方のPostgreSQLについてはインストールしたままでサーバA のpostgresqlの設定等は何もしていません 何か設定する所はあるのでしょうか 上記手順でlinuxから吐出されたバックアップデータをWindowマシンに リストアする方法は間違っていないのでしょうか よろしくお願いします。

共感・応援の気持ちを伝えよう!

  • PostgreSQL
  • 回答数1
  • 閲覧数522
  • ありがとう数3

みんなの回答

  • 回答No.1
  • alte_6
  • ベストアンサー率60% (9/15)

別のプラットホームにリストアした事はありませんが 8.2形式でバックアップするか、8.0のリストア環境が必要 と思います。 あとはエラーを確認する必要があるかと思います。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

回答ありがとうございました。 質問させていただいた後、いろいろ調べていると下記URLでの質問と回答をみました http://questionbox.msn.co.jp/qa1763993.html 当方が困っていることと同じだったのでこれを試したら とりあずうまくいきました ありがとうございました。 これからも、また、わからないことで質問させてください

関連するQ&A

  • Postgresqlのレポート機能について

    Postgresql8.1とAccess2003にて販売管理システムを構築しております。 データベースサーバーは会社に設置しており 自宅からPgAdmin1.10にて接続し管理などを行っております。 サーバーにはA、Bと同じ構成をしたデータベースが存在しています。 PgAdminからAのテーブルにSQLを実行したところ タイムアウトなのか無限ループに陥ったのか、エラーでSQLの処理が止まってしまい PgAdmin毎落ちました。 仕方なく、再度PgAdminからAのデータベースに接続しようとすると 「could not receive data from server: Software caused connection abort(0x00002745/10053)」 とエラーが表示され、その後一切の接続できなくなりました。 PgAdminの再インストールや、PC・ネットワーク環境を変えたりしましたが どの方法でもA、Bともに接続不可となってしまいました。 そこでサーバー自体の再起動を行いましたところ アプリケーション(Access)からAのデータベースに接続することができ データの読み書きも問題なく出来ました。 また、PgAdminを使った場合も外部から接続するのではなく 同じローカルネットワーク内から接続すると問題なく A、Bのデータベースに接続でき、テーブルの参照やレコードの編集、 VACUUMやバックアップ(pg_dump)も可能でした。 ここでまず一つ目の質問ですが、 このA、Bのデータベースは、破損している状態でしょうか? もしくはPostgreSQL毎破損している状態でしょうか? PgAdminから出力できるレポートで該当テーブル全体の統計情報を見ると タプルの挿入や更新などがすべて「0」で表示されます。 (サイズだけは計算されて、恐らく実データ量だと思われるバイト数が表示されていました) 二つ目の質問ですが、 Aのデータベースの状態が”壊れている状態”だとしたら、すぐにでも バックアップを取り、新しくデータベースを作り直してリストアしたいと考えていますが バックアップ前のデータベースとリストア後のデータベースを比較して、 レコードがすべてリストア出来ているかを確認したいのですが どのような方法で確認できますか? 例えば全テーブルのレコード数一覧などを出力し比較出来る事が望ましいですが 前述のテーブルの統計情報レポートでは、まともに数字が表示されないので 困っております。 (なお、アーカイブ形式のバックアップだと一部テーブルのレコードが一切復元されない という現象が発生した為、プレーン形式でのバックアップを考えています。 プレーン形式で書き出して中身を見たところ、問題のテーブルのレコードも はき出されておりました。(これも、"破損"と考えた要因の一つです)) 現状、アプリケーションからの利用だけで言えば、特段問題がありませんが やはり気持ちが悪く、出来る限り修復(or再構築)を行いたいと考えています。 詳しい方、アドバイスなどあれば是非教えてください。 宜しくお願いいたします。

  • 停止したpostgresqlサーバのデータを取出せたい

     linuxマシーンでposgresqlサーバを運用しています。 事情により、OSが起動できなくなりました。  ほかのマシーンでHDDの中のpostgresqlサーバの データ:/var/lib/psql/dataを見えて編集などができ ます。  データベースのデータを取り出したいですが、アドバ イスをよろしくお願いします。

  • win版postgreSQL8のpsqlをネットワーク越しに。

    win版postgreSQL8のpsqlをネットワーク越しのPCで使いたいと思っています。 今マシンAにpostgreSQLがインストールされているとします。 そのマシンの中にあるpsqlをそのままマシンBにコピーして、マシンB上から起動すればそのまま使えるのでしょうか? 何かpgAdmin3などであらかじめ設定がいるのですか?

  • データベースの移転がうまくできません

    PostgresSQLに詳しい方、教えてください。 現在、私はネットショッピングサイトのサーバ管理をしており、データベースにPostgresSQLを使ってます。 サーバのハードが老朽化してきたため、今までの自社サーバーをやめ、レンタルサーバをかりてそこへサイト移転することになりました。 PHPやHTMLといったソース類は、容易に移転できたのですが、データベースの移転がうまく行かず困っております。 どなたかご教示ください。 ■環境(移転元) サーバ:自社サーバ OS:Linux version 2.4.20-16.9 Postgresバージョン:psql (PostgreSQL) 7.3.4 ■環境(移転先) レンタルサーバ会社:さくらインターネット サービス名:さくらのVPS(v3) 1G OS:Linux version 2.6.32-279.1.1.el6.x86_64 Postgresバージョン:psql (PostgreSQL) 8.4.13 ■現象 移転元のサーバにて、pg_dump -i コマンドを実施。 生成されたダンプファイルをFFFTPにて自分のWindows7のマシンに保存。 Windows7上のエディター(DreamWeaver)でファイルを開くと文字化けしています。 エディターのエンコードをシフトJIS→EUCに変更するとデータベースに入力されている文字列をきちんと見ることができます(一部文字化けは残るのですが。)ので、ここまでは成功しているように思っています。 このダンプファイルをFileZillaにて移転先のサーバにアップロード。 psqlコマンドでリストア。 あらかじめ、移転先のPostgresには移転元のデータベース名と同じものを作成し、ユーザー名も同じものを作成してあります。 ところが、いざselectコマンドを使いデータを検索してもあるはずのデータが出てきません。 テーブルはきちんと作成されているようなのですが。 どうしたらデータをきちんと移転できるのでしょうか? どなたか、ご教示頂けないでしょうか。

  • PostgreSQL バッチでバックアップ

    PostgreSQL 8.4に関する質問です。 サーバ:Linux、PostgreSQL 8.4 クライアント:Windows 7 Windowsマシンから、バッチファイルでサーバ上のPostgresのバックアップを取りたいのですが、 以下のコマンドをバッチファイルに記述して実行すると、 「パスワード:」というプロンプトが出て処理が止まってしまいます。 pg_dump.exe -h [DBサーバのIP] -U [ユーザ名] -F custom -b -v -f "C:\test.backup" "test" パスワードを入れればバックアップはできるのですが、 パスワードの入力まで完全自動化するにはどうすればいいでしょうか。 Linux上のPostgresはSSL接続のみ許可するようになっています。 Windowsのタスクで毎日バックアップする運用を想定しています。

  • ファイルアップロードによるPostgreSQLのデータ更新について

    OSはRedhat7.2、webサーバとしてはapache1.3.26を使用しています。 現在PHP4とPostgreSQLを使用してのwebアプリを構築中ですが、データベースへのレコード追加のことで質問があります。 テキストファイルをアップロードしデータベースに流し込むという処理をPHPから行いたいのです。 PostgreSQLに用意されているCOPYコマンドを使おうと思っていたのですがどうやらこれはPHPからは使えないらしいのです。このコマンドはPostgreSQLのスーパーユーザのみ実効可能とのことですが、DB接続時のユーザをスーパーユーザにしてもだめでした。 現在は、 echo \\\copy テーブル名 from '/tmp/$uploadfile_name' | /usr/local/pgsql/bin/psql データベース名 という文をシステム関数を使用して流すことにより処理していますが、これだとwebサーバとデータベースサーバが同じマシンじゃないとだめです。 データベースサーバとwebサーバを別のマシンにして同じような処理をするには、テキストファイルの中身を1行ずつ変数に格納して、1行ずつinsert文を発行していくしかないのでしょうか?また、この方法だと処理時間はかなりかかるのでしょうか?ちなみにテキストデータの中身は大体200行前後で一番多いときで1000行ほどです。フィールド数は70ほどです。どなたかよい方法があれば教えてください。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • PostgreSQLについて

    PostgreSQLが既に起動しているにも関わらず、 操作ミスで『psql.exe』をダブルクリックしてしまい、 コマンドプロンプトが立ち上がりパスワードを求められたので「postgres」を入力しましたら、 コマンドプロンプトが閉じました。 動作確認を行った結果、使用しているアプリケーションの動作は問題なさそうだったのですが、 何か問題とか起こってないでしょうか。 PostgreSQLがまったく初心者の為、大変申し訳ありませんがご回答よろしくお願い致します。

  • Linuxでpostgresのテーブルの同期をとりたい

    Linuxでpostgresのテーブルの同期をとりたい Linux上で動いている2つのpostgresのテーブルデータの同期をとりたいと考えています。 具体的には、Aサーバーのテーブルが更新されたら、Bサーバーのテーブルも同様の更新したいのです。 Windowsでは使えそうなツールがあったのですが、Linuxに対応していないみたいなので・・・ postgresのバージョンは、8.3.9です。 何か良い方法がありましたら、ご教授願います。

  • PHPからPostgreSQLにアクセスするには?

    PostgreSQL-Ver8.0.2のWindows版をWindowsXP上に導入し、pgAdmin IIIなどを使いなんとか自前のユーザ名、パスワードを設定して、データベースおよびテーブルを作成しました。そしてコマンドプロンプト上では、Linux環境と似たようなコマンドラインからの入出力ができるようです。 ところが、PHPにDBアクセスのルーティンを埋込み実行するとエラーになります。おそらく、PostgreSQLサーバー起動時のパラメータ設定およびパスの通し方に問題があると考えられるのですが、どなたかご存知の方お知恵を貸してくださいませんか? エラーメッセージは下記の通りです。 Fatal error: Call to undefined function: pg_connect() in C:\Apache2……

  • LinuxからWindowsへのリストアについて

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