Nesta página, descrevemos como realizar migrações contínuas de início rápido para migrações homogêneas do PostgreSQL para o AlloyDB para PostgreSQL.
Visão geral
As migrações de início rápido são um fluxo de migração contínua leve para cenários homogêneos do PostgreSQL. Com as migrações de início rápido, o Database Migration Service pode configurar automaticamente os principais recursos de rede e migração necessários: anexos de rede, sub-redes, configurações de conectividade particular com interfaces do Private Service Connect, perfis de conexão e jobs de migração contínua.
Com as migrações de início rápido, é possível mover seus dados para um cluster do AlloyDB para PostgreSQL ou criar um novo ao configurar a migração. As migrações de início rápido são mais adequadas para:
- Migrações básicas em que você não precisa de configurações personalizadas de paralelismo de despejo de dados.
- Migrar o banco de dados de um projeto do Google Cloud para outro. Ao configurar uma migração de início rápido, é possível criar o cluster de destino em um projeto diferente da origem e configurar o Database Migration Service para criar o anexo de rede e a sub-rede na rede de nuvem privada virtual (VPC) de outro projeto.
-
Migração de origens que têm um endereço IP privado na sua rede VPC do Google Cloud, como bancos de dados autogerenciados no Compute Engine ou instâncias do Cloud SQL para PostgreSQL ativadas para rede privada.
As origens hospedadas fora do Google Cloud podem precisar de outros componentes de rede (como uma conexão Cloud VPN) para que possam ser acessadas em um endereço IP particular na sua rede VPC.
- As migrações de início rápido são compatíveis com a conectividade de IP público e de interfaces do Private Service Connect. Os túneis SSH reversos não são compatíveis com migrações de início rápido.
Para saber mais sobre as migrações de início rápido, consulte Visão geral das migrações de início rápido na documentação principal do Database Migration Service.
Antes de começar
- Verifique se as migrações de início rápido são totalmente compatíveis com seu cenário. Consulte Limitações da migração de início rápido.
- No console do Google Cloud , na página do seletor de projetos, selecione ou crie um projeto do Google Cloud .
- Ative as APIs Database Migration Service, Compute Engine, Network Connectivity Center e AlloyDB para PostgreSQL.
Funções exigidas
Para receber as permissões necessárias para executar migrações de início rápido para o AlloyDB para PostgreSQL com o Database Migration Service, peça ao administrador para conceder os papéis necessários do Identity and Access Management (IAM) para as contas envolvidas na migração nos projetos relevantes. Para mais informações sobre como conceder papéis, consulte Gerenciar o acesso na documentação do IAM.
Papéis e permissões no projeto de origem
Se você usa a conectividade de IP privado para se conectar a um banco de dados de origem em um projeto doGoogle Cloud , conceda os seguintes papéis a contas específicas no projeto em que o banco de dados de origem reside:
- Para a conta de usuário que realiza a migração:
-
Administrador de rede do Compute (
roles/compute.networkAdmin) -
Navegador (
roles/browser)
-
Administrador de rede do Compute (
- Para a conta de serviço do Database Migration Service do projeto de destino:
Leitor de rede do Compute (
roles/compute.networkViewer)A conta de serviço do Database Migration Service é criada quando você ativa a API Database Migration Service. O endereço de e-mail associado a essa conta é gerado automaticamente e não pode ser alterado. Esse endereço de e-mail usa o seguinte formato:
service-DESTINATION_PROJECT_NUMBER@gcp-sa-datamigration.
Esses papéis predefinidos contêm as permissões necessárias para configurar a conectividade no projeto de banco de dados de origem como parte de uma migração de início rápido com o Database Migration Service. Para acessar as permissões exatas necessárias, expanda a seção Permissões necessárias (origem):
Permissões necessárias (origem)
As permissões a seguir são necessárias para realizar migrações homogêneas de início rápido com o Database Migration Service:
Para a conta de usuário que realiza a migração:
compute.networks.getcompute.networks.listcompute.networks.updatePolicycompute.subnetworks.getcompute.subnetworks.listcompute.subnetworks.createcompute.subnetworks.usecompute.networkAttachments.createcompute.networkAttachments.getcompute.networkAttachments.listcompute.networkAttachments.updatecompute.networkAttachments.usecompute.regionOperations.getnetworkconnectivity.internalRanges.createnetworkconnectivity.internalRanges.getnetworkconnectivity.operations.getresourcemanager.projects.getIamPolicy
Para a conta de serviço do Database Migration Service do projeto de destino:
compute.networkAttachments.get
Papéis e permissões no projeto de destino
Conceda os seguintes papéis à conta de usuário que realiza a migração no projeto do Google Cloud em que o banco de dados de destino reside:
-
Administrador de migração do banco de dados (
roles/datamigration.admin) -
Administrador do AlloyDB (
roles/alloydb.admin) -
Navegador (
roles/browser)
Além disso, a conta de serviço do Database Migration Service do projeto de destino (service-DESTINATION_PROJECT_NUMBER@gcp-sa-datamigration.) requer o papel de Agente do Database Migration Service (roles/datamigration.serviceAgent) no projeto de destino. O Google Cloud concede esse papel automaticamente quando você ativa a API Database Migration Service.
Esses papéis predefinidos contêm as permissões necessárias para configurar os componentes de migração necessários no projeto de banco de dados de destino como parte de uma migração de início rápido com o Database Migration Service. Para ver as permissões exatas necessárias, expanda a seção Permissões necessárias (destino):
Permissões necessárias (destino)
As permissões a seguir são necessárias para realizar migrações homogêneas de início rápido com o Database Migration Service:
Para a conta de usuário que realiza a migração:
datamigration.privateconnections.getdatamigration.privateconnections.listdatamigration.privateconnections.createdatamigration.migrationjobs.createdatamigration.migrationjobs.updatedatamigration.migrationjobs.verifydatamigration.migrationjobs.startdatamigration.migrationjobs.getdatamigration.migrationjobs.fetchSourceObjectsdatamigration.operations.getdatamigration.connectionprofiles.createdatamigration.connectionprofiles.getdatamigration.connectionprofiles.updatedatamigration.locations.listdatamigration.locations.fetchStaticIpsalloydb.clusters.createalloydb.clusters.getalloydb.clusters.listalloydb.clusters.updatealloydb.clusters.deletealloydb.instances.createalloydb.instances.getalloydb.instances.listalloydb.instances.updatealloydb.instances.deletealloydb.operations.getalloydb.users.listalloydb.users.getalloydb.users.createalloydb.users.updatealloydb.users.deleteresourcemanager.projects.getIamPolicy
Para a conta de serviço do Database Migration Service do projeto de destino:
alloydb.clusters.importalloydb.instances.connectalloydb.instances.executeSql
Configurar o banco de dados de origem
Para configurar o banco de dados PostgreSQL de origem, faça o seguinte:
- Crie uma conta de usuário de migração dedicada na instância.
- Para origens do Cloud SQL para PostgreSQL, consulte Criar um usuário na documentação do Cloud SQL.
- Para outras origens, consulte a documentação do provedor de banco de dados ou criar e gerenciar usuários na documentação do PostgreSQL.
- Atribua os privilégios necessários à conta de usuário de migração dedicada.
Execute os seguintes comandos para cada banco de dados que você quer migrar:
-- Grant the REPLICATION attribute ALTER ROLE MIGRATION_USER REPLICATION; -- Grant database-level permissions. -- Repeat for each database you want to migrate. GRANT CONNECT, CREATE ON DATABASE DATABASE_NAME TO MIGRATION_USER; -- Grant schema-level usage. -- Repeat for each schema in each database you want to migrate. GRANT USAGE ON SCHEMA SCHEMA_NAME TO MIGRATION_USER;
Substitua:
- MIGRATION_USER pelo nome da conta de usuário de migração.
- DATABASE_NAME pelo nome do banco de dados que você quer migrar.
- SCHEMA_NAME pelo nome do esquema no banco de dados que você quer migrar.
- A conta de usuário de migração precisa ter acesso de propriedade às tabelas que você
migrar. Para conceder esse nível de acesso, siga um destes procedimentos:
- Somente para origens que não sejam do Cloud SQL para PostgreSQL: atribua o
papel
SUPERUSERdo PostgreSQL à conta de migração. - Para todas as origens: adicione a conta de usuário de migração ao grupo de usuários que possui as tabelas.
Execute este comando:
-- Grant table ownership. GRANT TABLE_OWNER_GROUP_NAME TO MIGRATION_USER;
Substitua:
- TABLE_OWNER_GROUP_NAME pelo nome do grupo de usuários proprietário de cada tabela que você quer migrar.
- MIGRATION_USER pelo nome da conta de usuário de migração.
- Somente para origens que não sejam do Cloud SQL para PostgreSQL: atribua o
papel
- Para tabelas sem chaves primárias: o Database Migration Service
não replica operações
UPDATEouDELETEpara tabelas sem chaves primárias durante a fase de captura de dados alterados (CDC). Se você quiser incluir essas operações na replicação, modifique as tabelas sem chaves primárias comREPLICA IDENTITY:ALTER TABLE TABLE_NAME REPLICA IDENTITY FULL; ALTER TABLE TABLE_NAME REPLICA IDENTITY USING INDEX INDEX_NAME;
Substitua:
- TABLE_NAME é o nome da tabela que não tem chaves primárias.
- INDEX_NAME é o índice exclusivo que pode rastrear linhas de tabelas sem chaves primárias.
- Defina as configurações de replicação usando flags de banco de dados.
Origens autogerenciadas
Para salvar as mudanças nas flags de banco de dados, é necessário reiniciar o banco de dados por completo. Os exemplos a seguir usam consultas SQL para alterar os valores das flags. Se não for possível executar consultas SQL diretamente, consulte a documentação do provedor para saber como mudar essas flags.
- Defina o parâmetro
wal_levelcomological. Execute este comando:ALTER SYSTEM SET wal_level = 'logical';
- Defina o parâmetro
wal_sender_timeoutcomo0. Esse valor desativa o mecanismo de tempo limite usado para encerrar conexões de replicação inativas. Execute este comando:ALTER SYSTEM SET wal_sender_timeout = 0;
- Configure o número máximo de slots de replicação com o parâmetro
max_replication_slots. Esse parâmetro precisa ser definido como pelo menos o número de bancos de dados que você está migrando por job de migração, além de algumas reservas para sincronização de tabelas.Por exemplo, se você estiver migrando cinco bancos de dados e houver dois jobs de migração criados para a instância de origem, o número de slots de replicação precisará ser pelo menos
5 * 2 = 10, além do número de slots de replicação que você já usa.Para definir esse parâmetro, execute o seguinte comando:
Em que NUMBER_OF_SLOTS representa o número máximo de slots de replicação.ALTER SYSTEM SET max_replication_slots = NUMBER_OF_SLOTS;
- Configure o parâmetro
max_wal_senderscom pelo menos o mesmo valor demax_replication_slots, mais o número de remetentes já usados na instância.Por exemplo, se o parâmetro
max_replication_slotsestiver definido como10e você já estiver usando dois remetentes, o número de processos de remetentes WAL em execução ao mesmo tempo será10 + 2 = 12.Para definir esse parâmetro, execute o seguinte comando:
Em que NUMBER_OF_SENDERS representa o número de processos de remetente WAL em execução simultânea.ALTER SYSTEM SET max_wal_senders = NUMBER_OF_SENDERS;
- Defina o
max_worker_processescomo, pelo menos, o número de bancos de dados que você quer migrar, mais o número demax_worker_processesjá usados na instância. Para definir esse parâmetro, execute o seguinte comando: Em que NUMBER_OF_PROCESSES representa o número de bancos de dados que serão migrados.ALTER SYSTEM SET max_worker_processes = NUMBER_OF_PROCESSES;
Origens do Cloud SQL para PostgreSQL
Para origens do Cloud SQL, configure as flags de banco de dados no console do Google Cloud . É necessário reiniciar a instância depois de modificar as flags de banco de dados para que a configuração entre em vigor. Para mais informações sobre como definir flags de banco de dados no Cloud SQL, consulte Configurar flags de banco de dados na documentação do Cloud SQL.
- Defina a flag
cloudsql.logical_decodingcomoon. Para que a configuração entre em vigor, é necessário reiniciar a instância. - Defina o parâmetro
wal_sender_timeoutcomo0. Esse valor desativa o mecanismo de tempo limite usado para encerrar conexões de replicação inativas. - Configure o número máximo de slots de replicação com o
parâmetro
max_replication_slots. Esse parâmetro precisa ser definido como pelo menos o número de bancos de dados que você está migrando por job de migração, além de algumas reservas para sincronização de tabelas.Por exemplo, se você estiver migrando cinco bancos de dados e houver dois jobs de migração criados para a instância de origem, o número de slots de replicação precisará ser pelo menos
5 * 2 = 10, além do número de slots de replicação que você já usa. - Configure o parâmetro
max_wal_senderspara pelo menos o mesmo valor demax_replication_slots, mais o número de remetentes já usados na instância.Por exemplo, se o parâmetro
max_replication_slotsestiver definido como10e você já estiver usando dois remetentes, o número de processos de remetentes WAL em execução ao mesmo tempo será10 + 2 = 12. - Defina o parâmetro
max_worker_processescomo, pelo menos, o número de bancos de dados que você quer migrar, mais o número demax_worker_processesjá usados na instância.
- Defina o parâmetro
Criar e executar uma migração de início rápido
Para criar e executar uma migração de início rápido, use o console do Google Cloud ou a CLI gcloud.
Console
- No console do Google Cloud , acesse a página Começar.
- No menu Mecanismo de origem, selecione PostgreSQL.
- No menu Mecanismo de destino, selecione
AlloyDB para PostgreSQL.
A seção Apresentamos a migração de início rápido do PostgreSQL é exibida.
- Na seção Apresentamos a migração de início rápido do PostgreSQL, clique em
Iniciar migração.
A página Migrar para o AlloyDB para PostgreSQL é aberta.
- Na seção Configurar migração, faça o seguinte:
- No menu Região de destino, selecione a região do cluster de destino do AlloyDB para PostgreSQL.
- Na caixa Prefixo de migração, insira uma string legível que será adicionada aos nomes de todas as entidades de migração criadas para a migração de início rápido: perfis de conexão, configuração de conectividade privada, anexo de rede e sub-rede e job de migração.
- No menu Tipo de conectividade, selecione como o Database Migration Service
se conecta ao banco de dados de origem:
- IP particular: conecte-se por uma rede particular usando
as interfaces do Private Service Connect. No menu
Tipo de configuração, selecione uma das seguintes opções:
- Configuração de conectividade atual: selecione essa opção se você já tiver um anexo de rede e uma configuração de conectividade particular que use o método de interfaces do Private Service Connect. Essa opção é mais adequada se você já usou migrações de início rápido e quer reutilizar os mesmos recursos de rede.
- Nova configuração de conectividade: selecione essa opção para criar um novo anexo de rede e a sub-rede do anexo de rede na rede VPC do banco de dados de origem. A configuração de conectividade privada será criada no mesmo projeto do cluster de destino.
- IP público: conecte-se pela Internet pública usando um endereço IP público estático de saída dedicado. Se já houver uma configuração de conectividade de IP público no projeto e na região de destino, o Database Migration Service vai reutilizá-la. Caso contrário, o Database Migration Service vai criar uma nova configuração de conectividade de IP público e gerar um endereço IP de saída quando você continuar.
- IP particular: conecte-se por uma rede particular usando
as interfaces do Private Service Connect. No menu
Tipo de configuração, selecione uma das seguintes opções:
- Clique em Continuar. Se for preciso confirmar a criação de recursos de rede, clique em Configurar e continuar.
- Na seção Conectar origem, faça o seguinte:
- Se você selecionou IP público na etapa anterior, copie o
endereço IP de saída exibido no console do Google Cloud e adicione-o
como uma regra de firewall de entrada ou entrada de lista de permissões de IP na rede de origem (como
pg_hba.confou grupos de segurança do provedor de nuvem) para permitir que o Database Migration Service se conecte. - Insira um Nome do host ou o Endereço IP do banco de dados de origem. Se você selecionou IP particular, insira o endereço IP particular acessível pela rede VPC de origem. Se você selecionou IP público, insira o endereço IP público do banco de dados de origem.
- Insira a porta usada para acessar o host. A porta padrão do PostgreSQL é
5432. - Insira o nome de usuário e a senha da conta de migração dedicada no banco de dados de origem.
- No menu Tipo de criptografia, selecione uma das seguintes opções:
- Nenhuma: se o banco de dados de origem não exigir conexões criptografadas por SSL/TLS.
- Obrigatório: se o banco de dados de origem exigir conexões criptografadas por SSL/TLS. Essa opção não requer nenhuma verificação de certificado.
- No menu Bancos de dados para migrar, clique em Personalizar. Use o painel lateral com descoberta de banco de dados incorporada para selecionar apenas os bancos de dados que você quer migrar para o AlloyDB para PostgreSQL.
- Clique em Continuar.
- Se você selecionou IP público na etapa anterior, copie o
endereço IP de saída exibido no console do Google Cloud e adicione-o
como uma regra de firewall de entrada ou entrada de lista de permissões de IP na rede de origem (como
- Na seção Configurar destino, é possível criar um novo cluster de destino ou selecionar um atual:
Novos clusters
Se você quiser criar um novo cluster de destino, faça o seguinte:
- No menu Tipo de instância de destino, selecione
Novo cluster.
O Database Migration Service usa a configuração padrão do AlloyDB para PostgreSQL em um novo cluster. Clique em Personalizar para ajustar os recursos do cluster, como o tipo de máquina, a disponibilidade zonal ou as configurações de proteção de dados. Para mais informações sobre a configuração do cluster, consulte Criar um cluster e a instância principal dele na documentação do AlloyDB para PostgreSQL.
- No campo Senha, insira uma senha para o usuário administrador padrão do
postgres. O Database Migration Service se conecta como esse usuário para migrar seus dados.
Clusters atuais
É possível migrar bancos de dados para um cluster que já existe. Verifique se o cluster de destino está ativado para o Private Service Connect, está no estado
RUNNABLEe não aplica mTLS com conectores do AlloyDB. Faça o seguinte:- No menu Tipo de instância de destino, selecione Cluster atual.
- No menu ID do cluster atual, selecione o identificador do cluster.
- No menu Tipo de instância de destino, selecione
Novo cluster.
- Clique em Iniciar migração.
O Database Migration Service cria o job de migração contínua e começa a replicar os dados. É possível monitorar o progresso da migração e a integridade do cluster de destino no AlloyDB para PostgreSQL. Para mais informações, consulte Ver detalhes do cluster e da instância na documentação do AlloyDB para PostgreSQL.
gcloud
Para criar e executar uma migração de início rápido usando a CLI gcloud, faça o seguinte:
-
Configure a conectividade com o banco de dados de origem.
Selecione a guia com base no uso de IP particular (Private Service Connect) ou IP público pelo banco de dados de origem:IP particular (Private Service Connect)
Para se conectar usando o Private Service Connect, configure o anexo de rede e a conexão particular:
-
Configure o anexo de rede: decida se você quer criar um novo anexo de rede ou reutilizar um que já existe. É preciso ter um anexo de rede na rede em que o IP privado do banco de dados de origem possa ser acessado.
- Se você quiser criar um novo anexo de rede, execute o comando a seguir (clique para abrir todos os detalhes).
gcloud compute network-attachments createAntes de usar os dados do comando abaixo, faça estas substituições:
- NETWORK_ATTACHMENT pelo nome do anexo de rede que será criado.
- REGION pela região do anexo de rede.
- DEST_PROJECT_ID pelo ID do projeto de destino.
- SOURCE_PROJECT_ID pelo ID do projeto em que a rede de origem está localizada.
Execute o seguinte comando:
Linux, macOS ou Cloud Shell
gcloud compute network-attachments create NETWORK_ATTACHMENT \ --region=REGION \ --connection-preference=ACCEPT_MANUAL \ --producer-accept-list=DEST_PROJECT_ID \ --subnets=default \ --project=SOURCE_PROJECT_ID
Windows (PowerShell)
gcloud compute network-attachments create NETWORK_ATTACHMENT ` --region=REGION ` --connection-preference=ACCEPT_MANUAL ` --producer-accept-list=DEST_PROJECT_ID ` --subnets=default ` --project=SOURCE_PROJECT_ID
Windows (cmd.exe)
gcloud compute network-attachments create NETWORK_ATTACHMENT ^ --region=REGION ^ --connection-preference=ACCEPT_MANUAL ^ --producer-accept-list=DEST_PROJECT_ID ^ --subnets=default ^ --project=SOURCE_PROJECT_ID
- Se você quiser reutilizar um anexo de rede, prossiga para a próxima etapa.
- Se você quiser criar um novo anexo de rede, execute o comando a seguir (clique para abrir todos os detalhes).
-
Permita que o projeto de locatário do Database Migration Service acesse seu anexo de rede: o anexo de rede precisa permitir conexões do projeto de locatário do Database Migration Service. Siga as etapas abaixo:
- Recupere o ID do projeto de locatário do Database Migration Service realizando uma simulação de criação de conexão particular (clique para expandir):
gcloud database-migration private-connections create --validate-onlyAntes de usar os dados do comando abaixo, faça estas substituições:
- PRIVATE_CONN pelo nome do recurso de conexão particular.
- REGION pela região da conexão particular.
- NETWORK_ATTACHMENT_URI pelo URI do anexo de rede.
Execute o seguinte comando:
Linux, macOS ou Cloud Shell
gcloud database-migration private-connections create PRIVATE_CONN \ --region=REGION \ --network-attachment=NETWORK_ATTACHMENT_URI \ --display-name=PRIVATE_CONN \ --format="value(metadata.metadata.tenant_project_id)" \ --validate-only
Windows (PowerShell)
gcloud database-migration private-connections create PRIVATE_CONN ` --region=REGION ` --network-attachment=NETWORK_ATTACHMENT_URI ` --display-name=PRIVATE_CONN ` --format="value(metadata.metadata.tenant_project_id)" ` --validate-only
Windows (cmd.exe)
gcloud database-migration private-connections create PRIVATE_CONN ^ --region=REGION ^ --network-attachment=NETWORK_ATTACHMENT_URI ^ --display-name=PRIVATE_CONN ^ --format="value(metadata.metadata.tenant_project_id)" ^ --validate-only
Salve o ID do projeto de locatário retornado para usar com os próximos comandos.
- Permita que o projeto de locatário do Database Migration Service e o projeto de destino se conectem ao anexo de rede (clique para abrir):
gcloud compute network-attachments updateAntes de usar os dados do comando abaixo, faça estas substituições:
- NETWORK_ATTACHMENT pelo nome do anexo de rede.
- REGION pela região.
- DEST_PROJECT_ID pelo ID do projeto de destino.
- DMS_TENANT_ID pelo ID do projeto de locatário do Database Migration Service recuperado.
- SOURCE_PROJECT_ID pelo ID do projeto em que a rede de origem está localizada.
Execute o seguinte comando:
Linux, macOS ou Cloud Shell
gcloud compute network-attachments update NETWORK_ATTACHMENT \ --region=REGION \ --producer-accept-list=DEST_PROJECT_ID,DMS_TENANT_ID \ --project=SOURCE_PROJECT_ID
Windows (PowerShell)
gcloud compute network-attachments update NETWORK_ATTACHMENT ` --region=REGION ` --producer-accept-list=DEST_PROJECT_ID,DMS_TENANT_ID ` --project=SOURCE_PROJECT_ID
Windows (cmd.exe)
gcloud compute network-attachments update NETWORK_ATTACHMENT ^ --region=REGION ^ --producer-accept-list=DEST_PROJECT_ID,DMS_TENANT_ID ^ --project=SOURCE_PROJECT_ID
- Recupere o ID do projeto de locatário do Database Migration Service realizando uma simulação de criação de conexão particular (clique para expandir):
-
Crie o recurso de conectividade particular do Database Migration Service: execute o seguinte comando (clique para expandir):
gcloud database-migration private-connections createAntes de usar os dados do comando abaixo, faça estas substituições:
- PRIVATE_CONN pelo nome do recurso de conexão particular.
- REGION pela região da conexão particular.
- NETWORK_ATTACHMENT_URI pelo URI do anexo de rede.
Execute o seguinte comando:
Linux, macOS ou Cloud Shell
gcloud database-migration private-connections create PRIVATE_CONN \ --region=REGION \ --network-attachment=NETWORK_ATTACHMENT_URI \ --display-name=PRIVATE_CONN
Windows (PowerShell)
gcloud database-migration private-connections create PRIVATE_CONN ` --region=REGION ` --network-attachment=NETWORK_ATTACHMENT_URI ` --display-name=PRIVATE_CONN
Windows (cmd.exe)
gcloud database-migration private-connections create PRIVATE_CONN ^ --region=REGION ^ --network-attachment=NETWORK_ATTACHMENT_URI ^ --display-name=PRIVATE_CONN
IP público
Para se conectar a um banco de dados de origem com um endereço IP público, siga estas etapas:
-
Criar uma conexão particular com IP público reservado.
Execute o seguinte comando (clique para expandir):gcloud database-migration private-connections createEste exemplo usa a flag opcional
--no-asyncpara que todas as operações sejam realizadas de forma síncrona. Isso significa que alguns comandos podem levar um tempo para serem concluídos. É possível pular a flag--no-asyncpara executar comandos de forma assíncrona. Se você fizer isso, use o comandogcloud database-migration operations describepara verificar se a operação foi bem-sucedida.Antes de usar os dados do comando abaixo, faça estas substituições:
- CONNECTION_ID pelo identificador da conexão particular.
- REGION pela região do Google Cloud em que você quer criar a conexão particular.
- DISPLAY por um nome de exibição fácil para a conexão particular.
- Opcional: é possível substituir a flag
--reserved-public-ippor--reserved-public-ip-nat-ips-countpara reservar vários endereços IP públicos dedicados que o Database Migration Service usa para conexão. É possível reservar até10endereços IP.
Execute o seguinte comando:
Linux, macOS ou Cloud Shell
gcloud database-migration private-connections create \ CONNECTION_ID \ --region=REGION \ --display-name="DISPLAY" \ --reserved-public-ip \ --no-async
Windows (PowerShell)
gcloud database-migration private-connections create ` CONNECTION_ID ` --region=REGION ` --display-name="DISPLAY" ` --reserved-public-ip ` --no-async
Windows (cmd.exe)
gcloud database-migration private-connections create ^ CONNECTION_ID ^ --region=REGION ^ --display-name="DISPLAY" ^ --reserved-public-ip ^ --no-async
-
Recupere os endereços IP públicos reservados.
Execute o seguinte comando (clique para expandir):gcloud database-migration connection-profiles fetch-static-ipsAntes de usar os dados do comando abaixo, faça estas substituições:
- REGION pela região do Google Cloud da conexão particular.
Execute o seguinte comando:
Linux, macOS ou Cloud Shell
gcloud database-migration connection-profiles fetch-static-ips \ REGION \ --fetch-reserved-public-ips
Windows (PowerShell)
gcloud database-migration connection-profiles fetch-static-ips ` REGION ` --fetch-reserved-public-ips
Windows (cmd.exe)
gcloud database-migration connection-profiles fetch-static-ips ^ REGION ^ --fetch-reserved-public-ips
-
Adicione os endereços IP reservados à lista de permissões no banco de dados de origem.
Adicione os endereços IP recuperados na etapa anterior à lista de permissões de entrada do banco de dados de origem (por exemplo, na configuração dopg_hba.conf, nos grupos de segurança do provedor de nuvem ou nas regras de firewall de rede) para que o Database Migration Service possa estabelecer uma conexão.
-
-
Crie um perfil de conexão de origem.
Execute o seguinte comando (clique para expandir):gcloud database-migration connection-profiles create postgresqlEste exemplo usa a flag opcional
--no-asyncpara que todas as operações sejam realizadas de forma síncrona. Isso significa que alguns comandos podem levar um tempo para serem concluídos. É possível pular a flag--no-asyncpara executar comandos de forma assíncrona. Se você fizer isso, use o comandogcloud database-migration operations describepara verificar se a operação foi bem-sucedida.Antes de usar os dados do comando abaixo, faça estas substituições:
- SOURCE_CONN_ID pelo identificador do perfil de conexão de origem.
- REGION pela região em que você quer salvar o perfil de conexão.
- SOURCE_PRIVATE_IP pelo endereço IP privado do banco de dados de origem.
- SOURCE_PORT pela porta do banco de dados de origem (o padrão é 5432).
- SOURCE_USER pelo nome de usuário da migração no banco de dados de origem.
- SOURCE_PASSWORD pela senha do usuário de migração no banco de dados de origem.
- PRIVATE_CONN pelo nome do recurso de conexão particular.
Execute o seguinte comando:
Linux, macOS ou Cloud Shell
gcloud database-migration connection-profiles create postgresql \ SOURCE_CONN_ID \ --region=REGION \ --role=SOURCE \ --host=SOURCE_PRIVATE_IP \ --port=SOURCE_PORT \ --username=SOURCE_USER \ --password=SOURCE_PASSWORD \ --private-connection=PRIVATE_CONN \ --no-async
Windows (PowerShell)
gcloud database-migration connection-profiles create postgresql ` SOURCE_CONN_ID ` --region=REGION ` --role=SOURCE ` --host=SOURCE_PRIVATE_IP ` --port=SOURCE_PORT ` --username=SOURCE_USER ` --password=SOURCE_PASSWORD ` --private-connection=PRIVATE_CONN ` --no-async
Windows (cmd.exe)
gcloud database-migration connection-profiles create postgresql ^ SOURCE_CONN_ID ^ --region=REGION ^ --role=SOURCE ^ --host=SOURCE_PRIVATE_IP ^ --port=SOURCE_PORT ^ --username=SOURCE_USER ^ --password=SOURCE_PASSWORD ^ --private-connection=PRIVATE_CONN ^ --no-async
-
Crie o perfil de conexão de destino.
Selecione a guia com base em se você quer migrar para um cluster novo ou atual do AlloyDB para PostgreSQL:Novos clusters
Para usar um novo cluster de destino na migração de início rápido, primeiro crie o cluster e a instância principal dele com a CLI do Google Cloud do AlloyDB para PostgreSQL e, em seguida, crie o perfil de conexão de destino. Siga estas etapas:
-
Crie um cluster e a instância primária dele com a CLI do Google Cloud do AlloyDB para PostgreSQL.
Use a flag
--enable-private-service-connectpara ativar o cluster de destino para o Private Service Connect. As migrações de início rápido são compatíveis apenas com destinos que usam o Private Service Connect. - Crie o perfil de conexão de destino para o novo cluster.
Abra a seção a seguir para ver todos os detalhes do comando.
gcloud database-migration connection-profiles create postgresqlEste exemplo usa a flag opcional
--no-asyncpara que todas as operações sejam realizadas de forma síncrona. Isso significa que alguns comandos podem levar um tempo para serem concluídos. É possível pular a flag--no-asyncpara executar comandos de forma assíncrona. Se você fizer isso, use o comandogcloud database-migration operations describepara verificar se a operação foi bem-sucedida.Antes de usar os dados do comando abaixo, faça estas substituições:
- DEST_CONN_ID pelo identificador do perfil de conexão de destino.
- REGION pela região em que você quer salvar o perfil de conexão. Essa região precisa ser a mesma do cluster de destino.
- DEST_CLUSTER pelo ID ou caminho completo do recurso do cluster de destino do AlloyDB para PostgreSQL.
- DEST_USER pelo nome do usuário de migração no banco de dados de destino.
- DEST_PASSWORD pela senha do usuário de migração no banco de dados de destino.
Execute o seguinte comando:
Linux, macOS ou Cloud Shell
gcloud database-migration connection-profiles create postgresql DEST_CONN_ID \ --region=REGION \ --alloydb-cluster=DEST_CLUSTER \ --username=DEST_USER \ --password=DEST_PASSWORD \ --role=DESTINATION \ --no-async
Windows (PowerShell)
gcloud database-migration connection-profiles create postgresql DEST_CONN_ID ` --region=REGION ` --alloydb-cluster=DEST_CLUSTER ` --username=DEST_USER ` --password=DEST_PASSWORD ` --role=DESTINATION ` --no-async
Windows (cmd.exe)
gcloud database-migration connection-profiles create postgresql DEST_CONN_ID ^ --region=REGION ^ --alloydb-cluster=DEST_CLUSTER ^ --username=DEST_USER ^ --password=DEST_PASSWORD ^ --role=DESTINATION ^ --no-async
Você receberá uma resposta semelhante a esta:
Waiting for connection profile [CONNECTION_PROFILE_ID] to be created with [OPERATION_ID] Waiting for operation [OPERATION_ID] to complete...done. Created connection profile CONNECTION_PROFILE_ID [OPERATION_ID]
Clusters atuais
Para migrar para um cluster de destino, crie o perfil de conexão apontando para o cluster pré-criado. Execute o seguinte comando (clique para expandir):
gcloud database-migration connection-profiles create postgresqlEste exemplo usa a flag opcional
--no-asyncpara que todas as operações sejam realizadas de forma síncrona. Isso significa que alguns comandos podem levar um tempo para serem concluídos. É possível pular a flag--no-asyncpara executar comandos de forma assíncrona. Se você fizer isso, use o comandogcloud database-migration operations describepara verificar se a operação foi bem-sucedida.Antes de usar os dados do comando abaixo, faça estas substituições:
- DEST_CONN_ID pelo identificador do perfil de conexão de destino.
- REGION pela região em que você quer salvar o perfil de conexão. Essa região precisa ser a mesma do cluster de destino.
- DEST_CLUSTER pelo ID ou caminho completo do recurso do cluster de destino do AlloyDB para PostgreSQL.
- DEST_USER pelo nome do usuário de migração no banco de dados de destino.
- DEST_PASSWORD pela senha do usuário de migração no banco de dados de destino.
Execute o seguinte comando:
Linux, macOS ou Cloud Shell
gcloud database-migration connection-profiles create postgresql DEST_CONN_ID \ --region=REGION \ --alloydb-cluster=DEST_CLUSTER \ --username=DEST_USER \ --password=DEST_PASSWORD \ --role=DESTINATION \ --no-async
Windows (PowerShell)
gcloud database-migration connection-profiles create postgresql DEST_CONN_ID ` --region=REGION ` --alloydb-cluster=DEST_CLUSTER ` --username=DEST_USER ` --password=DEST_PASSWORD ` --role=DESTINATION ` --no-async
Windows (cmd.exe)
gcloud database-migration connection-profiles create postgresql DEST_CONN_ID ^ --region=REGION ^ --alloydb-cluster=DEST_CLUSTER ^ --username=DEST_USER ^ --password=DEST_PASSWORD ^ --role=DESTINATION ^ --no-async
Você receberá uma resposta semelhante a esta:
Waiting for connection profile [CONNECTION_PROFILE_ID] to be created with [OPERATION_ID] Waiting for operation [OPERATION_ID] to complete...done. Created connection profile CONNECTION_PROFILE_ID [OPERATION_ID]
-
Crie um cluster e a instância primária dele com a CLI do Google Cloud do AlloyDB para PostgreSQL.
Use a flag
-
Criar um job de migração contínua.
Execute o comando a seguir para criar um job de migração contínua (clique para expandir):gcloud database-migration migration-jobs createEste exemplo usa a flag opcional
--no-asyncpara que todas as operações sejam realizadas de forma síncrona. Isso significa que alguns comandos podem levar um tempo para serem concluídos. É possível pular a flag--no-asyncpara executar comandos de forma assíncrona. Se você fizer isso, use o comandogcloud database-migration operations describepara verificar se a operação foi bem-sucedida.Antes de usar os dados do comando abaixo, faça estas substituições:
- MIGRATION_JOB_ID pelo identificador do job de migração.
- REGION pela região em que você quer salvar o job de migração.
- SOURCE_CONN_ID pelo identificador do perfil de conexão de origem.
- DEST_CONN_ID pelo identificador do perfil de conexão de destino.
- DATABASES_LIST por uma lista separada por vírgulas de bancos de dados que você quer migrar.
Execute o seguinte comando:
Linux, macOS ou Cloud Shell
gcloud database-migration migration-jobs create \ MIGRATION_JOB_ID \ --region=REGION \ --type=CONTINUOUS \ --source=SOURCE_CONN_ID \ --destination=DEST_CONN_ID \ --use-postgres-native \ --postgres-max-additional-subscriptions=10 \ --databases-filter=DATABASES_LIST \ --no-async
Windows (PowerShell)
gcloud database-migration migration-jobs create ` MIGRATION_JOB_ID ` --region=REGION ` --type=CONTINUOUS ` --source=SOURCE_CONN_ID ` --destination=DEST_CONN_ID ` --use-postgres-native ` --postgres-max-additional-subscriptions=10 ` --databases-filter=DATABASES_LIST ` --no-async
Windows (cmd.exe)
gcloud database-migration migration-jobs create ^ MIGRATION_JOB_ID ^ --region=REGION ^ --type=CONTINUOUS ^ --source=SOURCE_CONN_ID ^ --destination=DEST_CONN_ID ^ --use-postgres-native ^ --postgres-max-additional-subscriptions=10 ^ --databases-filter=DATABASES_LIST ^ --no-async
Você receberá uma resposta semelhante a esta:
Waiting for migration job [MIGRATION_JOB_ID] to be created with [OPERATION_ID] Waiting for operation [OPERATION_ID] to complete...done. Created migration job MIGRATION_JOB_ID [OPERATION_ID]
-
Inicie o job de migração.
Para iniciar o job de migração contínua, execute o seguinte comando (clique para expandir):gcloud database-migration migration-jobs startAntes de usar os dados do comando abaixo, faça estas substituições:
- MIGRATION_JOB_ID pelo
identificador do job de migração.
Se você não souber o identificador, use o comando
gcloud database-migration migration-jobs listpara listar todos os jobs de migração em uma determinada região e ver os identificadores deles. - REGION pelo identificador da região em que o job de migração está salvo.
Execute o seguinte comando:
Linux, macOS ou Cloud Shell
gcloud database-migration migration-jobs \ start MIGRATION_JOB_ID \ --region=REGION
Windows (PowerShell)
gcloud database-migration migration-jobs ` start MIGRATION_JOB_ID ` --region=REGION
Windows (cmd.exe)
gcloud database-migration migration-jobs ^ start MIGRATION_JOB_ID ^ --region=REGION
Resultado
A ação é realizada de maneira assíncrona. Assim, esse comando retorna uma entidade Operation que representa uma operação de longa duração:
done: false metadata: '@type': type.googleapis.com/google.cloud.clouddms.v1.OperationMetadata apiVersion: v1 createTime: '2024-02-20T12:20:24.493106418Z' requestedCancellation: false target: MIGRATION_JOB_ID verb: start name: OPERATION_ID
Para ver se a operação foi bem-sucedida, consulte o objeto de operação retornado ou verifique o status do job de migração:
- Use o comando
gcloud database-migration migration-jobs describecom o MIGRATION_JOB_ID para conferir o status do job de migração. - Use o comando
gcloud database-migration operations describecom o OPERATION_ID para ver o status da operação em si.
- MIGRATION_JOB_ID pelo
identificador do job de migração.
Finalizar a migração
Quando você decidir mudar o tráfego do aplicativo para o novo cluster do AlloyDB para PostgreSQL, conclua a migração seguindo estas etapas:
- Interrompa todas as operações de gravação no banco de dados de origem. É possível alternar o banco de dados de origem para o modo somente leitura para manter a funcionalidade de consulta operacional durante a transição.
- Promova o job de migração. Nas migrações de início rápido, o cluster de destino permanece gravável durante o processo de migração. A promoção do job de migração apenas encerra a replicação e não tem impacto no cluster de destino.
- Opcional: verifique se os dados de migração estão completos e consistentes.