Pesquisar

8.3.5. Migrando para uma versão RHEL 8 do PostgreSQL

download PDF

O Red Hat Enterprise Linux 7 contém PostgreSQL 9.2 como a versão default do servidor PostgreSQL. Além disso, várias versões do PostgreSQL são fornecidas como Coleções de Software para RHEL 7 e RHEL 6.

O Red Hat Enterprise Linux 8 fornece PostgreSQL 10 (o fluxo padrão postgresql ), PostgreSQL 9.6 e PostgreSQL 12.

Os usuários do PostgreSQL no Red Hat Enterprise Linux podem usar dois caminhos de migração para os arquivos do banco de dados:

Use de preferência o método de atualização rápida, que é mais rápido do que o processo de despejo e restauração.

No entanto, em certos casos, a atualização rápida não funciona, e você só pode usar o processo de despejo e restauração. Tais casos incluem:

  • Atualizações de arquitetura cruzada
  • Sistemas que utilizam as extensões plpython ou plpython2. Note que o repositório AppStream RHEL 8 inclui apenas o pacote postgresql-plpython3, não o pacote postgresql-plpython2.
  • O upgrade rápido não é suportado para migração das versões da Red Hat Software Collections de PostgreSQL.

Como pré-requisito para a migração para uma versão posterior de PostgreSQL, faça backup de todos os seus bancos de dados PostgreSQL.

O despejo dos bancos de dados e a realização de backup dos arquivos SQL é uma parte necessária do processo de despejo e restauração. No entanto, é recomendável que você o faça também se estiver realizando a atualização rápida.

Antes de migrar para uma versão posterior de PostgreSQL, veja as notas de compatibilidade a montante para a versão de PostgreSQL para a qual você deseja migrar, assim como para todas as versões ignoradas PostgreSQL entre a versão de onde você está migrando e a versão de destino.

8.3.5.1. Atualização rápida usando a ferramenta pg_upgrade

Durante uma rápida atualização, você precisa copiar arquivos de dados binários para o diretório /var/lib/pgsql/data/ e usar a ferramenta pg_upgrade.

Você pode usar este método para a migração de dados:

  • Desde a versão do sistema RHEL 7 de PostgreSQL 9.2 até a versão RHEL 8 de PostgreSQL 10
  • Desde a versão RHEL 8 de PostgreSQL 10 até a versão RHEL 8 de PostgreSQL 12

Se você quiser atualizar de um fluxo postgresql anterior dentro do RHEL 8, siga o procedimento descrito em Mudança para um fluxo posterior e depois migre seus dados PostgreSQL.

Para migração entre outras combinações de versões PostgreSQL dentro da RHEL, e para migração das versões da Red Hat Software Collections de PostgreSQL para a RHEL, use Dump e restore upgrade.

Importante

Antes de realizar a atualização, faça o backup de todos os seus dados armazenados nos bancos de dados PostgreSQL.

Por padrão, todos os dados são armazenados no diretório /var/lib/pgsql/data/ tanto no sistema RHEL 7 quanto no RHEL 8.

O seguinte procedimento descreve a migração da versão do sistema RHEL 7 de Postgreql 9.2 para uma versão RHEL 8 de PostgreSQL.

Para realizar uma rápida atualização:

  1. No sistema RHEL 8, habilite o fluxo (versão) para o qual você deseja migrar:

    # módulo yum permite postgresql:stream

    Substitua stream pela versão selecionada do servidor PostgreSQL.

    Você pode omitir esta etapa se quiser usar o fluxo padrão, que fornece PostgreSQL 10.

  2. No sistema RHEL 8, instale os pacotes postgresql-server e postgresql-upgrade:

    # yum instalar postgresql-server postgresql-upgrade

    Opcionalmente, se você usou algum módulo do servidor PostgreSQL no RHEL 7, instale-o também no sistema RHEL 8 em duas versões, compiladas contra PostgreSQL 9.2 (instalado como o pacote postgresql-upgrade ) e a versão alvo de PostgreSQL (instalado como o pacote postgresql-server ). Se você precisar compilar um módulo de servidor PostgreSQL de terceiros, compile-o tanto contra os pacotes postgresql-devel e postgresql-upgrade-devel.

  3. Verifique os seguintes itens:

    • Configuração básica: No sistema RHEL 8, verifique se seu servidor usa o diretório padrão /var/lib/pgsql/data e se o banco de dados está corretamente inicializado e habilitado. Além disso, os arquivos de dados devem ser armazenados no mesmo caminho mencionado no arquivo /usr/lib/systemd/system/postgresql.service.
    • PostgreSQL servidores: Seu sistema pode rodar vários servidores PostgreSQL. Certifique-se de que os diretórios de dados de todos esses servidores sejam tratados de forma independente.
    • PostgreSQL módulos do servidor: Certifique-se de que os módulos do servidor PostgreSQL que você usou no RHEL 7 também estejam instalados em seu sistema RHEL 8. Observe que os plug-ins estão instalados no diretório /usr/lib64/pgsql/ (ou no diretório /usr/lib/pgsql/ em sistemas de 32 bits).
  4. Certifique-se de que o serviço postgresql não esteja funcionando em nenhum dos sistemas fonte e alvo no momento da cópia dos dados.

    # systemctl stop postgresql.service
  5. Copie os arquivos do banco de dados do local de origem para o diretório /var/lib/pgsql/data/ no sistema RHEL 8.
  6. Execute o processo de atualização executando o seguinte comando como usuário do PostgreSQL:

    $ /bin/postgresql-setup --upgrade

    Isto lança o processo pg_upgrade como pano de fundo.

    Em caso de falha, postgresql-setup fornece uma mensagem de erro informativa.

  7. Copie a configuração anterior de /var/lib/pgsql/data-old para o novo cluster.

    Observe que a atualização rápida não reutiliza a configuração anterior na pilha de dados mais recente e a configuração é gerada do zero. Se você quiser combinar manualmente as configurações antiga e nova, use os arquivos *.conf nos diretórios de dados.

  8. Inicie o novo servidor PostgreSQL:

    # systemctl start postgresql.service
  9. Execute o script analyze_new_cluster.sh localizado no diretório home PostgreSQL:

    su postgres -c '~/analyze_new_cluster.sh
  10. Se você quiser que o novo servidor PostgreSQL seja iniciado automaticamente na inicialização, execute:

    # systemctl habilita o serviço postgresql.service
Red Hat logoGithubRedditYoutubeTwitter

Aprender

Experimente, compre e venda

Comunidades

Sobre a documentação da Red Hat

Ajudamos os usuários da Red Hat a inovar e atingir seus objetivos com nossos produtos e serviços com conteúdo em que podem confiar.

Tornando o open source mais inclusivo

A Red Hat está comprometida em substituir a linguagem problemática em nosso código, documentação e propriedades da web. Para mais detalhes veja oBlog da Red Hat.

Sobre a Red Hat

Fornecemos soluções robustas que facilitam o trabalho das empresas em plataformas e ambientes, desde o data center principal até a borda da rede.

© 2024 Red Hat, Inc.