Nesta página, descrevemos como realizar migrações de início rápido para migrações homogêneas do PostgreSQL para o Cloud SQL 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 tudo o que você precisa para migrar seus bancos de dados: componentes de rede (anexos de rede, sub-redes, configurações de conectividade privada), perfis de conexão e jobs de migração.
Com as migrações de início rápido, é possível mover seus dados para uma instância do Cloud SQL existente ou criar uma nova ao configurar a migração. As migrações de início rápido são mais adequadas para:
- Migrações básicas, em que não é necessário controle preciso sobre as configurações de paralelismo de despejo de dados.
- Migrar seu banco de dados de um projeto Google Cloud para outro. Ao configurar uma migração de início rápido, é possível criar a instância de destino em um projeto diferente da origem e definir o Database Migration Service para criar o anexo de rede e a sub-rede na rede de nuvem privada virtual (VPC) de outro projeto.
-
Migrar de fontes que têm um endereço IP particular na sua rede de nuvem privada virtual (VPC) do Google Cloud, como bancos de dados autogerenciados no Compute Engine ou instâncias do Cloud SQL para PostgreSQL ativadas para rede particular.
Fontes hospedadas fora do Google Cloud podem precisar de componentes de rede adicionais, como uma conexão do Cloud VPN, para serem acessadas em um endereço IP privado na sua rede VPC.
- O único método compatível para conectividade de banco de dados são as interfaces do Private Service Connect com configurações de conectividade particular do Database Migration Service. O banco de dados de origem precisa ter um IP privado atribuído na rede VPC. Outros métodos de conectividade de origem homogêneos (como listas de permissões de IP público, túneis SSH reversos ou peering de VPC) não são compatíveis com migrações de início rápido.
Para saber mais sobre 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 podem oferecer suporte total ao seu cenário. Consulte Limitações da migração de início rápido.
-
Faça login na sua Conta do Google.
Se você ainda não tiver uma, inscreva-se agora.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
- Ative as APIs Database Migration Service, Compute Engine, Network Connectivity Center e Cloud SQL Admin.
Funções exigidas
Para receber as permissões necessárias para executar migrações de início rápido para o Cloud SQL com o Database Migration Service, peça ao administrador que conceda os papéis do Identity and Access Management (IAM) necessários 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
Conceda os seguintes papéis a contas específicas no projeto Google Cloud em que o banco de dados fonte reside:
- Para a conta de usuário que realiza a migração:
Papel
Administrador de rede do Compute (
roles/compute.networkAdmin) - Para a conta de serviço do Database Migration Service do projeto de destino:
Leitor da 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 mudado. Esse endereço de e-mail usa o seguinte formato:
service-DESTINATION_PROJECT_NUMBER@gcp-sa-datamigration.iam.gserviceaccount.com
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 conferir as permissões exatas necessárias, expanda a seção Permissões necessárias (fonte):
Permissões necessárias (fonte)
As permissões a seguir são necessárias para realizar migrações de início rápido homogêneas com o Database Migration Service:
Para a conta de usuário que realiza a migração:
compute.networks.*compute.subnetworks.*compute.networkAttachments.*
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 Google Cloud em que o banco de dados de destino reside:
-
Administrador de migração do banco de dados (
roles/datamigration.admin) -
Administrador do Cloud SQL (
roles/cloudsql.admin)
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 de início rápido homogêneas com o Database Migration Service:
datamigration.*cloudsql.instances.createcloudsql.instances.deletecloudsql.instances.getcloudsql.instances.listcloudsql.instances.updatecloudsql.instances.connectcloudsql.instances.executeSqlcloudsql.instances.exportcloudsql.instances.importcloudsql.instances.logincloudsql.operations.getcloudsql.users.getcloudsql.users.listcloudsql.users.createcloudsql.users.updatecloudsql.users.delete
Configurar o banco de dados de origem
Para configurar o banco de dados de origem do PostgreSQL, faça o seguinte:
- Crie uma conta de usuário de migração dedicada na instância.
- Para fontes do Cloud SQL para PostgreSQL, consulte Criar um usuário na documentação do Cloud SQL.
- Para outras fontes, consulte a documentação do provedor de banco de dados ou crie e gerencie 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 com o nome da conta de usuário de migração.
- DATABASE_NAME com o nome do banco de dados que você quer migrar.
- SCHEMA_NAME com o 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, faça o seguinte:
- Para fontes que não sejam o Cloud SQL para PostgreSQL: atribua a
função
SUPERUSERdo PostgreSQL à conta de migração. - Para todas as fontes: adicione a conta de usuário de migração ao grupo de usuários proprietário das tabelas.
Execute este comando:
-- Grant table ownership. GRANT TABLE_OWNER_GROUP_NAME TO MIGRATION_USER;
Substitua:
- TABLE_OWNER_GROUP_NAME com o nome do grupo de usuários proprietário de cada tabela que você quer migrar.
- MIGRATION_USER com o nome da conta de usuário de migração.
- Para fontes que não sejam o Cloud SQL para PostgreSQL: atribua a
função
- 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 sua 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.
- Configure as configurações de replicação usando flags de banco de dados.
Fontes autogerenciadas
Para salvar as mudanças nas flags do banco de dados, é necessário reiniciar o banco de dados por completo. Os exemplos a seguir usam consultas SQL para mudar valores de 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, mais 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 já usados por você.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, além do número de remetentes já usados na sua 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 sua 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;
Fontes do Cloud SQL para PostgreSQL
Para origens do Cloud SQL, configure flags de banco de dados no console Google Cloud . É necessário reiniciar a instância depois de modificar as flags do 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. - 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, mais 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 já usados por você. - Configure o parâmetro
max_wal_senderscom pelo menos o mesmo valor demax_replication_slots, mais o número de remetentes já usados na sua 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
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 sua instância.
- Defina o parâmetro
Criar e executar uma migração de início rápido
Console
Para criar e executar uma migração de início rápido usando o console Google Cloud , faça o seguinte:
- No console do Google Cloud , acesse a página Começar.
- No menu Mecanismo de origem, selecione PostgreSQL.
- No menu Mecanismo de destino, selecione
Cloud SQL para PostgreSQL.
A seção Apresentamos a migração de início rápido do PostgreSQL aparece.
- 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 Cloud SQL para PostgreSQL é aberta.
- Na seção Configurar migração, faça o seguinte:
- No menu Região de destino, selecione a região da instância de destino do Cloud SQL.
- Na caixa Prefixo de migração, insira uma string fácil de usar 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, além do job de migração.
- 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 privada que use o método de interfaces do Private Service Connect. Essa opção é melhor 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 esta opção para criar um novo anexo de rede e a sub-rede de anexo de rede na rede VPC do banco de dados de origem. A configuração de conectividade privada será criada no mesmo projeto da instância de destino.
- Clique em Continuar.
- Na seção Conectar origem, faça o seguinte:
- Insira um nome do host ou o endereço IP particular do banco de dados de origem. O endereço do banco de dados de origem precisa estar acessível na rede VPC de origem.
- Insira a porta usada para acessar o host. A porta padrão do PostgreSQL é
5432. - Digite 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:
- Nenhum: se o banco de dados de origem não exigir conexões criptografadas com SSL/TLS.
- Obrigatório: se o banco de dados de origem exigir conexões criptografadas com SSL/TLS. Essa opção não exige verificação de certificado.
- No menu Bancos de dados a serem migrados, clique em Personalizar. Use o painel lateral para selecionar apenas os bancos de dados que você quer migrar para o Cloud SQL.
- Clique em Continuar.
- Na seção Configurar destino, você pode criar uma instância de destino ou selecionar uma já existente.
Novas instâncias
Para criar uma instância de destino, faça o seguinte:
- No menu Tipo de instância de destino, selecione Nova instância.
O Database Migration Service usa a configuração padrão do Cloud SQL para uma nova instância. Clique em Personalizar para ajustar os recursos da instância, como tipo de máquina, disponibilidade zonal ou configurações de proteção de dados. Para mais informações sobre a configuração de instâncias, consulte Criar instâncias na documentação do Cloud SQL.
- No campo Senha, insira uma senha para o usuário
administrador
postgresqlpadrão. O Database Migration Service se conecta como esse usuário para migrar seus dados.
Instâncias atuais
É possível migrar bancos de dados para uma instância que já existe. Verifique se a instância de destino está ativada para o Private Service Connect e não exige conexões mTLS. Faça o seguinte:
- No menu Tipo de instância de destino, selecione Instância atual.
- No menu ID da instância atual, selecione o identificador da instância.
- No menu Tipo de instância de destino, selecione Nova instância.
- Clique em Iniciar migração.
O Database Migration Service cria o job de migração e inicia o processo de migração. É possível monitorar o progresso da migração nos detalhes do job de migração do Database Migration Service. Para mais informações, consulte Gerenciar jobs de migração.
gcloud
Para criar e executar uma migração de início rápido usando a CLI gcloud, faça o seguinte:
-
Configure o anexo de rede.
Decida se você quer criar um novo anexo de rede ou reutilizar um existente. Você precisa ter um anexo de rede na rede em que o IP privado do banco de dados de origem pode 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 com o nome do anexo de rede a ser criado.
- REGION pela região do anexo de rede.
- DEST_PROJECT_ID com o ID do projeto de destino.
- SOURCE_PROJECT_ID com o 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, vá 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 do locatário do Database Migration Service fazendo um teste 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 com o nome do recurso de conexão particular.
- REGION pela região da conexão particular.
- NETWORK_ATTACHMENT_URI com o 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 do locatário do Database Migration Service e o projeto de destino se conectem ao anexo de rede (clique para expandir):
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 com a região.
- DEST_PROJECT_ID com o ID do projeto de destino.
- DMS_TENANT_ID com o ID do projeto de locatário do Database Migration Service recuperado.
- SOURCE_PROJECT_ID com o 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 do locatário do Database Migration Service fazendo um teste de criação de conexão particular (clique para expandir):
-
Crie o recurso de conectividade privada 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 com o nome do recurso de conexão particular.
- REGION pela região da conexão particular.
- NETWORK_ATTACHMENT_URI com o 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
-
Crie o 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. Você pode pular a flag--no-asyncpara executar comandos de forma assíncrona. Se sim, 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 com o identificador do perfil de conexão de origem.
- REGION com a região em que você quer salvar o perfil de conexão.
- SOURCE_PRIVATE_IP com o endereço IP particular do banco de dados de origem.
- SOURCE_PORT com a porta do banco de dados de origem (o padrão é 5432).
- SOURCE_USER com o nome de usuário do usuário de migração no banco de dados de origem.
- SOURCE_PASSWORD com a senha do usuário de migração no banco de dados de origem.
- PRIVATE_CONN com o 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 de acordo com o tipo de migração que você quer fazer: para uma instância nova ou uma instância atual do Cloud SQL:Novas instâncias
Para usar uma nova instância de destino na migração de início rápido, primeiro crie a instância com a CLI do Google Cloud do Cloud SQL e, em seguida, crie o perfil de conexão de destino. Siga estas etapas:
-
Crie uma instância com a CLI do Google Cloud do Cloud SQL.
Use a flag
--enable-private-service-connectpara ativar o Private Service Connect na instância de destino. As migrações de início rápido só são compatíveis com instâncias que têm o Private Service Connect ativado. - Crie o perfil de conexão de destino para sua nova instância.
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. Você pode pular a flag--no-asyncpara executar comandos de forma assíncrona. Se sim, 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 com o identificador do perfil de conexão de destino.
- REGION com a região em que você quer salvar o perfil de conexão. Ela precisa ser igual à região da instância de destino.
- DEST_INSTANCE com o ID da instância de destino do Cloud SQL pré-criada.
- DEST_USER com o nome de usuário do usuário de migração no banco de dados de destino.
- DEST_PASSWORD com a 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 \ --cloudsql-instance=DEST_INSTANCE \ --username=DEST_USER \ --password=DEST_PASSWORD \ --role=DESTINATION \ --no-async
Windows (PowerShell)
gcloud database-migration connection-profiles create postgresql DEST_CONN_ID ` --region=REGION ` --cloudsql-instance=DEST_INSTANCE ` --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 ^ --cloudsql-instance=DEST_INSTANCE ^ --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]
Instâncias atuais
Para migrar para uma instância de destino, crie o perfil de conexão apontando para a instância pré-criada. 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. Você pode pular a flag--no-asyncpara executar comandos de forma assíncrona. Se sim, 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 com o identificador do perfil de conexão de destino.
- REGION com a região em que você quer salvar o perfil de conexão. Ela precisa ser igual à região da instância de destino.
- DEST_INSTANCE com o ID da instância de destino do Cloud SQL pré-criada.
- DEST_USER com o nome de usuário do usuário de migração no banco de dados de destino.
- DEST_PASSWORD com a 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 \ --cloudsql-instance=DEST_INSTANCE \ --username=DEST_USER \ --password=DEST_PASSWORD \ --role=DESTINATION \ --no-async
Windows (PowerShell)
gcloud database-migration connection-profiles create postgresql DEST_CONN_ID ` --region=REGION ` --cloudsql-instance=DEST_INSTANCE ` --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 ^ --cloudsql-instance=DEST_INSTANCE ^ --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 uma instância com a CLI do Google Cloud do Cloud SQL.
Use a flag
-
Crie o job de migração.
Execute o seguinte comando (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. Você pode pular a flag--no-asyncpara executar comandos de forma assíncrona. Se sim, 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 com o identificador do job de migração.
- REGION com a região em que você quer salvar o job de migração.
- SOURCE_CONN_ID com o identificador do perfil de conexão de origem.
- DEST_CONN_ID com o identificador do perfil de conexão de destino.
- DATABASES_LIST com uma lista separada por vírgulas dos 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]
-
Execute o job de migração.
Iniciar o job de migração (clique para abrir):gcloud database-migration migration-jobs startEste 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. Você pode pular a flag--no-asyncpara executar comandos de forma assíncrona. Se sim, 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 com o 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 com o identificador da região em que o perfil de conexã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 forma assíncrona. Assim, esse comando retorna uma entidade de operação 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 saber 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 MIGRATION_JOB_ID para conferir o status do job de migração. - Use o comando
gcloud database-migration operations describecom o OPERATION_ID para conferir o status da operação.
- MIGRATION_JOB_ID com o identificador do job de migração.
Finalizar a migração
Quando você decidir mudar o aplicativo para a nova instância do Cloud SQL, conclua a migração seguindo estas etapas:
- Interrompa todas as operações de gravação no banco de dados de origem. Você pode mudar para o modo somente leitura para manter a funcionalidade operacional.
- Promova o job de migração. Para migrações de início rápido, a instância 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 na instância de destino.
- Opcional: verifique se os dados de migração estão completos.