【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名;
最后
在实施和测试到最后阶段的时候会出现这种情况吧?排序有问题吗?
……一般来说,能更早地意识到吧…
文献引用
地域化和国际化的本地设置。