背景: 因服务器升级(Windows Server 2012-> 2019),服务器非直接版本升级,而是从一台2012直接移植到2019,考虑到以后可能还会升级更高版本,因此postgre8.3版本需要升级到新版本,当前时间postgre最新版本是14
一. Postgre8.3升级Postgre14步骤:
安装postgre14
安装成功后,先尝试使用安装时设置的账号密码postgres登录
如果连接postgre的客户端还是旧版本,要么升级版本,要么只能使用默认pgAdmin4连接。否则登录会一直报错密码错误,因为pg_hba.cof配置文件中加密方法已经升级为scram-sha-256 ,也可修改成md5或trust或reject
trust -- 无条件地允许连接
reject -- 无条件地拒绝连接
md5 -- 执行SCRAM-SHA-256或MD5认证来验证用户的密码
scram-sha-256 -- 执行SCRAM-SHA-256认证来验证用户的密码
password -- 要求客户端提供一个未加密的口令进行认证。因为密码是以明文形式在网络上发送的,所以我们不应该在不可信的网络上使用这种方式
打开postgre8.3图形化操作界面pgAdmin3,点击需要备份的表右键点击backup
![](https://img-blog.csdnimg.cn/img_convert/660eadcdf8e76b54e9ef78f429f07df6.png)
备份完毕,打开postgre 14的图形化操作界面pgAdmin4,首先创建刚刚备份的数据库
![](https://img-blog.csdnimg.cn/img_convert/94b219d797773c9f71d1f51116373596.png)
删除Extensions下的plpgsql(否则会报错误:pg_restore:error: could not execute query: ERROR: extension "plpgsql" alreadyexists)
![](https://img-blog.csdnimg.cn/img_convert/771596c312b146b359c8626746793af7.png)
删除Schemas下的public(pg_restore: error:could not execute query: ERROR: schema "public" already exists)
![](https://img-blog.csdnimg.cn/img_convert/104ac2c638a4edd214c48564f0bf68aa.png)
pg_restore: ERROR: language"plpgsql" does not exist
---恢复之前执行CREATE LANGUAGE plpgsql ,创建plpgsql语言
![](https://img-blog.csdnimg.cn/img_convert/b572e1d5370778cd9445683e8f913680.png)
![](https://img-blog.csdnimg.cn/img_convert/bfb48d98f13ae999757c8c714e32904f.png)
-------------------相同版本备份恢复不会出现以上问题,因此才有了下面的postgre8.3升级9.4
导入备份文件xx.backup (Role name必须选择postgre,否则会报各种各样的错)
![](https://img-blog.csdnimg.cn/img_convert/48b9260c69f1035605680b74307f49be.png)
最终恢复成功,下图红框是绿色才是成功了
![](https://img-blog.csdnimg.cn/img_convert/5b068e485360652a0e9602a1ef63c9d0.png)
注意:postgre8.3跨平台(一台服务器迁移至另一台)直接升级14 ,postgre14自带的pgAdmin4不支持10.0版本以下的数据库,因此无法用pgAdmin连接旧服务器上的postgre8.3 ,那就用最原始的办法,在旧服务器上把postgre数据库备份,然后恢复到postgre14,不太复杂的小数据库执行以下操作就能正常升级,但是复杂的大数据库执行恢复一直各种报错
二. Postgre8.3升级Postgre9.4升级步骤(这也是最简单最有效的升级方法):
![](https://img-blog.csdnimg.cn/img_convert/3efd61a08c8747a7c92f153e8966a423.png)
![](https://img-blog.csdnimg.cn/img_convert/2a521a7ba85120e3b9ae64bc2f9e1121.png)
![](https://img-blog.csdnimg.cn/img_convert/4361fd10c1481ae1d69024c4081d2b28.png)
![](https://img-blog.csdnimg.cn/img_convert/4daa4346c479e2a55ced0feba6b8cfcb.png)