Observação:

Migre o Google Cloud Platform CloudSQL de MySQL para o Oracle Cloud Infrastructure MySQL Heatwave usando Replicação

Introdução

Este tutorial explica como executar a migração dinâmica do seu Google Cloud Platform CloudSQL para MySQL para o Oracle Cloud Infrastructure (OCI) MySQL Heatwave Database Service. Com a ajuda deste artigo, poderemos entender como podemos usar a Replicação MySQL entre dois provedores de nuvem diferentes e isso funcionará como seu documento para uma migração bem-sucedida para o OCI Heatwave. Neste tutorial, faremos uso dos seguintes produtos:-

  1. GCP CloudSQL para MySQL
  2. MySQL Heatwave for Online Transaction Processing (OLTP)
  3. OCI Object Storage
  4. Computação do OCI como Bastion
  5. MySQL Shell

Objetivos

Conecte o Google Cloud Platform CloudSQL para MySQL ao MySQL Heatwave Database Service e inicie a replicação de entrada ao Sistema de BD do OCI. Abordaremos a visão geral de alto nível da conectividade entre o Google Cloud Platform e o MySQL, mas possibilidades de rede detalhadas entre o Google Cloud Platform CloudSQL e o MySQL Heatwave podem ser referenciadas na documentação oficial.

Arquitetura

Veja a seguir um exemplo de arquitetura de alto nível da solução.

Imagem principal

A linha pontilhada representa o fluxo dos dados, ou seja, do Cloud SQL do GCP para MySQL para o armazenamento de Objetos para o conjunto de dados inicial. Quando os dados estiverem disponíveis no armazenamento de objetos, usaremos ainda mais os canais de replicação oferecidos com o Sistema de BD do OCI MySQL Heatwave.

Pré-requisitos

Como parte deste tutorial, usaremos a Replicação de Entrada. Com a ajuda da Replicação de Entrada, usamos o canal de replicação configurado no MySQL Heatwave Database Service e com isso podemos enviar transações de um local para outro. Nossas fontes podem ser diferentes, por exemplo, no local, Amazon Web Services (AWS), Microsoft Azure, Google Cloud Platform, etc. Neste tutorial, estamos focando no Google Cloud Platform Cloud SQL para MySQL e nosso destino é MySQL Heatwave Database Service.

Você pode ler mais sobre a visão geral da Replicação de Entrada MySQL aqui. Mantenha este tutorial acessível, pois ele também fornece uma descrição detalhada da configuração de origem, criação de usuário de replicação, criação de um canal de replicação e suas limitações.

Estamos dividindo todo o processo de migração nas seguintes etapas de alto nível.

  1. Acesso ao Cloud SQL do Google Cloud Platform existente para MySQL
  2. Preparação do Cloud SQL do Google Cloud Platform para MySQL
  3. Bastion no OCI com Shell MySQL
  4. Consideração de Rede entre o Google Cloud Platform Cloud SQL para MySQL e o OCI Heatwave DB System
  5. Configuração do Bucket do Object Storage no OCI
  6. Exportando dados para o OCI Object Storage
  7. Criação do novo sistema de BD no OCI
  8. Criando o Canal de Replicação no OCI

Tarefa 1: Acessar o SQL do Google Cloud Platform Existente para MySQL

Estamos usando o banco de dados de amostra hospedado no Cloud SQL do Google Cloud Platform para MySQL com nosso propósito de migração. A Instância MySQL existente é hospedada na sub-rede pública que o Google Cloud Platform permite; portanto, estamos usando essa instância como nosso banco de dados de origem. Vamos supor que o Google Cloud Platform CloudSQL para MySQL esteja executando a edição empresarial com o MySQL Versão 8.0.

Imagem 1

Imagem 2

Assim que soubermos o IP público, poderemos colocar na lista branca nosso endereço IP e estabelecer conexão facilmente com o cliente MySQL. Você também pode usar o shell MySQL ou o utilitário gcloud para estabelecer conexão com o banco de dados. Podemos fazer a lista branca do nosso ip público adicionando na seção de rede do Google Cloud Platform Cloud SQL para MySQL e clique em Salvar alterações.

Imagem 3

Observação: Há outros IPs que também são adicionados aqui, falaremos sobre eles nas seções posteriores.

Assim que conseguirmos estabelecer conexão, poderemos consultar os bancos de dados existentes na instância do Google Cloud Platform CloudSQL for MySQL. Para nosso propósito de migração, vamos nos concentrar apenas na amostra de banco de dados Sakila.

Imagem 4

Tarefa 2: Preparar o Google Cloud Platform Cloud SQL para MySQL

À medida que estamos usando a replicação de entrada, precisamos executar duas etapas no servidor de origem. Precisamos criar um usuário que será usado para replicação e também precisamos garantir que tenhamos GTID ativado em nosso servidor de origem. Com GTIDs (Global Transaction Identifier), cada transação pode ser identificada e rastreada conforme é submetido a commit no servidor de origem. A mesma transação é aplicada à réplica de destino.

  1. Crie o usuário de Replicação e designe atribuições usando os comandos a seguir.

    mysql> create user repl@'%' IDENTIFIED BY 'yourreplpassword' REQUIRE SSL;
    mysql> grant replication slave on *.* to repl@'%';
    mysql> select user from mysql.user;;
    
  2. Verifique se os GTIDs estão ativados. Por padrão, os GTIDs estão ativados, mas, caso contrário, você poderá ativá-los.

    mysql>show global variables like 'gtid%';

    Imagem 5

Tarefa 3: Implantar Bastion no OCI com o Shell MySQL

Com o Oracle Cloud Infrastructure, os pontos finais do sistema de banco de dados MySQL não podem ser acessados diretamente pela internet. Ele se deve à segurança aprimorada e é implantado com a ajuda do ponto final privado na VCN configurada. Como resultado, precisamos conectar o OCI MySQL Heatwave Database Service usando uma instância de computação, VPN, Bastion ou balanceador de carga de rede para acessar o ponto final privado.

Você pode escolher qualquer uma das opções mencionadas acima. No nosso caso, usaremos a instância de computação que agirá como Bastion para nosso Serviço de Banco de Dados Heatwave MySQL. Como usar o restante das opções, veja aqui.

Como estamos usando a instância de computação, precisamos implantar a computação na sub-rede pública da nossa VCN cuja sub-rede privada hospedará o MySQL Heatwave Database Service. Ao configurar a instância de computação, você não precisa se preocupar com a configuração do recurso para a computação, pois ela só será usada para instalar o shell MySQL ou o cliente MySQL e para estabelecer conexão com o Google Cloud Platform Cloud SQL para MySQL.

Como criar uma instância de computação, pode ser encontrada aqui.

Como você pode ver na imagem abaixo, criamos a instância de computação na sub-rede pública da VCN na qual o MySQL Heatwave Database Service será hospedado. Esse servidor Bastion funcionará como intermediário entre o OCI e o Google Cloud Platform, onde podemos acessar as instâncias MySQL. Para estabelecer conexão com a instância do banco de dados MySQL, podemos usar o shell MySQL ou o cliente MySQL.

Imagem 6

Vamos instalar o shell Mysql executando o comando a seguir.

`sudo yum install mysql-shell`

Você também pode consultar a documentação para mais informações.

Tarefa 4: Verificar Considerações de Rede entre o Cloud SQL para MySQL e o OCI MySQL Heatwave Database Service

Uma coisa importante aqui é garantir que a comunicação seja estabelecida com sucesso entre o servidor de origem e o servidor de destino.

Na console do Google Cloud Platform, precisamos garantir que o IP público da nossa instância Bastion também esteja na lista branca. Isso pode ser feito usando o mesmo processo que seguimos acima para conectar o banco de dados ao nosso Cliente MySQL.

Na console do OCI, é necessário estabelecer comunicação entre a instância de computação Bastion, que é hospedada na sub-rede pública do MySQLVCN e do MySQL Heatwave Database Service hospedado na sub-rede privada na mesma VCN. Temos que permitir o tráfego e podemos abrir regras de entrada com a sub-rede Privada e permitir conexões.

Tarefa 5: Configurar o Bucket de Armazenamento de Objetos no OCI

Precisamos configurar o armazenamento de objetos no OCI para armazenar o dump inicial de dados do Google Cloud Platform CloudSQL para MySQL. Esta será uma atividade única e esses dados serão usados para criar o banco de dados no MySQL Heatwave Database Service.

Para obter informações sobre a criação do bucket no OCI, consulte Criando um Bucket.

Imagem 7

Depois que o bucket acima tiver sido criado, precisaremos estabelecer um link entre o bucket de armazenamento de objetos e a instância Bastion. Para essa finalidade, usaremos o arquivo de configuração do oci que será usado pelo Shell MySQL.

Observação: O parâmetro key_file deve ser atualizado com o local da sua chave privada gerada na console do OCI durante a criação da chave de API.

Tarefa 6: Exportar dados para o OCI Object Storage

Usaremos o utilitário MySQL Shell no servidor Bastion para exportar dados do SQL da nuvem do Google Cloud Platform para MySQL. O utilitário de shell MySQL é uma ferramenta muito poderosa que ajuda a exportar instância inteira de uma só vez e fornecer várias opções.

Para este exercício, exportaremos o esquema do Google Cloud Platform CloudSQL para banco de dados Mysql para nosso armazenamento de objetos OCI.

Vamos primeiro estabelecer conexão com a instância MySQL em nossa computação Bastion.

Imagem 12

util.dumpSchemas(["sakila"], "", { osBucketName: "MysqlBucket", osNamespace: "orasenatdpltintegration01", ocimds: true, ociParManifest: true, threads: 8, compatibility: ["force_innodb", "skip_invalid_accounts", "strip_definers", "strip_restricted_grants",  "strip_tablespaces"], dryRun: "true"})

O restante das opções pode ser usado com base em seus requisitos e mais informações podem ser encontradas aqui.

Imagem 13

Uma vez concluída a operação seca, examine a saída e resolva os problemas. Se não tivermos problemas de compatibilidade, execute sem dryRun, conforme abaixo:-

Imagem 14

Ele fornece informações detalhadas sobre a atividade de exportação e também a duração. Como é um banco de dados de amostra, com cerca de 45k registros, ele terminou rapidamente.

Assim que o processo for bem-sucedido, seus dados ficarão presentes no bucket que faz parte do armazenamento de objetos.

Imagem 15

Tarefa 7: Criar um novo sistema de banco de dados no OCI

Para obter mais detalhes sobre como configurar o sistema de banco de dados MySQL, consulte Criando um Sistema de Banco de Dados.

A única coisa que precisamos ter em mente é que já temos dados no armazenamento de objetos. Portanto, vamos usá-los para configurar o sistema de BD. Você também pode carregar os dados posteriormente, mas essa opção economiza muito tempo. Para usar essa opção, precisamos criar uma solicitação PAR.

Imagem 16

Imagem 17

Certifique-se de ter salvo o URL gerado aqui, pois ele será usado conforme abaixo.

Imagem 18

Depois que você especificar seu URL de PAR, o sistema de BD MySQL será criado automaticamente com o banco de dados Sakila.

Para validar, execute o comando a seguir.

Imagem 19

Com isso, agora temos um banco de dados de origem no sistema de BD de destino. Agora, criaremos a replicação entre a origem e o destino.

Tarefa 8: Criar um Canal de Replicação no OCI

Os canais de replicação são usados para conectar seu sistema de banco de dados de origem ao sistema de banco de dados de destino. Todas as transações são copiadas com a ajuda desses canais. A criação desses canais é bastante fácil, pois precisamos apenas fornecer alguns detalhes sobre nossa fonte e nosso alvo. É sempre recomendável usar a conexão criptografada e é por isso que, quando criamos o usuário, especificamos a palavra-chave SSL nas etapas anteriores.

Como a origem da replicação pode ser diferente, também permitimos filtros de canal que variam de acordo com diferentes provedores de nuvem pública. Veja mais informações aqui.

A imagem abaixo mostra diferentes opções que estão presentes quando você cria o canal de Replicação no OCI. Precisamos fornecer o nome do host de origem ou o endereço IP público juntamente com o no da porta. Vamos nos autenticar com a ajuda do usuário Repl que criamos anteriormente.

Imagem 20

Imagem 21

Também especificamos o sistema de bd de destino que criamos para nossa replicação e, com filtros de replicação, fornecemos uma opção em que você escolhe seus filtros de replicação no menu drop-down conforme aplicável.

Se não houver mais carga no sistema de origem após nossa exportação, o canal de replicação deverá ser ativado e concluído. No entanto, há chances de que a carga seja inconsistente devido à incompatibilidade de GTID e as ações necessárias devem ser tomadas. Há diferentes estágios do canal de replicação; seus detalhes são mencionados aqui.

Para obter detalhes sobre as mensagens de erro mais comuns que podemos encontrar durante a configuração de replicação de entrada, consulte o guia de solução de problemas.

Insira dados fictícios na origem do Google Cloud Platform, conforme mostrado na imagem a seguir.

Imagem 21

Consulte o banco de dados de amostra no MySQL Heatwave Database Service.

Imagem 22

No console, podemos ver que não há atraso entre a origem e o destino, e as transações estão sendo copiadas e submetidas a commit. Portanto, podemos usar canais de replicação para fins de recuperação de desastres e migração. Com base no planejamento adequado e no tempo de indisponibilidade do aplicativo, podemos executar a atividade de transição e usar o serviço MySQL Heatwave Database, que é sua solução definitiva para transações OLTP e cargas de trabalho analíticas.

Próximas Etapas

Neste tutorial, vimos o OCI MySQL Heatwave Database Service fornecer um mecanismo bastante fácil de usar a replicação de entrada. Ele suporta várias origens e até fornece filtros de canal de replicação em relação a essas origens. A Replicação de Entrada pode ser usada para trazer seu conjunto de dados para o Oracle Cloud e usar sua oferta de calor. Além disso, o MySQL Heatwave Lakehouse também foi introduzido, onde você pode trazer um grande volume de dados em terabytes em vários formatos. Você pode encontrar mais informações sobre o MySQL Heatwave Database Service e como ele maximiza o desempenho da consulta fornecendo o Acelerador de Consulta na Memória.

Aquisições

Mais Recursos de Aprendizagem

Explore outros laboratórios no site docs.oracle.com/learn ou acesse mais conteúdo de aprendizado gratuito no canal YouTube do Oracle Learning. Além disso, visite education.oracle.com/learning-explorer para se tornar um Oracle Learning Explorer.

Para obter a documentação do produto, visite o Oracle Help Center.