问题背景
环境
操作系统:windows 10
服务器端数据库版本:postgresql-15.3
数据库工具:DBeaver_23.1.1
问题描述
在windows上导出备份数据库时,发生了报错,报错信息如下:
Task 'PostgreSQL 杞偍' started at Wed Jul 05 09:57:30 HKT 2023
pg_dump: error: server version: 15.3 (Debian 15.3-1.pgdg110+1); pg_dump version: 14.2
pg_dump: error: aborting because of server version mismatch
Task 'PostgreSQL 杞偍' finished at Wed Jul 05 09:57:30 HKT 2023
2023-07-05 09:57:30.496 - IO error: Process failed (exit code = 1). See error log.
2023-07-05 09:57:30.496 - java.io.IOException: Process failed (exit code = 1). See error log.
at org.jkiss.dbeaver.tasks.nativetool.AbstractNativeToolHandler.validateErrorCode(AbstractNativeToolHandler.java:242)
at org.jkiss.dbeaver.tasks.nativetool.AbstractNativeToolHandler.executeProcess(AbstractNativeToolHandler.java:223)
at org.jkiss.dbeaver.tasks.nativetool.AbstractNativeToolHandler.doExecute(AbstractNativeToolHandler.java:262)
at org.jkiss.dbeaver.tasks.nativetool.AbstractNativeToolHandler.lambda$0(AbstractNativeToolHandler.java:83)
at org.jkiss.dbeaver.runtime.RunnableContextDelegate.lambda$0(RunnableContextDelegate.java:39)
at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:122)
可以发现是因为服务器的pgsql版本15.3和windows本地的pg客户端版本14.2不一致.
找了半天,发现网上没有window系统的pg-dump升级策略,大多数都是基于linux系统的操作。
后面自己摸索了一下,成功升级了windows本地的新的pg_dump。
解决方案
1,直接去pgsql的官网下载对应版本的PostgreSQL Binaries
链接: https://www.enterprisedb.com/download-postgresql-binaries
2,本地解压压缩包
3,点击解压文件,可在其bin目录下见到新版本的pg_dump
4,在DBeaver中选择本地客户端
5,可以看到原本的默认版本的14.2的客户端,我们在这里添加新的压缩包的pg_dump的路径
6.选择刚刚的解压路径的bin目录,即可看到新的15.3版本的客户端添加成功
7,再进行备份导出,即可成功导出整个模式下的数据库表,生成对应的dump文件。