[pgsql-jp: 34027] Re: pg_dumpしたファイルが復元できない

Jun Nozaki nozakij @ zero.ad.jp
2004年 9月 23日 (木) 22:37:50 JST


野崎ともうします

ham56900さんの<4152C3C2.1040906 @ rio.odn.ne.jp>から
>初めまして、山田と申します。
>
>VineLinux3.0上で動いているpostgresql7.4.5にあるDBを、RedHat8.0上の
>postgresql7.2.2-1に移そうとしているのですが、うまくいきません。

バックアップデータにはCOPYコマンドが使用されてます。
http://www.postgresql.jp/document/pg743doc/html/sql-copy.html
に書かれていますが、7.3以前とCOPYコマンドは書式が違います。そのため、7
.4で作成されたバックアップデータはそのままリストアできません。

-- マニュアルより --
以下の構文は、PostgreSQLバージョン7.3以前で使用されていたもので、まだ
サポートされています。 

COPY [ BINARY ] tablename [ WITH OIDS ]
    FROM { 'filename' | STDIN }
    [ [USING] DELIMITERS 'delimiter' ]
    [ WITH NULL AS 'null string' ]

COPY [ BINARY ] tablename [ WITH OIDS ]
    TO { 'filename' | STDOUT }
    [ [USING] DELIMITERS 'delimiter' ]
    [ WITH NULL AS 'null string' ]
--------------------

pg_dumpでプレーンテキストで作成されたバックアップの中の下記の書式の
COPYコマンド部分を7.3以前の書式に書き換えてリストアすればうまくいくと
思います。
ただ、バックアップデータのサイズが巨大だと大変ですが……。

-- マニュアルより --
COPY tablename [ ( column [, ...] ) ]
    FROM { 'filename' | STDIN }
    [ [ WITH ] 
          [ BINARY ] 
          [ OIDS ]
          [ DELIMITER [ AS ] 'delimiter' ]
          [ NULL [ AS ] 'null string' ] ]

COPY tablename [ ( column [, ...] ) ]
    TO { 'filename' | STDOUT }
    [ [ WITH ] 
          [ BINARY ]
          [ OIDS ]
          [ DELIMITER [ AS ] 'delimiter' ]
          [ NULL [ AS ] 'null string' ] ]
--------------------

-- 
Jun Nozaki mailto:nozakij @ zero.ad.jp



pgsql-jp メーリングリストの案内