【PostgreSQL】在RDS (AWS)上,重新创建已存在的数据库以使用C语言环境的步骤

首先

在AWS上创建RDS数据库时,默认创建的数据库环境中,”lc_collate”和”lc_ctype”不是设置为C。(如果使用GUI进行创建)
因此,当对名称(假名)列等进行升序排序时,结果并不符合预期!!
我将介绍如何创建C语言环境数据库以及对已有数据进行迁移的命令(导出和导入)。
请注意,似乎无法将现有数据库的区域设置更改为C……

我假定了下面的环境。

- RDS(AWS)
- PostgreSQL 13
- ssh 接続で RDS を操作

目录

    • ロケール状態確認

 

    • PostgreSQL インストール

 

    • RDS 接続確認

 

    • ダンプ

 

    • DB 作成

 

    • リストア

 

    リネーム

确认本地语言环境

确认当前状态的命令
当考虑到我们的数据库时,可以在a5mk2上执行
lc_ctype和lc_collate设置成了什么?

SELECT name, setting, context FROM pg_settings WHERE name LIKE 'lc%';

安装PostgreSQL。

接下来是正题,在安装之前执行这里。

sudo apt-get update

为了使用SQL命令,需要安装PostgreSQL。

sudo apt-get install -y postgresql-13

确认RDS连接

psql \
   --host=RDSで作成したPostgreSQLのDNS名 \
   --port=RDSで作成したPostgreSQLポート番号 \
   --username=RDSで作成したPostgreSQLのユーザー名 \
   --dbname=RDSで作成したPostgreSQLのDB名

垃圾车

如果在默认的数据库中有数据,并且想要进行迁移,需要先获取转储文件。
※转储文件将输出到当前位置。
要确认当前位置,请使用命令 pwd。
在执行之前,请断开 psql 连接。命令为 ¥q。

pg_dump \
   --host=RDSで作成したPostgreSQLのDNS名 \
   --port=RDSで作成したPostgreSQLポート番号 \
   --username=RDSで作成したPostgreSQLのユーザー名 \
   --dbname=RDSで作成したPostgreSQLのDB名 \
   > my_dump.pgdump

建立数据库

请创建C语言环境的数据库
※在执行之前,请验证RDS连接,使用psql连接

create database 新しく作るDB名 lc_collate='C' lc_ctype='C' template template0;

恢复

请在新创建的数据库中反映旧数据库的数据。
※请在获取备份的位置执行此操作。
在执行之前,请先从 psql 断开连接。

psql \
   --host=RDSで作成したPostgreSQLのDNS名 \
   --port=RDSで作成したPostgreSQLポート番号 \
   --username=RDSで作成したPostgreSQLのユーザー名 \
   --dbname=新しく作ったDB名 \
   < my_dump.pgdump

更名

如果旧的数据库名称是最佳的话,那么我们会先创建一个新的数据库名称为”旧DB名2″。

首先,执行删除旧数据库的命令。

DROP DATABASE 旧DB名;

然后改名

ALTER DATABASE 新DB名 RENAME TO 旧DB名;

最后

在实施和测试到最后阶段的时候会出现这种情况吧?排序有问题吗?
……一般来说,能更早地意识到吧…

文献引用

地域化和国际化的本地设置。

bannerAds