如何在Windows上将PostgreSQL进行次要升级,例如从9.3.0升级到9.3.1?


10

建议使用企业数据库内置的Windows安装程序从PostgreSQL从9.3.0到9.3.1进行次要升级的建议方法是什么?我应该先卸载还是仅在现有安装上安装?

当前安装是使用postgresql-9.3.0-1-windows-x64.exe执行的。现在我想使用postgresql-9.3.1-1-windows-x64.exe进行升级。


按照文档:停止服务器,安装新的二进制文件,然后重新启动。备份通常是个好主意,总体而言,制定一个计划
B。– dezso

感谢@dezso的链接,我已经阅读了9.3手册的这一部分,但是发现它有点含糊,尤其是对于Windows安装程序二进制文件。
buzz3791 2013年

@ buzz3791问题/标题现在不正确,因为使用新的版本控制方案,将10.0升级到10.1是次要的升级。我认为您应该删除该e.g. ...部分。
isapir '18

Answers:


8

在Windows上,只需停止postgresql服务,然后在现有9.3.0之上运行postgresql-9.3.1-1-windows-x64.exe即可。无需卸载。当然,建议备份。

缺少Windows上更新过程的清晰明确的文档。请注意,@ dezso提供的文档链接已在当前手册中移至:https ://www.postgresql.org/docs/current/static/upgrading.html

PostgreSQL发行说明通常会在附录E中记录迁移技巧。例如,

Windows安装程序信息的最佳来源是企业数据库论坛。这是我发现解决问题的一些帖子...

请注意,升级信息在各个发行版之间移动。例如,

请注意,自2017年6月起,EnterpriseDB取代了影响该答案链接的社区讨论论坛(https://web.archive.org/web/20171021012954/https://www.enterprisedb.com/news/enterprisedb-announces-新postgres-rocks-在线用户论坛)。我能够在Wayback Machine上找到一些原始帖子。我无法修复的一个死链接是:“ 2010年1月-从8.4.1升级到8.4.2”, http://forums.enterprisedb.com/posts/list/2115.page#7888



3

我刚刚将Postgres 10.0升级到10.1,这是一个非常快速和容易的升级。

我从https://www.enterprisedb.com/download-postgresql-binaries下载了二进制文件,并将它们解压缩到C:\postgres,然后将目录重命名为pgsqlpgsql-10.1这样我就可以保留较旧的版本,直到认为没有必要为止。

我复制的dll文件msvcp120.dll,并msvcr120.dllC:\postgres\pgsql-10.1\bin,因为我更喜欢在“安装程序”这可能增加了比需要更多的膨胀是简单的安装。

然后,我使用了过去编写的简单批处理脚本:

set MAJOR_VERSION=10
set MINOR_VERSION=1

set SERVICE_NAME=pgsql-%MAJOR_VERSION%.%MINOR_VERSION%

set PGHOME=C:\postgres\%SERVICE_NAME%
set PGDATA=C:\postgres\pgdata%MAJOR_VERSION%

%PGHOME%\bin\pg_ctl.exe register -N %SERVICE_NAME% -U LocalSystem -S auto --pgdata=%PGDATA%

::: to unregister old service:
::%PGHOME%\bin\pg_ctl.exe unregister -N %SERVICE_NAME%

SELECT version();在psql中运行以确认旧版本:

postgres=# select version();
-[ RECORD 1 ]-------------------------------------------------------
version | PostgreSQL 10.0, compiled by Visual C++ build 1800, 64-bit

然后,我运行了批处理脚本,在该脚本上安装了名为的服务postgres-10.1

我停止了旧服务并将其设置Startup TypeDisabled,然后启动了新服务。

SELECT version();在psql中再次运行可确认升级(由于停止旧服务器时连接被中止,因此必须运行两次):

postgres=# select version();
server closed the connection unexpectedly
        This probably means the server terminated abnormally
        before or while processing the request.
The connection to the server was lost. Attempting reset: Succeeded.
postgres=# select version();
-[ RECORD 1 ]-------------------------------------------------------
version | PostgreSQL 10.1, compiled by Visual C++ build 1800, 64-bit

请记住,升级主要版本需要使用pg_upgrade或其他方法来更新数据目录,但是对于次要升级而言,此方法就像一个魅力。


1
好东西,我在这里发布了。我只是按照说明从升级10.110.2,效果很好。
isapir '18
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.