• ベストアンサー

postgreSQL、pg_dumpのオプションについて

postgreSQL、pg_dumpのオプションについて pg_dumpの--format=formatオプションの解説でオプション c は「形式はデフォルトで圧縮されます。」とあります。 「デフォルトで圧縮される」とはどういう事ですか? 何形式ですか?

  • ngwave
  • お礼率65% (240/366)

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

  • ベストアンサー
  • yamada59
  • ベストアンサー率74% (29/39)
回答No.1

pg_dumpコマンドによってデータベース内のデータをファイルに出力する際、とくにオプションを指定しなくてもzlibライブラリによってファイルが圧縮されるということです。

参考URL:
http://www.postgresql.jp/document/8.4/html/backup-dump.html#BACKUP-DUMP-LARGE
ngwave
質問者

お礼

ありがとうございます。 pg_dump.customを様々な解凍ソフトで試しましたが解凍できませんでした。 圧縮解凍という切口で、別のコーナで聞いてみます。

ngwave
質問者

補足

ありがとうございます。 言い忘れていましたが、 バージョン:8.1.11 OS:windows XP です。 質問の捕捉ですが、 pg_dumpから--format=p で出力したファイルpg_dump.plain pg_dumpから--format=c で出力したファイルpg_dump.custom があるとします。 pg_dump.plainはエディタで中を見ることが出来ます。 pg_dump.customを解凍する事はできますか? lhapulsというソフトから解凍するという事をチャレンジしましたがうまくいきません。 仮りに解凍できたとして、 解凍したpg_dump.customは、pg_dump.plainのようにエディタで内容が確認できますか? 内容を確認したいなら、plainで出力した後、改めて圧縮しないと無理ですか?

関連するQ&A

  • pg_dumpの文字化け

    PostgreSQLのpg_dumpを用いたバックアップで困っています。 OSはVineLinux 2.2.17-0vl10です。 あるサーバ(PostgreSQL7.0.2)のデータベースtest_db(EUC_JP)に対して、 pg_dump -D -v -i -f test.dump test.db でダンプファイルを作成しました。 COPYでは不確実な場合があるということでINSERT文で出力しました。 (データの日本語の部分が数字に変換されています) それを別のサーバ(PostgreSQL8.2.5)のデータベースtest2_db(EUC_JP)にリストアしました。 psql test2_db < test.dump すると、"(株)"という文字を含む文字列が化けてしまっていました。 同じレコードの他のカラムは大丈夫です。 このような場合の対策がありましたら教えていただきたいと思います。 宜しくお願いします。

  • PHPからPostgreSQLのダンプを実行したいのですが

    PHPからPostgreSQLのダンプを実行したいのですが、 php4.0.6から以下のsystemコマンドを実行してもダンプ採取できなく困っております。 system("pg_dump dbname > filename"); ネットで探してみて、参考になる物もありましたが成功しないので、改めてこちらで質問させてください。

  • pg_dumpの指定パラメータ

    現在、DBをバージョンアップすべく検証等をしている最中なのですが。。。 現7.4.7 → 8.3.1へ移行に当たりpg_dumpのリストアにて作業をしているのですが、 pg_dumpパラメータに -c -D を附帯させてダンプした物をリストアするとサーバ用途モデルのマシンは信じられないくらい時間を要します。 附帯無し、所要時間約1分 → 附帯有り 所要時間約130分 附帯有りの所要時間は、10年前のPCでさえも60分で完了するのに その倍以上時間を要しています。 それで、そもそも同じPostgreSQLであるならばバージョンは違えども別のRDBMSではないので パラメータに -d -D は附帯させる必要性は、全く無いのでしょうか? ご教授願えれば幸いです。宜しくお願い致します。

  • pg_dumpのバッチ実行

    Windows2008環境で、PostgreSQL8xを開発しています。 日次のバックアップで、DOSバッチからpg_dumpコマンドを実行し、 ダンプを取りたいと思います。 そこでサンプルを作成し、実行したのですが、 途中パスワードを聞かれてしまい、止まってしまいます。 実行は下記のコマンドです。 >>pg_dump -U User01 -Fc testdb > backup.dat パスワードファイル、というファイルに 「ホスト名:ユーザ名:パスワード:DB」User01の エントリを追加したところ、パスワードが聞かれなくなりました。 これはマニュアルどおりだと思います。 ただファイルにユーザ毎にパスワードを書くのもどうもイマイチで 他の方法が無いか調べています。 ・パスワードを聞かれない管理ユーザで実行する ・実はpg_dumpでパスワードを指定するパラメータがある とかあれば良いのですが・・ パスワードファイル以外に、回避方法は ありますでしょうか?。

  • pg_dumpでデータの引越し

    こんにちは。postgreSQL初心者です。 古いサーバからpostgreSQLのデータを pg_dumpもしくは、pg_dumpallで取り出し、新しいサーバに入れようとしてるのですが、以下のようなエラーが出てデータが入ってくれません。 ERROR: invalid byte sequence for encoding "UTF8": 0x8a HINT: This error can also happen if the byte sequence does not match the encoding expected by the server, which is controlled by "client_encoding". 文字コードの問題だと思うのですが、バージョンの違いや基本的な設定も関係あるのでしょうか? 環境 旧サーバ:Red hat Linux 9, postgreSQL 8.0 移転先サーバ:Fedora Core 6, postgreSQL 8.1 実行コマンド ダンプ pg_dump -d DB_NAME > FILE_NAME ※ファイルの中身はちゃんと出力されています。 リストア(?というのでしょうか?) 方法1: \i FILE_NAME > DB_NAME 方法2:cat FILE_NAME  | psql DB_NAME 両方ともエラーがでて、テーブルはできていても一部の中身が入りません。 行き詰まってしまっています。どうか宜しくお願いします。 また、現在設定されている文字コードを調べる方法や、お勧めの参考ホームページがございましたら教えてください。

  • pg_dump スキーマ バックアップでエラー

    スキーマ単位でバックアップをしたいと思ってます。 が・・ pg_dumpにてあるスキーマを指定して実行すると「PG_DUMP: no matching tables were found」のエラーが表示されます。 【環境】 PostgreSQL :9.6.0 サーバー :Windows2008 R2 クライアント:Windows7 データベース:postgres ユーザ :postgres -- スーパユーザ スキーマ :SCM -- 注意 大文字 【コマンド】エラー時 パターンA PG_DUMP -h 192.168.xxx.xxx -U postgres -p 5432 -f D:\POSGRESQL_DUMP\SCM_DUMP.DAT -n SCM -Fc postgres 【コマンド】エラー時 パターンB (スキーマに”をつける) PG_DUMP -h 192.168.xxx.xxx -U postgres -p 5432 -f D:\POSGRESQL_DUMP\SCM_DUMP.DAT -n "SCM" -Fc postgres ちなみに -n スイッチを外すと正常に実行されます。 【コマンド】正常時(-n SCMを外す) PG_DUMP -h 192.168.xxx.xxx -U postgres -p 5432 -f D:\POSGRESQL_DUMP\SCM_DUMP.DAT -Fc postgres どうか、お助け下さい。よろしくお願いします。

  • Windows版 pg_dumpの結果をログ取得

    お世話になっております。 Windows版のPostgreSQL8.1を使用しています。 Windowsのバッチファイルで毎週自動実行で pg_dumpによるバックアップを取得しようと思っています。 バックアップは正常に取得できるのですが、 どうしてもログファイルが出力できません。 手動でバッチを動かすと、プロンプトには表示が出ます。 『pg_dump: テーブル×××の内容をダンプしています』 のように。それをどうやったらファイルに残せるかを知りたいです。 実行しているコマンドは、 pg_dump.exe -f "DBバックアップファイル" -i -v -h ホスト名 -p ポート -U "ユーザ名" -F c "DB名">>"ログファイル名" としています。 以上です。宜しくおねがいします。

  • pg_dumpでパスワードなしで実行する方法

    pg_dumpでパスワードなしで実行する方法がわかりません。 マニュアルには、パスワードファイルは 実行するユーザのホームディレクトリに「.pgpass」ファイルを準備して、 パスワードの設定を記述してあげればよいとのことですが、うまくいきません。 お忙しい中、申し訳ありませんが、ご教授ねがいます。 【環境】 Windows7 PostgreSQL9.4 ちなみにパスワードファイルを保存しました。 C:\Users\(ユーザ)\AppData\Roaming\postgresql\.pgpass 以上、宜しくお願いします。

  • PHPからPostgreSQLのダンプを実行

    PHPからPostgreSQLのダンプを実行したいのですが、 php4.0.6から以下のsystemコマンドを実行してもダンプ採取できなく困っております。 system("pg_dump dbname > filename"); ネットで探してみて、参考になる物もありましたが成功しないので、改めてこちらで質問させてください。 詳細は、、、、 1.Webサイトから実行。 2.Perlだと成功します。 3.リターンコードはブランク(初期化0で、systemコマンド実行後、ページに表示して見ると表示なし。) 3.suコマンドでチェンジしても同様の結果。 ※ちなみに、Postgres接続、SQL発行などは成功しております。

    • 締切済み
    • PHP
  • pg_restoreでエラー

    こんにちは。 PostgreSQL8.1.10を使っています。 pg_dumpでバックアップしたデータをpg_restoreでリストアするときに、エラーと警告が出てしまいます。 $ pg_dump -F c mydb > db.dump $ dropdb mydb $ pg_restore -C -d postgres db.dump pg_restore: [アーカイバ(db)] TOC処理中にエラーがありました: pg_restore: [アーカイバ(db)] TOCエントリ1514; 0 0 COMMENT SCHEMA public postgresのエラーです pg_restore: [アーカイバ(db)] could not execute query: ERROR: スキーマpublicの所有者でなければなりません Command was: COMMENT ON SCHEMA public IS 'Standard public schema'; pg_restore: WARNING: 権限を取り上げられませんでした pg_restore: WARNING: 権限を取り上げられませんでした pg_restore: WARNING: 権限は付与されませんでした pg_restore: WARNING: 権限は付与されませんでした 警告: リストアにてエラーを無視しました: 1 結果を確認した限りではリストアはされているようなのですが気になります。 このエラーはどういった理由で発生しているのでしょうか。 エラーを出さなくする方法はあるのでしょうか。 無視していいものならそれでも構わないのですが、理由は知っておきたいです。