Antes de migrar uma instância PostgreSQL auto-gerenciada para o ApsaraDB RDS for PostgreSQL, crie uma conta de banco de dados dedicada com privilégios de replicação na instância source. O recurso de migração para a nuvem usa essa conta para transmitir os dados.
Pré-requisitos
Verifique se você tem:
Uma instância PostgreSQL auto-gerenciada implantada em uma instância do Elastic Compute Service (ECS) ou em um data center
Acesso administrativo à instância PostgreSQL auto-gerenciada (superusuário ou função com o privilégio
CREATEROLE)Uma instância do ApsaraDB RDS for PostgreSQL como destino da migração
Procedimento
A conta de migração requer os privilégios CREATEROLE e REPLICATION, além de associação à função pg_monitor.
Se já existir uma conta com essas permissões na instância PostgreSQL auto-gerenciada, ignore este procedimento e prossiga para Atualizar o arquivo pg_hba.conf de uma instância PostgreSQL auto-gerenciada .
-
Conecte-se à instância PostgreSQL auto-gerenciada e execute a seguinte instrução SQL para criar a conta de migração:
CREATE USER migratetest CREATEROLE REPLICATION LOGIN PASSWORD '123456';Nota: Substitua
123456por uma senha forte e exclusiva. Não use a senha de exemplo em ambientes de produção.Parâmetro
Descrição
migratetestNome da conta. Substitua pelo nome desejado.
CREATEROLEPermite criar e gerenciar funções, necessário para o processo de migração.
REPLICATIONHabilita o streaming de WAL (Write-Ahead Logging) para replicação de dados.
LOGINPermite que a conta estabeleça conexões.
PASSWORDDefine a senha de login da conta.
-
Conceda a função
pg_monitorà conta de migração:GRANT pg_monitor TO migratetest;A função
pg_monitorconcede acesso de leitura a visualizações e funções de monitoramento, incluindo o acompanhamento do progresso da replicação. -
Verifique se a conta foi criada com as permissões corretas:
SELECT rolname, rolcreaterole, rolreplication FROM pg_roles WHERE rolname = 'migratetest';Saída esperada:
rolname | rolcreaterole | rolreplication -------------+---------------+---------------- migratetest | t | tPara verificar a associação à função
pg_monitor:SELECT pg_has_role('migratetest', 'pg_monitor', 'member');Saída esperada:
pg_has_role ------------- t
Próximas etapas
Atualizar o arquivo pg_hba.conf de uma instância PostgreSQL auto-gerenciada