恢复数据库时找不到排序规则
Posted 瀚高PG实验室
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了恢复数据库时找不到排序规则相关的知识,希望对你有一定的参考价值。
目录
环境
症状
问题原因
解决方案
环境
系统平台:Microsoft Windows (64-bit) 10,Linux x86-64 Red Hat Enterprise Linux 7
版本:4.7.7,5.6.5
症状
由Linux系统安装的标准版V4.7.7升级为windows环境企业版V5.6.5,使用navicat管理工具进行备份恢复时,本地报找不到排序规则的错误,导致恢复失败。
问题原因
因linux系统版本的数据库中自带的排序规则很多,而windows环境下自带的排序规则如下:
因为在创建表时,linux版本的数据库会默认引用排序规则如下:
CREATE
TABLE "public"."table_name" (
"code" varchar(10) COLLATE "pg_catalog"."aa_DJ.utf8" DEFAULT NULL,
"name" varchar(10) COLLATE "pg_catalog"."default" DEFAULT NULL
);
进行恢复时,报错如下:
解决方案
解决方案一:
从linux环境的数据库,升级为linux环境的数据库,不会出现此报错。(最佳选择)
解决方案二:
将备份导出为insert语句的格式,然后恢复到数据库中,此方案耗费时间较长,效率低,请慎重考虑哦。
备份:pg_dump -h localhost -U sysdba(用户名) -p 5866(端口) -d highgo(数据库名) -n test1(模式名) --inserts -f /opt/ds20210114.sql
恢复:pg_dump -h -U user_map -p 5866 -d wsrc -n public -E UTF8–insert -f D:\\ds20210114.sql
以上是关于恢复数据库时找不到排序规则的主要内容,如果未能解决你的问题,请参考以下文章