arrow_back

Migrar para o Cloud SQL para PostgreSQL usando o Database Migration Service

Teste e compartilhe seu conhecimento com nossa comunidade.
done
Tenha acesso a mais de 700 laboratórios, selos de habilidade e cursos

Migrar para o Cloud SQL para PostgreSQL usando o Database Migration Service

Laboratório 1 hora 30 minutos universal_currency_alt 1 crédito show_chart Introdutório
info Este laboratório pode incorporar ferramentas de IA para ajudar no seu aprendizado.
Teste e compartilhe seu conhecimento com nossa comunidade.
done
Tenha acesso a mais de 700 laboratórios, selos de habilidade e cursos

GSP918

Laboratórios autoguiados do Google Cloud

Visão geral

O Database Migration Service oferece opções de jobs contínuos ou únicos para migrar dados para o Cloud SQL usando diferentes opções de conectividade, incluindo listas de permissões de IP, peering de VPC e túneis SSH reversos (veja os documentos sobre opções de conectividade em https://cloud.google.com/database-migration/docs/postgresql/configure-connectivity).

Neste laboratório, você vai migrar um banco de dados independente do PostgreSQL (executado em uma máquina virtual) para o Cloud SQL para PostgreSQL usando um job contínuo do Database Migration Service e peering de VPC para conectividade.

Para migrar um banco de dados pelo Database Migration Service, é necessário preparar o banco de dados de origem, incluindo a criação de um usuário dedicado com direitos de replicação, adicionando a extensão de banco de dados pglogical ao banco de dados de origem e atribuindo ao usuário direitos aos esquemas e tabelas no banco de dados a ser migrado, e ao banco de dados postgres.

Após criar e executar o job de migração, confirme que uma cópia inicial do seu banco de dados foi migrada com sucesso para sua instância do Cloud SQL para PostgreSQL. Você também vai descobrir como jobs contínuos de migração aplicam atualizações de dados do seu banco de dados de origem à sua instância do Cloud SQL. Para concluir o job de migração, promova a instância do Cloud SQL a um banco de dados independente para ler e gravar dados.

Atividades deste laboratório

  • Preparar o banco de dados de origem para a migração.
  • Criar um perfil para uma conexão de origem para uma instância do PostgreSQL (por exemplo, PostgreSQL independente).
  • Configurar a conectividade entre as instâncias dos bancos de dados de origem e de destino usando o peering de VPC.
  • Configurar as regras de acesso ao banco de dados e ao firewall para permitir o acesso ao banco de dados de origem para a migração.
  • Criar, executar e verificar um job contínuo de migração usando o Database Migration Service.
  • Promover a instância de destino (Cloud SQL para PostgreSQL) a um banco de dados independente para ler e gravar dados.

Configuração e requisitos

Antes de clicar no botão Start Lab

Leia estas instruções. Os laboratórios são cronometrados e não podem ser pausados. O timer é iniciado quando você clica em Começar o laboratório e mostra por quanto tempo os recursos do Google Cloud vão ficar disponíveis.

Este laboratório prático permite que você realize as atividades em um ambiente real de nuvem, não em uma simulação ou demonstração. Você vai receber novas credenciais temporárias para fazer login e acessar o Google Cloud durante o laboratório.

Confira os requisitos para concluir o laboratório:

  • Acesso a um navegador de Internet padrão (recomendamos o Chrome).
Observação: para executar este laboratório, use o modo de navegação anônima ou uma janela anônima do navegador. Isso evita conflitos entre sua conta pessoal e a conta de estudante, o que poderia causar cobranças extras na sua conta pessoal.
  • Tempo para concluir o laboratório---não se esqueça: depois de começar, não será possível pausar o laboratório.
Observação: não use seu projeto ou conta do Google Cloud neste laboratório para evitar cobranças extras na sua conta.

Como iniciar seu laboratório e fazer login no console do Google Cloud

  1. Clique no botão Começar o laboratório. Se for preciso pagar, você verá um pop-up para selecionar a forma de pagamento. No painel Detalhes do laboratório à esquerda, você vai encontrar o seguinte:

    • O botão Abrir console do Google Cloud
    • O tempo restante
    • As credenciais temporárias que você vai usar neste laboratório
    • Outras informações, se forem necessárias
  2. Se você estiver usando o navegador Chrome, clique em Abrir console do Google Cloud ou clique com o botão direito do mouse e selecione Abrir link em uma janela anônima.

    O laboratório ativa os recursos e depois abre a página Fazer login em outra guia.

    Dica: coloque as guias em janelas separadas lado a lado.

    Observação: se aparecer a caixa de diálogo Escolher uma conta, clique em Usar outra conta.
  3. Se necessário, copie o Nome de usuário abaixo e cole na caixa de diálogo Fazer login.

    {{{user_0.username | "Nome de usuário"}}}

    Você também encontra o Nome de usuário no painel Detalhes do laboratório.

  4. Clique em Seguinte.

  5. Copie a Senha abaixo e cole na caixa de diálogo de boas-vindas.

    {{{user_0.password | "Senha"}}}

    Você também encontra a Senha no painel Detalhes do laboratório.

  6. Clique em Seguinte.

    Importante: você precisa usar as credenciais fornecidas no laboratório, e não as da sua conta do Google Cloud. Observação: se você usar sua própria conta do Google Cloud neste laboratório, é possível que receba cobranças adicionais.
  7. Acesse as próximas páginas:

    • Aceite os Termos e Condições.
    • Não adicione opções de recuperação nem autenticação de dois fatores (porque essa é uma conta temporária).
    • Não se inscreva em testes gratuitos.

Depois de alguns instantes, o console do Google Cloud será aberto nesta guia.

Observação: clique em Menu de navegação no canto superior esquerdo para acessar uma lista de produtos e serviços do Google Cloud. Ícone do menu de navegação

Ativar o Cloud Shell

O Cloud Shell é uma máquina virtual com várias ferramentas de desenvolvimento. Ele tem um diretório principal permanente de 5 GB e é executado no Google Cloud. O Cloud Shell oferece acesso de linha de comando aos recursos do Google Cloud.

  1. Clique em Ativar o Cloud Shell Ícone "Ativar o Cloud Shell" na parte de cima do console do Google Cloud.

Depois de se conectar, vai notar que sua conta já está autenticada, e que o projeto está configurado com seu PROJECT_ID. A saída contém uma linha que declara o projeto PROJECT_ID para esta sessão:

Your Cloud Platform project in this session is set to YOUR_PROJECT_ID

gcloud é a ferramenta de linha de comando do Google Cloud. Ela vem pré-instalada no Cloud Shell e aceita preenchimento com tabulação.

  1. (Opcional) É possível listar o nome da conta ativa usando este comando:
gcloud auth list
  1. Clique em Autorizar.

  2. A saída será parecida com esta:

Saída:

ACTIVE: * ACCOUNT: student-01-xxxxxxxxxxxx@qwiklabs.net To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (Opcional) É possível listar o ID do projeto usando este comando:
gcloud config list project

Saída:

[core] project = <project_ID>

Exemplo de saída:

[core] project = qwiklabs-gcp-44776a13dea667a6 Observação: para conferir a documentação completa da gcloud, acesse o guia com informações gerais sobre a gcloud CLI no Google Cloud.

Verificar se a API Database Migration está ativada

  1. No console do Google Cloud, digite API Database Migration na barra de pesquisa superior. Clique no resultado para API Database Migration.

Essa página vai mostrar as informações de status ou dar a opção de ativar a API.

  1. Se necessário, ative a API.

Verificar se a API Service Networking está ativada

A API Service Networking é necessária para configurar o Cloud SQL para que ele ofereça suporte ao peering da VPC e a conexões em um endereço IP particular.

  1. No console do Cloud, digite API Service Networking na barra de pesquisa superior. Clique no resultado para API Service Networking.

Essa página vai mostrar as informações de status ou dar a opção de ativar a API.

  1. Se necessário, ative a API.

Tarefa 1. Preparar o banco de dados de origem para a migração

Nesta tarefa, você vai adicionar recursos de apoio ao banco de dados de origem. Eles são necessários para que o Database Migration Service execute a migração. São eles:

  • Instalar e configurar a extensão de banco de dados pglogical.
  • Configurar o banco de dados independente PostgreSQL para permitir o acesso do Cloud Shell e do Cloud SQL.
  • Adicionar a extensão de banco de dados pglogical aos bancos de dados postgres, orders e gmemegen_db no servidor independente.
  • Criar um usuário migration_admin (com permissões para replicação) para migração de banco de dados e fornecer a esse usuário as permissões necessárias para acessar os esquemas e as relações.

Atualizar o banco de dados com a extensão pglogical

Nesta etapa, você vai fazer o download e adicionar a extensão de banco de dados pglogical aos bancos de dados postgres e orders na instância da VM postgresql-vm.

  1. No console do Google Cloud, no Menu de navegação (Ícone do menu de navegação), clique em Compute Engine > Instâncias de VM.

  2. No tópico postgresql-vm, abaixo de Conectar, clique em SSH.

  3. Se for solicitado, clique em Autorizar.

  4. No terminal na nova janela do navegador, instale a extensão de banco de dados pglogical:

sudo apt install postgresql-13-pglogical Observação: pglogical é um sistema de replicação lógica implementado inteiramente como uma extensão PostgreSQL. Ele é totalmente integrado e não requer gatilhos nem programas externos. Essa alternativa à replicação física é um método altamente eficiente de replicar dados usando um modelo de publicar/assinar para replicação seletiva. Leia mais em: https://github.com/2ndQuadrant/pglogical
  1. Faça o download e aplique algumas adições aos arquivos de configuração do PostgreSQL (para ativar a extensão pglogical) e reinicie o serviço postgresql:
sudo su - postgres -c "gsutil cp gs://cloud-training/gsp918/pg_hba_append.conf ." sudo su - postgres -c "gsutil cp gs://cloud-training/gsp918/postgresql_append.conf ." sudo su - postgres -c "cat pg_hba_append.conf >> /etc/postgresql/13/main/pg_hba.conf" sudo su - postgres -c "cat postgresql_append.conf >> /etc/postgresql/13/main/postgresql.conf" sudo systemctl restart postgresql@13-main

Em pg_hba.conf, estes comandos adicionaram uma regra para permitir o acesso a todos os hosts:

#GSP918 - permitir acesso a todos os hosts host all all 0.0.0.0/0 md5

Em postgresql.conf, estes comandos definiram a configuração mínima para que pglogical detecte em todos os endereços:

#GSP918 - added configuration for pglogical database extension wal_level = logical # minimal, replica, or logical max_worker_processes = 10 # one per database needed on provider node # one per node needed on subscriber node max_replication_slots = 10 # one per node needed on provider node max_wal_senders = 10 # one per node needed on provider node shared_preload_libraries = 'pglogical' max_wal_size = 1GB min_wal_size = 80MB listen_addresses = '*' # what IP address(es) to listen on, '*' is all

Os snippets de código acima foram adicionados ao final dos arquivos relevantes e o serviço PostgreSQL foi reiniciado.

  1. Inicie a ferramenta psql:
sudo su - postgres psql
  1. Adicione a extensão de banco de dados pglogical aos bancos de dados postgres, orders e gmemegen_db.
\c postgres; CREATE EXTENSION pglogical; \c orders; CREATE EXTENSION pglogical; \c gmemegen_db; CREATE EXTENSION pglogical;
  1. Liste os bancos de dados PostgreSQL no servidor:
\l

Além dos bancos de dados postgresql padrão, aqui também é possível ver os bancos de dados orders e gmemegen_db fornecidos para este laboratório. O banco de dados gmemegen_db não será utilizado neste laboratório, mas será incluído na migração para uso em um laboratório futuro.

List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -------------+----------+----------+---------+---------+----------------------- gmemegen_db | postgres | UTF8 | C.UTF-8 | C.UTF-8 | orders | postgres | UTF8 | C.UTF-8 | C.UTF-8 | postgres | postgres | UTF8 | C.UTF-8 | C.UTF-8 | template0 | postgres | UTF8 | C.UTF-8 | C.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres template1 | postgres | UTF8 | C.UTF-8 | C.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres (5 rows)

Criar o usuário de migração do banco de dados

Nesta, etapa, você criará um usuário dedicado para gerenciar a migração do banco de dados.

  1. Em psql, digite os comandos abaixo para criar um novo usuário com função de replicação:
CREATE USER migration_admin PASSWORD 'DMS_1s_cool!'; ALTER DATABASE orders OWNER TO migration_admin; ALTER ROLE migration_admin WITH REPLICATION;

Atribuir permissões ao usuário de migração

Nesta etapa, você vai atribuir as permissões necessárias ao usuário migration_admin para permitir que o Database Migration Service migre o banco de dados.

  1. Em psql, atribua permissões para o esquema pglogical e as tabelas para o banco de dados postgres.
\c postgres; GRANT USAGE ON SCHEMA pglogical TO migration_admin; GRANT ALL ON SCHEMA pglogical TO migration_admin; GRANT SELECT ON pglogical.tables TO migration_admin; GRANT SELECT ON pglogical.depend TO migration_admin; GRANT SELECT ON pglogical.local_node TO migration_admin; GRANT SELECT ON pglogical.local_sync_status TO migration_admin; GRANT SELECT ON pglogical.node TO migration_admin; GRANT SELECT ON pglogical.node_interface TO migration_admin; GRANT SELECT ON pglogical.queue TO migration_admin; GRANT SELECT ON pglogical.replication_set TO migration_admin; GRANT SELECT ON pglogical.replication_set_seq TO migration_admin; GRANT SELECT ON pglogical.replication_set_table TO migration_admin; GRANT SELECT ON pglogical.sequence_state TO migration_admin; GRANT SELECT ON pglogical.subscription TO migration_admin;
  1. Em psql, atribua permissões para o esquema e as tabelas pglogical para o banco de dados orders.
\c orders; GRANT USAGE ON SCHEMA pglogical TO migration_admin; GRANT ALL ON SCHEMA pglogical TO migration_admin; GRANT SELECT ON pglogical.tables TO migration_admin; GRANT SELECT ON pglogical.depend TO migration_admin; GRANT SELECT ON pglogical.local_node TO migration_admin; GRANT SELECT ON pglogical.local_sync_status TO migration_admin; GRANT SELECT ON pglogical.node TO migration_admin; GRANT SELECT ON pglogical.node_interface TO migration_admin; GRANT SELECT ON pglogical.queue TO migration_admin; GRANT SELECT ON pglogical.replication_set TO migration_admin; GRANT SELECT ON pglogical.replication_set_seq TO migration_admin; GRANT SELECT ON pglogical.replication_set_table TO migration_admin; GRANT SELECT ON pglogical.sequence_state TO migration_admin; GRANT SELECT ON pglogical.subscription TO migration_admin;
  1. Em psql, atribua permissões para o esquema e as tabelas public para o banco de dados orders.
GRANT USAGE ON SCHEMA public TO migration_admin; GRANT ALL ON SCHEMA public TO migration_admin; GRANT SELECT ON public.distribution_centers TO migration_admin; GRANT SELECT ON public.inventory_items TO migration_admin; GRANT SELECT ON public.order_items TO migration_admin; GRANT SELECT ON public.products TO migration_admin; GRANT SELECT ON public.users TO migration_admin;
  1. Em psql, atribua permissões para o esquema e as tabelas pglogical para o banco de dados gmemegen_db.
\c gmemegen_db; GRANT USAGE ON SCHEMA pglogical TO migration_admin; GRANT ALL ON SCHEMA pglogical TO migration_admin; GRANT SELECT ON pglogical.tables TO migration_admin; GRANT SELECT ON pglogical.depend TO migration_admin; GRANT SELECT ON pglogical.local_node TO migration_admin; GRANT SELECT ON pglogical.local_sync_status TO migration_admin; GRANT SELECT ON pglogical.node TO migration_admin; GRANT SELECT ON pglogical.node_interface TO migration_admin; GRANT SELECT ON pglogical.queue TO migration_admin; GRANT SELECT ON pglogical.replication_set TO migration_admin; GRANT SELECT ON pglogical.replication_set_seq TO migration_admin; GRANT SELECT ON pglogical.replication_set_table TO migration_admin; GRANT SELECT ON pglogical.sequence_state TO migration_admin; GRANT SELECT ON pglogical.subscription TO migration_admin;
  1. Em psql, atribua permissões para o esquema e as tabelas public para o banco de dados gmemegen_db.
GRANT USAGE ON SCHEMA public TO migration_admin; GRANT ALL ON SCHEMA public TO migration_admin; GRANT SELECT ON public.meme TO migration_admin;

Os bancos de dados de origem estão prontos para a migração. As permissões que você atribuiu ao usuário migration_admin são tudo que é necessário para que o Database Migration Service migre os bancos de dados postgres, orders e gmemegen_db.

Torne o usuário migration_admin o proprietário das tabelas no banco de dados orders, assim você poderá editar os dados de origem mais tarde, quando testar a migração.

  1. Em psql, execute os comandos abaixo:
\c orders; \dt ALTER TABLE public.distribution_centers OWNER TO migration_admin; ALTER TABLE public.inventory_items OWNER TO migration_admin; ALTER TABLE public.order_items OWNER TO migration_admin; ALTER TABLE public.products OWNER TO migration_admin; ALTER TABLE public.users OWNER TO migration_admin; \dt List of relations Schema | Name | Type | Owner --------+----------------------+-------+------- public | distribution_centers | table | migration_admin public | inventory_items | table | migration_admin public | order_items | table | migration_admin public | products | table | migration_admin public | users | table | migration_admin (5 rows)
  1. Saia de psql e da sessão do usuário postgres
\q exit

Clique em Verificar meu progresso para conferir o objetivo. Prepare a instância de origem do PostgreSQL para migração.

Tarefa 2. Criar um perfil de conexão no Database Migration Service para um banco de dados independente PostgreSQL

Nesta tarefa, você criará um perfil de conexão para a instância de origem do PostgreSQL.

Obter as informações de conectividade para a instância de origem do PostgreSQL

Nesta etapa, você vai identificar o endereço IP interno da instância do banco de dados de origem que será migrado para o Cloud SQL.

  1. No console do Google Cloud, no Menu de navegação (Ícone do menu de navegação), clique em Compute Engine > Instâncias de VM.

  2. Encontre a linha com a instância postgresql-vm.

  3. Copie o valor de IP interno (por exemplo, 10.128.0.2).

Criar um novo perfil de conexão para a instância de origem do PostgreSQL

Um perfil de conexão guarda informações sobre a instância do banco de dados de origem (por exemplo, PostgreSQL independente) e é usado pelo Database Migration Service para migrar dados da origem para a instância do banco de dados de destino do Cloud SQL. Uma vez que o perfil de conexão é criado, ele pode ser reutilizado em todos os jobs de migração.

Nesta etapa, você criará um novo perfil de conexão para a instância de origem do PostgreSQL.

  1. No console do Google Cloud, no Menu de navegação (Ícone do menu de navegação), clique em Migração de banco de dados > Perfis de conexão.

  2. Clique em + Criar perfil.

  3. Em Mecanismo de banco de dados, selecione PostgreSQL.

  4. Em Nome do perfil de conexão, digite postgres-vm.

  5. Em Nome do host ou endereço IP, digite o IP interno para a instância de origem do PostgreSQL que você copiou na tarefa anterior (por exemplo, 10.128.0.2)

  6. Em Porta, digite 5432.

  7. Em Nome de usuário, digite migration_admin.

  8. Em Senha, digite DMS_1s_cool! .

  9. Em Região, selecione .

  10. Mantenha os valores padrão dos outros campos.

  11. Clique em Criar.

Um novo perfil de conexão chamado postgres-vm vai aparecer na lista de perfis de Conexão.

Clique em Verificar meu progresso para conferir o objetivo. Criar um perfil de conexão para a instância de origem do PostgreSQL.

Tarefa 3. Criar e iniciar um job contínuo de migração

Ao criar um novo job de migração, primeiro é necessário definir a instância do banco de dados de origem usando um perfil de conexão criado anteriormente. Depois disso, crie uma nova instância de banco de dados de destino e configure a conectividade entre as instâncias de origem e de destino.

Nesta tarefa, você usará a interface do job de migração para criar uma nova instância de banco de dados do Cloud SQL para PostgreSQL e a definirá como o destino para o job contínuo de migração da instância de origem do PostgreSQL.

Criar um novo job contínuo de migração

Nesta etapa, você vai criar um novo job contínuo de migração.

  1. No console do Google Cloud, no Menu de navegação (Ícone do menu de navegação), clique em Migração de banco de dados > Jobs de migração.

  2. Clique em + Criar job de migração.

  3. Em Nome do job de migração, digite vm-to-cloudsql.

  4. Em Mecanismo de banco de dados de origem, selecione PostgreSQL.

  5. Em Região de destino, selecione .

  6. Em Mecanismo de banco de dados de destino, selecione Cloud SQL para PostgreSQL.

  7. Em Tipo de job de migração, selecione Contínuo.

Mantenha os valores padrão das outras configurações.

  1. Clique em Salvar e continuar.

Definir a instância de origem

Nesta etapa, você vai definir a instância de origem para a migração.

  1. Em Perfil de conexão de origem, selecione postgres-vm.

Mantenha os valores padrão das outras configurações.

  1. Clique em Salvar e continuar.

Após selecionar o perfil de conexão de origem, é possível ver seus detalhes de configuração, incluindo o tipo de criptografia, nome de usuário, porta, endereço IP ou nome do host de origem.

Criar a instância de destino

Nesta etapa, você vai criar a instância de destino para a migração.

  1. Em ID da instância de destino, digite postgresql-cloudsql.

  2. Em Senha, digite supersecret!.

  3. Em Escolher uma edição do Cloud SQL, selecione a edição Empresarial.

  4. Em Versão do banco de dados, selecione Cloud SQL para PostgreSQL 13.

  5. Na sessão Escolher região e zona, selecione Zona única e selecione como zona primária.

  6. Em Conectividade da instância, selecione IP particular e IP público.

  7. Selecione Use um intervalo de IP alocado automaticamente.

Mantenha os valores padrão das outras configurações.

  1. Clique em Alocar e conectar.

Mantenha a opção padrão selecionada para usar um intervalo de IP alocado automaticamente.

Observação: isso pode levar alguns minutos. Se uma nova tentativa for solicitada, clique no botão Tentar de novo para atualizar a API Service Networking.

Quando essa etapa for concluída, uma mensagem atualizada vai notificar que a instância usará a conexão de serviço gerenciado atual.

Será necessário editar o arquivo pg_hba.conf na instância da VM para permitir o acesso ao intervalo de IP gerado automaticamente no ponto 5 da etapa anterior. Você fará isso em uma etapa posterior antes de testar a configuração da migração ao final desta tarefa.

A mensagem atualizada diz que a instância usará a conexão de serviço gerenciado que já existe.

Insira as informações adicionais necessárias para criar a instância de destino no Cloud SQL.

  1. Em Tipos de máquina, selecione 1 vCPU, 3,75 GB

  2. Em Tipo de armazenamento, selecione SSD

  3. Em Capacidade de armazenamento, selecione 10 GB

  4. Clique em Criar e continuar.

Se precisar confirmar, clique em Criar destino e continuar. Uma mensagem vai informar que a instância do banco de dados de destino está sendo criada. Continue para a próxima etapa enquanto espera.

Definir método de conectividade

Nesta etapa, você vai definir o método de conectividade para a migração.

A mensagem informa que o botão de configurar e continuar será ativado quando a instância de destino do Cloud SQL for criada.

  1. Em Método de conectividade, selecione Peering de VPC.

  2. Em VPC, selecione padrão.

O peering de VPC é configurado pelo Database Migration Service usando as informações fornecidas para a rede VPC (a rede padrão neste exemplo).

Ao ver uma mensagem atualizada dizendo que a instância de destino foi criada, prossiga para a próxima etapa.

A mensagem atualizada informa que a instância de destino do Cloud SQL foi criada.

  1. Clique em Configurar e continuar.

Permitir o acesso à instância postgresql-vm de um intervalo de IP alocado automaticamente

Nesta etapa, você vai editar o arquivo de configuração do PostgreSQL pg_hba.conf para permitir que o Database Migration Service acesse o banco de dados independente do PostgreSQL.

  1. Obter intervalo de endereços IP alocado. No console do Google Cloud, no Menu de navegação (Ícone do menu de navegação), clique com o botão direito do mouse em Rede VPC > Peering de rede VPC e abra em uma nova aba.

  2. Clique na entrada servicenetworking-googleapis-com.

  3. Na guia Rotas importadas, selecione e copie o Intervalo de IPs de destino (por exemplo, 10.107.176.0/24).

  4. Na sessão do terminal na instância da VM, edite o arquivo pg_hba.conf desta forma:

sudo nano /etc/postgresql/13/main/pg_hba.conf
  1. Na última linha do arquivo:
#GSP918 - allow access to all hosts host all all 0.0.0.0/0 md5

substitua o intervalo "todos os endereços IP" (0.0.0.0/0) pelo intervalo copiado no ponto 3 acima.

#GSP918 - allow access to all hosts host all all 10.107.176.0/24 md5 Observação: a etapa acima não é obrigatória para que a migração funcione, mas é recomendável para que o banco de dados de origem esteja mais seguro durante o processo de migração. Isso também restringe o acesso após a migração, quando o banco de dados migrado se torna a fonte de verdade.
  1. Salve e saia do editor nano com Ctrl-O, Enter, Ctrl-X

  2. Reinicie o serviço PostgreSQL para que as mudanças entrem em vigor. Na sessão do Terminal da instância da VM:

sudo systemctl start postgresql@13-main

Testar e iniciar o job contínuo de migração

Nesta etapa, você vai testar e iniciar o job de migração.

  1. Na guia Database Migration Service aberta anteriormente, confira os detalhes do job de migração.

  2. Clique em Job de teste.

  3. Após um teste bem-sucedido, clique em Criar e iniciar job.

Certifique-se de clicar no botão de criar e iniciar job para garantir que o job seja iniciado com sucesso.

Se precisar confirmar, clique em Criar e iniciar.

Revisar o status do job contínuo de migração

Nesta etapa, você vai confirmar se o job contínuo de migração está sendo executado.

  1. No console do Google Cloud, no Menu de navegação (Ícone do menu de navegação), clique em Migração de banco de dados > Jobs de migração.

  2. Clique no job de migração vm-to-cloudsql para ver a página de detalhes.

  3. Revise o status do job de migração.

    • Se job não tiver sido iniciado, o status será Não iniciado. Você poderá escolher iniciar ou excluir o job.
    • Após o início do job, o status será Iniciando e depois, Em execução Despejo completo em andamento para indicar que o despejo inicial do banco de dados está em andamento.
    • Quando o despejo inicial do banco de dados for concluído, o status será Em execução CDC em andamento para indicar que a migração contínua está ativa.

Quando o status do job mudar para Em execução CDC em andamento, prossiga para a próxima tarefa.

O job de migração vm-to-cloudsql tem um status de CDC em andamento.

Clique em Verificar meu progresso para conferir o objetivo. Criar, iniciar e revisar um job contínuo de migração.

Tarefa 4. Confirmar dados no Cloud SQL para PostgreSQL

Verificar os bancos de dados PostgreSQL no Cloud SQL

  1. No console do Google Cloud, no Menu de navegação (Ícone do menu de navegação), clique em Bancos de dados > SQL.

  2. Expanda o ID de instância chamado postgresql-cloudsql-master.

  3. Clique na instância postgresql-cloudsql (réplica de leitura do PostgreSQL).

  4. No menu Instância réplica, clique em Bancos de dados.

Observe que os bancos de dados chamados postgres, orders e gmemegen_db foram migrados para o Cloud SQL.

Bancos de dados migrados no Cloud SQL.

Conectar à instância do PostgreSQL

  1. No menu Instância réplica, clique em Visão geral.

  2. Role para baixo até a sessão Conectar a esta instância e clique em Abrir Cloud Shell.

O comando para conectar ao PostgreSQL vai pré-preencher no Cloud Shell:

gcloud sql connect postgresql-cloudsql --user=postgres --quiet
  1. Execute o comando pré-preenchido.

Se precisar, clique em Autorizar para a API.

  1. Se precisar inserir uma senha, que você já definiu, digite:
supersecret!

Você acaba de ativar o console interativo do PostgreSQL para a instância de destino.

Revisar os dados na instância do Cloud SQL para PostgreSQL

  1. Para selecionar os dados no console interativo do PostgreSQL, execute o seguinte comando:
\c orders;
  1. Quando uma senha for solicitada, insira:
supersecret!
  1. Consulte a tabela distribution_centers:
select * from distribution_centers;

(Saída)

longitude | latitude | name | id -----------+----------+---------------------------------------------+---- -89.9711 | 35.1174 | Memphis TN | 1 -87.6847 | 41.8369 | Chicago IL | 2 -95.3698 | 29.7604 | Houston TX | 3 -118.25 | 34.05 | Los Angeles CA | 4 -90.0667 | 29.95 | New Orleans LA | 5 -73.7834 | 40.634 | Port Authority of New York/New Jersey NY/NJ | 6 -75.1667 | 39.95 | Philadelphia PA | 7 -88.0431 | 30.6944 | Mobile AL | 8 -79.9333 | 32.7833 | Charleston SC | 9 -81.1167 | 32.0167 | Savannah GA | 10
  1. Para sair do console interativo do PostgreSQL, digite:
\q

Atualizar os dados independentes de origem para testar a migração contínua

  1. No Cloud Shell, digite os comandos abaixo para se conectar à instância de origem do PostgreSQL:
export VM_NAME=postgresql-vm export PROJECT_ID=$(gcloud config list --format 'value(core.project)') export POSTGRESQL_IP=$(gcloud compute instances describe ${VM_NAME} \ --zone={{{ project_0.default_zone|(zone) }}} --format="value(networkInterfaces[0].accessConfigs[0].natIP)") echo $POSTGRESQL_IP psql -h $POSTGRESQL_IP -p 5432 -d orders -U migration_admin Observação: a abordagem acima é uma alternativa para acessar o banco de dados independente na instância da VM.
  1. Quando uma senha for solicitada, insira:
DMS_1s_cool!
  1. Em psql, digite os comandos abaixo:
\c orders; insert into distribution_centers values(-80.1918,25.7617,'Miami FL',11);
  1. Feche a sessão interativa de psql:
\q

Conectar-se ao banco de dados Cloud SQL PostgreSQL para verificar se os dados atualizados foram migrados

  1. No Cloud Shell, digite os comandos abaixo para se conectar à instância do Cloud SQL PostgreSQL:
gcloud sql connect postgresql-cloudsql --user=postgres --quiet
  1. Se precisar inserir uma senha, que você já definiu, digite a senha para a instância do Cloud SQL:
supersecret!

Você acaba de ativar o console interativo do PostgreSQL para a instância de destino.

Revisar os dados no banco de dados do Cloud SQL para PostgreSQL

  1. No Cloud Shell, selecione o banco de dados ativo no console interativo do PostgreSQL:
\c orders;
  1. Se precisar inserir uma senha, que você já definiu, digite:
supersecret!
  1. Consulte a tabela distribution_centers:
select * from distribution_centers;

(Saída)

longitude | latitude | name | id -----------+----------+---------------------------------------------+---- -89.9711 | 35.1174 | Memphis TN | 1 -87.6847 | 41.8369 | Chicago IL | 2 -95.3698 | 29.7604 | Houston TX | 3 -118.25 | 34.05 | Los Angeles CA | 4 -90.0667 | 29.95 | New Orleans LA | 5 -73.7834 | 40.634 | Port Authority of New York/New Jersey NY/NJ | 6 -75.1667 | 39.95 | Philadelphia PA | 7 -88.0431 | 30.6944 | Mobile AL | 8 -79.9333 | 32.7833 | Charleston SC | 9 -81.1167 | 32.0167 | Savannah GA | 10 -80.1918 | 25.7617 | Miami FL | 11

Observe que a nova linha adicionada no banco de dados independente orders agora está presente no banco de dados migrado.

  1. Saia do console interativo do PostgreSQL:
\q

Clique em Verificar meu progresso para conferir o objetivo. Testar a migração contínua de dados da origem para o destino.

Tarefa 5. Promover o Cloud SQL a uma instância independente para ler e gravar dados

  1. No console do Google Cloud, no Menu de navegação (Ícone do menu de navegação), clique em Migração de banco de dados > Jobs de migração.

  2. Clique no nome do job de migração vm-to-cloudsql para ver a página de detalhes.

  3. Clique em Promover.

Se precisar confirmar, clique em Promover.

Quando a promoção for concluída, o status do job será atualizado para Concluído.

O status do job de migração vm-to-cloudsql é Concluído.

  1. No console do Google Cloud, no Menu de navegação (Ícone do menu de navegação), clique em Bancos de dados > SQL.

Observe que postgresql-cloudsql agora é uma instância independente para ler e gravar dados.

A instância postgresql-cloudsql está rotulada como instância primária.

Clique em Verificar meu progresso para conferir o objetivo. Promover o banco de dados do Cloud SQL para PostgreSQL a uma instância independente para ler e gravar dados.

Parabéns!

Você aprendeu a configurar um job contínuo do Database Migration Service para migrar bancos de dados de uma instância do PostgreSQL para o Cloud SQL para PostgreSQL.

Treinamento e certificação do Google Cloud

Esses treinamentos ajudam você a aproveitar as tecnologias do Google Cloud ao máximo. Nossas aulas incluem habilidades técnicas e práticas recomendadas para ajudar você a alcançar rapidamente o nível esperado e continuar sua jornada de aprendizado. Oferecemos treinamentos que vão do nível básico ao avançado, com opções de aulas virtuais, sob demanda e por meio de transmissões ao vivo para que você possa encaixá-las na correria do seu dia a dia. As certificações validam sua experiência e comprovam suas habilidades com as tecnologias do Google Cloud.

Manual atualizado em 14 de maio de 2024

Laboratório testado em 14 de maio de 2024

Copyright 2024 Google LLC. Todos os direitos reservados. Google e o logotipo do Google são marcas registradas da Google LLC. Todos os outros nomes de produtos e empresas podem ser marcas registradas das respectivas empresas a que estão associados.

Este conteúdo não está disponível no momento

Você vai receber uma notificação por e-mail quando ele estiver disponível

Ótimo!

Vamos entrar em contato por e-mail se ele ficar disponível