2012年3月29日

[pgsql-jp: 41071] Re:エンコーディングの異なるデータベースのバックアップ、リストアについて

小沢さん


MauMauといいます。

9.1のpg_dumpでは次のように-Eが使えます。
しかし、8.0にはこの記述がないため、8.1以降で追加された機能だと思います。

[マニュアルからの抜粋]
-E encoding
--encoding=encoding
指定した文字セット符号化方式でダンプを作成します。デフォルトではダンプはデータベースの符号化方式で作成されます。(PGCLIENTENCODING環境変数を好みのダンプ時の符号化方式に設定することで、同じ結果を得ることができます。)

そこで、8.0と同じマシンか別のマシンに9.1をインストールし、
9.1のpg_dumpで8.0のサーバに接続してダンプを取得されてみてはいかがでしょう。
結果をこのMLで共有していただければ幸いです。

それがうまくいかなかった場合は、何らかの文字コード変換ツールでダンプファイルを変換することになります。
Linuxではたいていiconvというコマンドが入っています。
たとえば、シフトJISからUTF8に変換するには、次のように実行します。

iconv -f SJIS -t UTF8 dump.sql > dump_UTF8.sql


以上です。

----- Original Message -----
From: "小沢 和也 (Kazuya Ozawa)" <ozawa@xxxxx>
To: "PostgreSQL Japanese Mailing List" <pgsql-jp@xxxxx>
Sent: Thursday, March 29, 2012 4:06 PM
Subject: [pgsql-jp: 41069]エンコーディングの異なるデータベースのバックアップ、リストアについて


> お世話になります。小沢と申します。
>
> バージョン8.0.14で作られた、SQL_ASCIIのデータベースを、
> 8.4にUTF8でリストアしたいのですが、単純にリストアしても
> うまくいかないようです(当たり前かと思いますが)
>
> バックアップ時にUTF8で出力する、またはリストア時に
> UTF8に変換する、といった事は可能なのでしょうか。
> また、これらを可能にするツールなどがあるのでしょうか。
>
> これらが出来ない場合は、二つのデータベースをつなげて、
> SELECTとINSERTでこまめにコピーするアプリを作るしか
> 無いのでしょうか。
>
> 良い方法をご存知の方は、ぜひご教授お願いいたします。
>
> 環境:
> Windows版Postgres 8.0.14と8.4
> OS:2000、XP、Vista、7等
>


投稿者 xml-rpc : 2012年3月29日 19:43
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/109199
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。