[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 メーリングリストの案内