web-dev-qa-db-ja.com

UbuntuからWin 10に複製するときにPostgresql 10でロケールに互換性がないエラーが発生する

私のUbuntu PG-10 DBで使用可能なロケールはen_US.UTF-8です。 Win-10のPG-10 DBに対してPG_Basebackupを実行すると、Psqlはエラーで接続に失敗しました

psql:致命的:データベースロケールはオペレーティングシステムと互換性がありません詳細:データベースはLC_COLLATE "en_US.UTF-8"で初期化されましたが、setlocale()によって認識されません。ヒント:別のロケールでデータベースを再作成するか、欠落しているロケールをインストールしてください。

Win10で利用可能なロケールは

                          List of databases
   Name    | Owner      | Encoding | Collate | Ctype | 
-----------+------------+----------+---------+-------+-
 postgres  | postgres   | UTF8     | en-US   | en-US |



                                           List of databases
   Name    | Owner    | Encoding |          Collate           |           Ctype            | 
-----------+----------+----------+----------------------------+----------------------------+
 postgres  | postgres | UTF8     | English_United States.1252 | English_United States.1252 |

ただし、上記のロケールは、Basebackupを実行するときに使用されません。この問題の修正。

1
user1624300

2つの異なるオペレーティングシステム間でデータディレクトリ(pg_basebackupが行うこと)をコピーすることはできません。不足しているロケールは1つの症状にすぎません。 LinuxとWindowsの間で複製する必要がある場合は、 論理複製a_horse_with_no_name を使用します。