O projeto PostgreSQL visa lançar ao menos uma nova versão por trimestre, seguindo o roadmap.
O identificador de uma versão é um conjunto de números separados por pontos, como: 13.1
, 9.6.9
ou 8.4.2-p3
.
Próximos lançamentos menores
O projeto PostgreSQL visa fazer pelo menos uma versão secundária a cada trimestre, em um cronograma predefinido. Se for necessário devido a uma correção de bug importante ou problema de segurança, mais lançamentos serão feitos entre essas datas, portanto, esta lista deve ser considerada no mínimo. Em cada uma dessas datas, um novo lançamento menor será feito para cada versão com suporte .
As datas previstas para esses lançamentos são, salvo indicação em contrário, a segunda quinta-feira de fevereiro, maio, agosto e novembro. A programação atual para os próximos lançamentos é:
- 13 de maio de 2021
- 12 de agosto de 2021
- 11 de novembro de 2021
- 10 de fevereiro de 2022
Componente majoritário da versão
O componente majoritário da versão identifica grandes saltos de funcionalidades ou de mudanças internas no PostgreSQL. É lançada uma nova versão majoritária por ano, normalmente próximo do meio do segundo semestre.
A partir da versão 10, o componente majoritário é apenas o primeiro número: 10
, 11
, 12
, 13
… Até a versão 9.6, o componente majoritário é o par dos primeiros dois números: 9.6
, 9.5
, 9.4
…
Suporte
O suporte da comunidade se estende para as últimas cinco 5 versões majoritárias apenas, portanto quando uma nova versão é lançada, a mais antiga perde o suporte.
Versões que não têm mais suporte da comunidade não recebem correções de bugs de segurança, de confiabilidade ou de corrupção. Obs.: algumas empresas oferecem suporte estendido.
Assim, é muito importante manter os seus ambientes dentro dessa janela deslisante de cinco anos. E você consegue isso planejando e executando tarefas administrativas de upgrade.
Upgrade
Em virtude das mudanças internas que acontecem entre versões majoritárias, para um upgrade você deve seguir um dos três caminhos descritos na seção upgrade.
Componente minoritário
A segunda parte do identificador de versão é o componente minoritário, que indica resolução de bugs, desde os menores até os severos, com impacto de segurança e confiabilidade.
Por exemplo, todas as versões a seguir pertencem a uma mesma versão majoritária, mas com uma quantidade crescente de problemas resolvidos: 13.0
, 13.1
, 13.2
, 13.3
…
Como versões minoritárias não trazem novas funcionalidades e são desenvolvidas de forma a minimizar o impacto em produção, a recomendação é sempre manter o seu PostgreSQL na versão minoritária mais recente possível, já que isso minimiza os riscos.
Os passos para atualizar o PostgreSQL dentro de uma mesma versão majoritária, ou seja, indo de uma versão minoritária para outra mais recente (por exemplo, de 13.1
para 13.2
) são mais simples e envolvem apenas:
- parar o serviço do PostgreSQL
- atualizar os pacotes binarios
- iniciar o serviço do PostgreSQL
Outros componentes da versão
Várias distribuições adicionam um componente extra ao final da versão:
13.1-p5
13.1-r3
13.1-2+b1
Esses componentes rastreiam o empacotamento do PostgreSQL dentro da distribuição, indicando mudanças menores de compilação ou patches aplicados pelos mantenedores. Portanto, o significado desse componente extra é específico da sua distribuição, mas não do projeto PostgreSQL.
pg_upgrade
O programa pg_upgrade
depende dos serviços, tanto da versão de origem quanto da versão de destino, não estejam no ar. Contudo, depende dos diretórios de dados estarem inicializados.
Quando executado, o pg_upgrade
inicia as instâncias das duas versões e faz a transferência (cópia ou hard link) dos objetos que não sofreram alterações estruturais, assim como cria novos objetos no destino e copia os dados daqueles que sofreram alterações estruturais. Portanto, ele precisa conhecer as localizações dos diretórios de dados e dos diretórios de binários.
Para usar o modo de hard link, adicione -k
nos comandos do pg_upgrade
abaixo.
Processo
- Faça a inicialização de um PostgreSQL em duas versões majoritárias distintas.
- Popule um banco de dados na versão mais antiga com dados.
- Baixe os serviços.
- Execute o upgrade por um dos comandos abaixo usando, opcionalmente, o
-k
. - Suba o serviço da nova versão.
- Valide os dados na nova versão com o
psql
, selects e metacomandos.
CentOS/RHEL
Upgrade pelo script de conveniência, apenas de uma versão para a próxima, executando o script da versão de destino:
[root@pg-1 ~]# /usr/pgsql-13/bin/postgresql-13-setup upgrade
Upgrade pelo pg_upgrade
, fornecendo os diretórios de dados de origem (-d
), de destino (-D
) e diretórios dos executáveis de origem (-b
) e de destino (-B
), como postgres:
[postgres@pg-1 ~]$ /usr/pgsql-13/bin/pg_upgrade \ -d /var/lib/pgsql/12/data \ -D /var/lib/pgsql/13/data \ -b /usr/pgsql-12/bin \ -B /usr/pgsql-13/bin
Debian/Ubuntu
Upgrade pelo script de conveniência, fornecendo a versão de origem, como root ou postgres:
postgres@pg-1:~$ pg_upgradecluster 12 main
Upgrade pelo pg_upgrade
, como postgres:
postgres@pg-1:~$ /usr/lib/postgresql/13/pg_upgrade \ -d /var/lib/postgresql/12/main \ -D /var/lib/postgresql/13/main \ -b /usr/lib/postgresql/12 \ -B /usr/lib/postgresql/13