Como configurar instâncias mestre externas para a primeira geração

Nesta página, descrevemos como configurar a replicação de uma instância mestre externa em réplicas de primeira geração.

As instâncias mestre externas são instâncias MySQL externas ao Cloud SQL que funcionam como mestres para uma instância de primeira geração. Servidores MySQL em execução no Compute Engine são considerados externos ao Cloud SQL.

Sobre a configuração de instâncias mestre externas

Ao configurar uma instância mestre externa do Cloud SQL, você pode criar uma instância de Primeira geração do Cloud SQL replicada a partir de um mestre externo ao Cloud SQL. A réplica do Cloud SQL não fica acessível para aplicativos, mas pode ser promovida para se tornar uma instância autônoma da Primeira geração ou pode servir como uma cópia atualizada dos dados na instância mestre.

Essa configuração exige uma instância do Cloud SQL chamada "instância mestre interna", mostrada no Cloud SQL como a mestre das réplicas do Cloud SQL. A instância mestre interna e a externa constituem a instância mestre da réplica do Cloud SQL.

Diagrama de configuração da instância mestre externa

Os dados só são replicados diretamente da mestre externa para as réplicas do Cloud SQL. A instância mestre interna não está envolvida na replicação de dados. Apesar de a instância mestre interna parecer uma instância padrão do Cloud SQL, você não é cobrado por ela. Não é possível administrar a instância mestre interna diretamente.

Antes de começar

  • É necessário ter uma instância externa que atenda aos requisitos de uma instância desse tipo.
  • É necessário ter o endereço IP externo e a porta da instância mestre externa, além das informações de nome de usuário e senha relacionadas ao usuário da replicação nessa instância.
  • Ativar Administrador do Cloud SQL API.

    Ativar a API

Requisitos de configuração da instância mestre externa

  • A instância mestre interna e as réplicas do Cloud SQL precisam ser instâncias de primeira geração.
  • A instância mestre externa e as réplicas do Cloud SQL precisam usar a mesma versão do MySQL (5.5 ou 5.6).
  • A geração de registros binários precisa ser ativada na instância mestre externa. Saiba mais.
  • A opção server-id deve precisa definida como um valor de 2 ou mais. Saiba mais.
  • Caso esteja em uma instância do Compute Engine, a instância mestre externa precisa ter um endereço IP público atribuído.
  • É preciso que a instância mestre externa seja acessível a endereços IP públicos.
  • O arquivo de despejo criado da instância mestre, que será usado para fornecer uma imagem inicial para a mestre interna, precisa estar de acordo com os requisitos para arquivos de despejo do Cloud SQL. Saiba mais.
  • Você precisa configurar uma conta de usuário de replicação na instância mestre externa com o privilégio REPLICATION SLAVE.

Preparação dos dados

Para preparar os dados a serem usados em uma configuração da instância mestre externa, crie um arquivo mysqldump contendo os dados da instância mestre e faça upload do arquivo de despejo para o Cloud Storage.

  1. Crie um intervalo do Cloud Storage.

    Você usará o intervalo para deter o arquivo de despejo a ser importado para a réplica. Para saber mais informações, consulte Criar intervalos de armazenamento.

  2. Crie um arquivo mysqldump por meio da instância mestre, seguindo as instruções de replicação externa em Criar um arquivo de despejo SQL.

  3. Faça upload do arquivo para o intervalo do Cloud Storage.

    Para mais informações, consulte Como fazer upload de dados para um intervalo.

Como criar a configuração da instância mestre externa

  1. Crie a instância mestre interna usando a região em que você quer que as réplicas residam, além do endereço IP externo e da porta da instância externa:

    ACCESS_TOKEN="$(gcloud auth application-default print-access-token)"
    curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
     --header 'Content-Type: application/json' \
     --data '{"name": "[INTERNAL_MASTER_INSTANCE_NAME]",
              "region": "[REGION_NAME]",
              "databaseVersion": "[EXTERNAL_MASTER_DATABASE_VERSION]",
              "onPremisesConfiguration": {"hostPort": "[IP_ADDRESS:PORT]"}}' \
     -X POST \
     https://www.googleapis.com/sql/v1beta4/projects/[PROJECT-ID]/instances
    

    A instância mestre interna é criada, com o endereço IP e a porta da externa sendo mostrada como o respectivo endereço IP.

  2. Depois que a instância mestre interna concluir a inicialização, crie uma réplica, fornecendo as informações da conta de usuário da replicação da instância mestre externa, além do local dos dados preparados anteriormente:

    curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
     --header 'Content-Type: application/json' \
     --data '{"replicaConfiguration":
               {"mysqlReplicaConfiguration":
                 {"username": "[REPLICATION_USER]",
                  "password": "[REPLICATION_USER_PASSWORD]",
                  "dumpFilePath": "[BUCKET_LOCATION]",
                  "caCertificate": "[SOURCE_SERVER_CA]",
                  "clientCertificate": "[CLIENT_CERT]",
                  "clientKey": "[PRIVATE_KEY]"}},
              "settings": {"tier": "[TIER]","activationPolicy": "ALWAYS"},
              "databaseVersion": "[EXTERNAL_MASTER_DATABASE_VERSION]",
              "masterInstanceName": "[INTERNAL_MASTER_INSTANCE_NAME]",
              "name": "[REPLICA_NAME]", "region": "[REGION_NAME]"}' \
     -X POST \
     https://www.googleapis.com/sql/v1beta4/projects/[PROJECT-ID]/instances
    

    No corpo da solicitação, os campos dumpFile, username e password são obrigatórios. O campo dumpFile é do formulário gs://bucket-location/filename. Você deve usar um nível de Primeira geração, como D4. Para databaseVersion, indique a versão MySQL da instância mestre: MYSQL_5_5 ou MYSQL_5_6. O campo region precisa ser igual ao da instância mestre.

    A informação de SSL/TLS é opcional, mas altamente recomendada para fins de segurança.

    Quando a réplica é criada, ela fica atrás da instância mestre, mas a replicação a alcançará com o tempo se a réplica estiver escalonada corretamente de acordo com a carga de trabalho.

  3. (Opcional) Repita a etapa anterior para criar outras réplicas.

  4. Se você não tiver configurado a instância mestre para usar SSL/TLS, será preciso pelo menos atualizar o usuário de replicação para permitir o acesso apenas a partir das réplicas. Saiba mais.

Próximas etapas

Saiba mais sobre o gerenciamento de réplicas.

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Cloud SQL para MySQL