Migrando para Databases for PostgreSQL
Existem várias opções para migrar dados de bancos de dados existentes do PostgreSQL para o IBM Cloud® Databases for PostgreSQL. Focamos no método mais simples e mais efetivo. Para começar, é necessário que o PostgreSQL esteja instalado localmente
para que você tenha as ferramentas psql
e pg_dump
. E, embora não estritamente necessário, a CLI do Cloud Databases facilita a conexão e a restauração para uma nova implementação do Databases for PostgreSQL.
pg_dump
No banco de dados de origem, execute pg_dump
para criar um arquivo SQL, que pode ser usado para recriar o banco de dados. No mínimo, pg_dump
usa um nome do host (sinalização -h
), um número da porta (sinalização
-p
), um nome do banco de dados (sinalização -d
), um nome do usuário (sinalização -U
) e um arquivo (ou um nome de diretório) no qual gravar o dump (sinalização -f
).
Por exemplo, o comando a seguir faz dump do banco de dados "compose" do PostgreSQL hospedado em sl-eu-lon-2-portal.4.dblayer.com, porta 17980, usando o usuário administrativo e salvando os resultados em dump.sql
.
pg_dump -h sl-eu-lon-2-portal.4.dblayer.com -p 17980 -d compose -U admin -f dump.sql
O comando pg_dump
tem muitas opções e é recomendável que você consulte a documentação oficial e a referência do comando para obter uma visão mais completa de seus recursos.
Restaurando a saída do pg_dump
A saída resultante de pg_dump
pode, então, ser transferida por upload para uma nova implementação do Databases for PostgreSQL. Por ser SQL, a saída pode ser simplesmente enviada para o banco de dados por meio do comando psql
.
Recomendamos que as importações sejam executadas com o usuário administrativo.
Consulte Conectando-se ao psql
para obter detalhes sobre como se conectar como administrador usando o psql
. Para se conectar
ao comando psql
, são necessários a sequência de conexões do usuário administrativo e o certificado TLS. O certificado precisa ser decodificado por meio de Base64 e armazenado como um arquivo local arbitrário. Para importar o dump.sql
criado anteriormente para uma implementação de banco de dados chamada example-psql
, é possível chamar o comando psql
usando -f dump.sql
como parâmetro. O parâmetro informa ao psql
que leia
e execute as instruções SQL contidas no arquivo. O comando é semelhante ao seguinte:
PGPASSWORD=yourpasswordhere PGSSLROOTCERT=cert.crt psql 'host=c7798cf6-e5d2-4513-b17f-3d3fa67d8291.8f7bfd8f3faa4218aec56e069eb46187.databases.appdomain.cloud port=32484 dbname=ibmclouddb user=admin sslmode=verify-full' -f dump.sql
Conforme observado nessa documentação de Conectando-se ao psql
, o plug-in da CLI do Cloud Databases simplifica a conexão. A importação anterior
de psql
pode ser executada como:
ibmcloud cdb deployment-connections example-psql -s -- -f dump.sql
O comando usará o usuário administrativo automaticamente, se nenhum usuário for especificado. Ele também solicitará a senha de forma interativa. O certificado TLS é recuperado e usado automaticamente. O -s
inicia o psql
(ou seja qual for o comando configurado), uma vez que os detalhes são estabelecidos por meio da API. Qualquer coisa depois de --
é transmitido para o comando.
Embora o processo de restauração esteja em execução, ele emite várias mensagens sobre as mudanças que está fazendo na implementação do banco de dados.
Opção adicional de migração usando o pg_restore
Para os usuários com um arquivo tar contendo sql e dados separadamente, o comando pg_restore
pode ser usado para migrar seus dados, além dos comandos psql
observados anteriormente. Um exemplo do comando pg_restore
é:
PGPASSWORD=yourpasswordhere PGSSLROOTCERT=cert.crt pg_restore -h c7798cf6-e5d2-4513-b17f-3d3fa67d8291.8f7bfd8f3faa4218aec56e069eb46187.databases.appdomain.cloud -p 32484 -U admin -F t -d ibmclouddb tarfile.tar