¿Cómo hacer una actualización menor de PostgreSQL en Windows, por ejemplo, 9.3.0 a 9.3.1?


10

¿Cuál es la forma recomendada de realizar una actualización menor de PostgreSQL, por ejemplo, 9.3.0 a 9.3.1 utilizando el instalador de Windows incorporado de Enterprise DB? ¿Debo desinstalar primero o simplemente instalar sobre la instalación existente?

La instalación actual se realizó con postgresql-9.3.0-1-windows-x64.exe. Ahora quiero actualizar usando postgresql-9.3.1-1-windows-x64.exe.


Según la documentación : detenga el servidor, instale los nuevos binarios y reinicie. Siempre es una buena idea hacer una copia de seguridad y, en general, tener un plan B.
dezso

Gracias por el enlace @dezso, había leído esa sección del manual 9.3 pero me pareció un poco vago, especialmente con respecto a los binarios de configuración de Windows.
buzz3791

@ buzz3791 La pregunta / título es inexacto ahora porque 10.0 a 10.1 es una actualización menor con el nuevo esquema de versiones. Creo que deberías quitar la e.g. ...pieza.
isapir

Respuestas:


8

En Windows, simplemente detenga el servicio postgresql, luego ejecute postgresql-9.3.1-1-windows-x64.exe en la parte superior de los trabajos existentes de 9.3.0. No es necesario desinstalar. Por supuesto, se recomienda una copia de seguridad.

Falta documentación clara y explícita para el procedimiento de actualización en Windows. Tenga en cuenta que el enlace de documentación proporcionado por @dezso se ha movido en el manual actual a: https://www.postgresql.org/docs/current/static/upgrading.html

Las Notas de versión de PostgreSQL suelen documentar sugerencias de migración en el Apéndice E. Por ejemplo,

La mejor fuente de información del instalador de Windows fueron los foros de Enterprise DB. Aquí hay algunas publicaciones que encontré que abordan la pregunta ...

Tenga en cuenta que la información de actualización se mueve de una versión a otra. Por ejemplo,

Tenga en cuenta que a partir de junio de 2017, EnterpriseDB reemplazó sus foros de discusión comunitaria que afectan los enlaces en esta respuesta ( https://web.archive.org/web/20171021012954/https://www.enterprisedb.com/news/enterprisedb-announces- new-postgres-rocks-online-user-forum ). Pude buscar algunas de las publicaciones originales en Wayback Machine. Un enlace muerto que no pude reparar es: "2010 enero - Actualización a 8.4.2 desde 8.4.1", http://forums.enterprisedb.com/posts/list/2115.page#7888 .


4

Para el registro, ejecutando el instalador para Windows desde Enterprise DB (el valor predeterminado, vinculado desde el sitio de Postgres ), al menos desde la versión actual Postgres 9.4, no tiene que detener el postgresqlservicio. El instalador lo hace por usted. Aún necesita restablecer las conexiones, si las hay (la mayoría de los clientes lo hacen automáticamente).

Lo mejor es consultar el manual actual (usando la versión actual de Postgres):

http://www.postgresql.org/docs/current/interactive/upgrading.html


3

Acabo de actualizar Postgres 10.0 a 10.1 y fue una actualización muy rápida y fácil.

Descargué los binarios de https://www.enterprisedb.com/download-postgresql-binaries y los descomprimí C:\postgres, luego cambié el nombre del directorio pgsqlpara pgsql-10.1que pueda mantener las versiones anteriores hasta que se considere innecesario.

He copiado los archivos dll msvcp120.dlly msvcr120.dllal C:\postgres\pgsql-10.1\binporque prefiero así de sencilla instalación sobre el "instalador" que probablemente añade mucho más de lo necesario la hinchazón.

Luego usé este script por lotes simple que escribí en el pasado:

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%

Me encontré SELECT version();con psql para confirmar la versión antigua:

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

Luego ejecuté el script por lotes anterior que instaló un servicio llamado postgres-10.1.

Detuve el servicio anterior y lo configuré Startup Typeen Disabled, y comencé el nuevo servicio.

La ejecución de SELECT version();nuevo en psql confirmó la actualización (tuve que ejecutarla dos veces debido a que la conexión se interrumpió cuando detuve el servidor anterior):

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

Tenga en cuenta que actualizar una versión principal requiere actualizar el directorio de datos con pg_upgradeo algún otro método, pero para una actualización menor, este método funcionó de maravilla.


1
Lo bueno es que publiqué esto aquí. Acabo de seguir las instrucciones para actualizar 10.1a 10.2y funcionó muy bien.
isapir
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.