Este guia descreve como migrar dados entre
clusters habilitados para criptografia transparente de dados
(TDE) e não criptografados usando pg_dump e pg_restore.
As duas direções de migração (TDE para não criptografado e vice-versa) são compatíveis e usam ferramentas de backup lógico padrão do PostgreSQL.
A migração lógica usando pg_dump decodifica os dados criptografados em tempo real na origem e os despeja como instruções SQL não criptografadas. Ao restaurar os dados, o cluster de destino grava os dados de acordo com as próprias configurações de criptografia.
O cluster de destino criptografa os dados se a TDE estiver ativada e os grava como texto simples se a TDE estiver desativada.
Antes de começar
- Verifique se você instalou o AlloyDB Omni. Para mais informações, consulte Instalar o AlloyDB Omni usando contêineres.
- Se você estiver migrando para um servidor de banco de dados habilitado para TDE, verifique se configurou o provedor de gerenciamento de chaves. Para mais informações, consulte Criar um cluster habilitado para TDE.
Migrar um banco de dados habilitado para TDE para um banco de dados desativado para TDE
Despeje o banco de dados do servidor de banco de dados habilitado para TDE em um arquivo no host.
Docker
docker exec -i TDE_CONTAINER_NAME pg_dump -U postgres -d DATABASE_NAME > /tmp/decrypted_dump.sqlPodman
podman exec -i TDE_CONTAINER_NAME pg_dump -U postgres -d DATABASE_NAME > /tmp/decrypted_dump.sqlInicie um servidor AlloyDB Omni desativado para TDE seguindo as instruções em Instalar o AlloyDB Omni usando o Docker.
Restaure o arquivo dump para o servidor de banco de dados não criptografado.
Docker
docker exec -i NON_TDE_CONTAINER_NAME psql -U postgres -c "CREATE DATABASE DATABASE_NAME" docker exec -i NON_TDE_CONTAINER_NAME psql -U postgres -d DATABASE_NAME < /tmp/decrypted_dump.sqlPodman
podman exec -i NON_TDE_CONTAINER_NAME psql -U postgres -c "CREATE DATABASE DATABASE_NAME" podman exec -i NON_TDE_CONTAINER_NAME psql -U postgres -d DATABASE_NAME < /tmp/decrypted_dump.sql
Migrar um banco de dados desativado para TDE para um banco de dados habilitado para TDE
Use
pg_dumppara despejar o banco de dados do servidor de banco de dados não criptografado.Docker
docker exec -i NON_TDE_CONTAINER_NAME pg_dump -U postgres -d DATABASE_NAME > /tmp/src_plaintext_dump.sqlPodman
podman exec -i NON_TDE_CONTAINER_NAME pg_dump -U postgres -d DATABASE_NAME > /tmp/src_plaintext_dump.sqlInicie um servidor AlloyDB Omni habilitado para TDE seguindo as instruções em Criar um cluster habilitado para TDE.
Restaure para o servidor de banco de dados habilitado para TDE. Os dados são criptografados de forma transparente à medida que são gravados.
Docker
docker exec -i TDE_CONTAINER_NAME psql -U postgres -c "CREATE DATABASE DATABASE_NAME" docker exec -i TDE_CONTAINER_NAME psql -U postgres -d DATABASE_NAME < /tmp/src_plaintext_dump.sqlPodman
podman exec -i TDE_CONTAINER_NAME psql -U postgres -c "CREATE DATABASE DATABASE_NAME" podman exec -i TDE_CONTAINER_NAME psql -U postgres -d DATABASE_NAME < /tmp/src_plaintext_dump.sql