8.3.5.2. Despejar e restaurar atualização
Ao usar o dump e restaurar a atualização, você precisa despejar todo o conteúdo do banco de dados em um arquivo SQL dump.
Observe que a atualização de despejo e restauração é mais lenta do que o método de atualização rápida e pode requerer alguma correção manual no arquivo SQL gerado.
Você pode usar este método para migrar dados de:
- A versão do sistema Red Hat Enterprise Linux 7 do PostgreSQL 9.2
- Qualquer versão anterior do Red Hat Enterprise Linux 8 de PostgreSQL
Uma versão anterior ou igual de PostgreSQL da Red Hat Software Collections:
- PostgreSQL 9.2 (não mais suportado)
- PostgreSQL 9.4 (não mais suportado)
- PostgreSQL 9.6
- PostgreSQL 10
- PostgreSQL 12
Nos sistemas Red Hat Enterprise Linux 7 e Red Hat Enterprise Linux 8, PostgreSQL os dados são armazenados no diretório /var/lib/pgsql/data/
por default. No caso das versões do Red Hat Software Collections de PostgreSQL, o diretório de dados default é /var/opt/rh/collection_name/lib/pgsql/data/
(com exceção de postgresql92
, que usa o diretório /opt/rh/postgresql92/root/var/lib/pgsql/data/
).
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 executar o despejo e restaurar a atualização, mude o usuário para root
.
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.
Em seu sistema RHEL 7, inicie o servidor PostgreSQL 9.2:
# systemctl start postgresql.service
No sistema RHEL 7, despeje todo o conteúdo do banco de dados no arquivo
pgdump_file.sql
:su - postgres -c "pg_dumpall > ~/pgdump_file.sql"
Certifique-se de que os bancos de dados foram despejados corretamente:
su - postgres -c 'menos "$HOME/pgdump_file.sql
Como resultado, o caminho para o arquivo sql despejado é exibido:
/var/lib/pgsql/pgdump_file.sql
.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.
No sistema RHEL 8, instale o pacote
postgresql-server
:# yum instalar postgresql-server
Opcionalmente, se você usou algum módulo do servidor PostgreSQL no RHEL 7, instale-o também no sistema RHEL 8. Se você precisar compilar um módulo de servidor PostgreSQL de terceiros, construa-o contra o pacote
postgresql-devel
.No sistema RHEL 8, inicialize o diretório de dados para o novo servidor PostgreSQL:
# pós-configuração --initdb
No sistema RHEL 8, copie o
pgdump_file.sql
para o diretório home PostgreSQL, e verifique se o arquivo foi copiado corretamente:su - postgres -c 'teste -e "$HOME/pgdump_file.sql" && echo existe'
Copiar os arquivos de configuração do sistema RHEL 7:
su - postgres -c 'ls -1 $PGDATA/*.conf
Os arquivos de configuração a serem copiados são:
-
/var/lib/pgsql/data/pg_hba.conf
-
/var/lib/pgsql/data/pg_ident.conf
-
/var/lib/pgsql/data/postgresql.conf
-
No sistema RHEL 8, inicie o novo servidor PostgreSQL:
# systemctl start postgresql.service
No sistema RHEL 8, importar dados do arquivo sql despejado:
su - postgres -c 'psql -f ~/pgdump_file.sql postgres
Ao atualizar a partir de uma versão da Red Hat Software Collections de PostgreSQL, ajuste os comandos para incluir scl enable collection_name.
Por exemplo, para descarregar dados da Coleção de Software rh-postgresql96
, use o seguinte comando:
su - postgres -c 'scl enable rh-postgresql96 "pg_dumpall > ~/pgdump_file.sql\i}"