Atualizar 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.

  1. Faça a inicialização de um PostgreSQL em duas versões majoritárias distintas.
  2. Popule um banco de dados na versão mais antiga com dados, por exemplo abaixo.
  3. Baixe os serviços.
  4. Execute o upgrade por um dos comandos abaixo usando, opcionalmente, o -k.
  5. Suba o serviço da nova versão.
  6. 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-12/bin/postgresql-12-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-12/bin/pg_upgrade \
                              -d /var/lib/pgsql/11/data \
                              -D /var/lib/pgsql/12/data \
                              -b /usr/pgsql-11/bin \
                              -B /usr/pgsql-12/bin




Debian – Ubuntu

Upgrade pelo script de conveniência, fornecendo a versão de origem, como root ou postgres:

postgres@pg-1:~$ pg_upgradecluster 11 main

Upgrade pelo pg_upgrade, como postgres:

postgres@pg-1:~$  /usr/lib/postgresql/12/pg_upgrade \
                              -d /var/lib/postgresql/11/main \
                              -D /var/lib/postgresql/12/main \
                              -b /usr/lib/postgresql/11 \
                              -B /usr/lib/postgresql/12

Deixe um comentário

O seu endereço de e-mail não será publicado.