PostgreSQL9.6迁移至16.2

由于更换服务器,需要将原服务器上的应用迁移至新服务器。旧服务器应用环境为.NET4.0+PostgreSQL9.6,新服务器应用环境为.NET4.0+PostgreSQL16.2。

1、备份数据库

在旧服务器中,使用 pg_dump 命令进行备份。

pg_dump -U username -W -F c -f backup_file.pgdump database_name

这一部顺利,将备份的文件复制到新的服务器。

2、还原数据库

在新的服务器上,创建新数据库。然后使用以下语句还原。

pg_restore -U username -W -d new_database_name backup_file.pgdump
问题一

提示 public scheme 已经存在。
解决:在新数据库中先删除 public scheme 后再运行就可以了。

3、迁移应用

一步步照抄旧服务器配置。

4、测试运行

测试运行并不太顺利,耗时不少。

问题一

ASP.Net State Service,.NET 的状态服务无法连接。解决:默认是手动启动的,改成自动启动。启动后问题解决。

问题二

首页404错误。
解决**:在 IIS 安装选项中,应用程序开发项下边的 ASP.NET 需要勾选。
在这里插入图片描述

问题三

报错:Only AuthenticationClearTextPassword and AuthenticationMD5Password supported for now.
解决**:
原来新版本的 PostgreSQL 默认连接已经不允许明文了,默认指定了 scram-sha-256 加密算法,而这个应用项目使用的 Npgsql.dll 版本较低不支持所以无法正确连接。

解决办法两条思路,其一换 Npgsql.dll 版本,6.0 及以上是可以支持的,但似乎就不能支持 .NET4.0了。其二则是看是否可配置 PostgreSQL 来兼容旧的方式。其二当然是代价最小的。
修改位于 PostgreSQL\16\data 下的 pg_hba.conf 文件中的连接方法将 scram-sha-256 修改为 trust 即可。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值