[pgsql-jp: 41983] RDS上のデータベースのエンコーディングについて

熊谷総合研究所 mail @ skuma.net
2018年 8月 7日 (火) 08:45:07 UTC


初めて投稿いたします。熊谷と申します。

現在オンプレで運用しているデータベースをAWS上の
RDSへ移植作業を行っておりますが,以下の現象と
なってしまいます。

■現象
オンプレでpg_dumpにより取得したバックアップ
(データベースエンコーディングはEUC_JP)を
RDS上に構築したデータベースにリストアすると
エンコーディングがUTF-8になってしまう。

■手順
【RDS】
・DB削除
stg_xxx=> drop database xxx;
DROP DATABASE

・DB作成
stg_xxx=> create database xxx ENCODING 'EUC_JP' LC_COLLATE 'ja_JP.eucjp'
LC_CTYPE 'ja_JP.eucjp' TEMPLATE template0 owner xxx;
CREATE DATABASE

\lの結果
   名前    |  所有者  | エンコーディング |  照合順序   | Ctype(変換演算子) |
xxx       | xxx     | EUC_JP           | ja_JP.eucjp | ja_JP.eucjp

・リストア
$ psql -h10.10.10.10 -Uxxx -dxxx < xxx_stg.sql

環境は以下の通りです。
psql (9.6.5, サーバー 9.6.8)


■試したこと
上記create databaseのとき,照合順序とCtypeいずれも
「C」とした場合も結果は変わりませんでした。

また,RDSではなく別にECSを立ててそこにインストールした
PostgreSQLに対しては,同じ手順で行ってもEUC_JPで
取り込めますので,バックアップファイルの問題では
ないと思っています。

なおxxxユーザーですが,オンプレではスーパーユーザー
権限を持っていますが,RDS上ではそのようなユーザーが
作成できなかったため,一般ユーザーとしています。

対処方法等ご存知の方がいらっしゃいましたらご教示
下さいますようお願いいたします。

-------------------------
熊谷 慎一
skuma_ @ nify.com




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