Como fazer uma pequena atualização do PostgreSQL no Windows, por exemplo, 9.3.0 a 9.3.1?


10

Qual é a maneira recomendada de executar uma pequena atualização do PostgreSQL, por exemplo, 9.3.0 para 9.3.1 usando o instalador do Windows, construído no Enterprise DB? Devo desinstalar primeiro ou apenas instalar sobre a instalação existente?

A instalação atual foi realizada com o postgresql-9.3.0-1-windows-x64.exe. Agora eu quero atualizar usando o postgresql-9.3.1-1-windows-x64.exe.


Conforme a documentação : pare o servidor, instale os novos binários e reinicie. É sempre uma boa idéia de ter um backup e, em geral, ter um plano B.
Dezso

Obrigado pelo link @dezso, eu li a seção do manual 9.3, mas achei um pouco vaga, especialmente no que diz respeito aos binários de instalação do Windows.
buzz3791

@ buzz3791 A pergunta / título está imprecisa agora, porque 10.0 a 10.1 é uma pequena atualização com o novo esquema de versão. Eu acho que você deve remover a e.g. ...peça.
isapir

Respostas:


8

No Windows, basta interromper o serviço postgresql e executar o postgresql-9.3.1-1-windows-x64.exe sobre as obras 9.3.0 existentes. Não é necessário desinstalar. Obviamente, um backup é recomendado.

Documentação clara e explícita para o procedimento de atualização no Windows está ausente. Observe que o link da documentação fornecido pelo @dezso foi movido no manual atual para: https://www.postgresql.org/docs/current/static/upgrading.html

As notas de versão do PostgreSQL normalmente documentam dicas de migração no Apêndice E. Por exemplo,

A melhor fonte de informações do instalador do Windows foram os fóruns do Enterprise DB. Aqui estão algumas postagens que eu achei que abordavam a questão ...

Observe que as informações de atualização se movem de uma versão para outra. Por exemplo,

Observe que em junho de 2017, o EnterpriseDB substituiu seus fóruns de discussão da comunidade que afetavam os links nesta resposta ( https://web.archive.org/web/20171021012954/https://www.enterprisedb.com/news/enterprisedb-announces- new-postgres-rocks-online-user-forum ). Consegui caçar algumas das postagens originais na Wayback Machine. Um link morto que não consegui reparar é: "Janeiro de 2010 - Atualizando para 8.4.2 da 8.4.1", http://forums.enterprisedb.com/posts/list/2115.page#7888 .


4

Para o registro, executando o instalador do Windows no Enterprise DB (o padrão, vinculado no site do Postgres ), pelo menos desde a versão atual do Postgres 9.4, você não precisa interromper o postgresqlserviço. O instalador faz isso por você. Você ainda precisa restabelecer conexões, se houver (a maioria dos clientes faz isso automaticamente).

Melhor consulte o manual atual (usando a versão atual do Postgres):

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


3

Acabei de atualizar o Postgres 10.0 para 10.1 e foi uma atualização muito rápida e fácil.

Fiz o download dos binários em https://www.enterprisedb.com/download-postgresql-binaries e descompactei-os para C:\postgres, em seguida, renomeei o diretório pgsqlpara pgsql-10.1para que eu possa manter versões mais antigas até que seja considerado desnecessário.

Copiei os arquivos DLL msvcp120.dlle msvcr120.dllpara C:\postgres\pgsql-10.1\binporque eu prefiro que a instalação simples sobre o "Installer", que provavelmente acrescenta muito mais inchaço do que o necessário.

Eu então usei esse script em lote simples que escrevi no passado:

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%

Corri SELECT version();no psql para confirmar a versão antiga:

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

Em seguida, executei o script em lote acima do qual instalou um serviço chamado postgres-10.1.

Parei o serviço antigo e defini Startup Typecomo Disabled, e iniciei o novo serviço.

A execução SELECT version();novamente no psql confirmou a atualização (teve que executá-la duas vezes devido à interrupção da conexão quando parei o servidor antigo):

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

Lembre-se de que atualizar uma versão principal requer atualização do diretório de dados com pg_upgradeou algum outro método, mas, para uma atualização menor, esse método funcionou como um encanto.


11
Ainda bem que postei isso aqui. Eu apenas segui as instruções para actualizar a partir 10.1de 10.2e funcionou muito bem.
Isapir
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.