Nesta página, descrevemos como configurar o servidor externo para replicação no Cloud SQL, criar uma instância de representação de origem no Cloud SQL e replicar os dados para o Cloud SQL. É preciso seguir todas as etapas desta página antes de seguir as etapas de replicação.
Uma alternativa às etapas descritas nesta página é o Serviço de migração de banco de dados, que oferece replicação contínua ou migração única de banco de dados de um servidor externo para o Cloud SQL.
Antes de começar
Terminologia
Servidor externo. O servidor MySQL externo ao Cloud SQL de onde você quer replicar dados. Ele também é conhecido como o banco de dados de origem ou o servidor de banco de dados externo. Pode ser outra instância do Cloud SQL ou qualquer outro servidor de banco de dados, como no local, Amazon Relational Database Service (RDS) e assim por diante.
Instância de representação de origem. Uma simulação de uma instância do Cloud SQL que representa o servidor externo para a réplica do Cloud SQL. Ele fica visível no Console do Google Cloud e aparece como uma instância normal do Cloud SQL. No entanto, ele não contém dados, não precisa de configuração ou manutenção nem afeta o faturamento.
Réplica do Cloud SQL. A instância do Cloud SQL que é replicada do servidor externo. Também conhecida como réplica de leitura do mestre externo.
Replicação da conta de usuário. A conta de usuário do MySQL no servidor externo com permissões suficientes para permitir a replicação entre o servidor externo e a réplica do Cloud SQL.
Importação gerenciada. O processo de importação de dados diretamente do servidor externo para a réplica do Cloud SQL. Nessa situação, o Cloud SQL se conecta ao servidor externo usando a conta de usuário de replicação e executa o despejo de dados diretamente no servidor externo para importar dados para a réplica do Cloud SQL.
Configure um projeto do Google Cloud
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud SQL Admin API.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud SQL Admin API.
-
Verifique se você tem os papéis "Administrador" do Cloud SQL, "Administrador do Storage" e "Leitor do Compute" na conta de usuário.
Instalar o Google Cloud SDK
Para configurar a replicação, instale o SDK do Google Cloud para o servidor externo. É recomendável instalar o SDK no servidor externo, a menos que já esteja instalado em outro lugar.
Configurar o servidor externo para replicação
Lista de verificação do servidor externo
Verifique se MySQL 5.5, 5.6, 5.7, 8.0 ou 8.4 está instalado no seu servidor externo. O MySQL Community Edition, Cloud SQL para MySQL, Amazon Aurora e MySQL no Amazon RDS são compatíveis.
- Use uma versão principal do MySQL na réplica do Cloud SQL que seja igual ou superior à versão do MySQL em execução no servidor externo.
- Se o MySQL 5.5 estiver instalado no servidor externo, o GTID não é compatível.
Verifique se os registros binários estão ativados e se:
- A geração de registros binários baseados em linha é usada.
- Os registros binários são retidos por um período suficiente para suportar a migração do banco de dados. Geralmente, uma semana é suficiente.
Anote se o servidor externo tem o GTID ativado. Isso afeta as etapas necessárias para configurar a replicação.
Anote se o servidor externo tem permissões globais de bloqueio de leitura. Isso afeta as etapas necessárias para configurar a replicação.
Se a réplica do Cloud SQL estiver ativada com um endereço IP privado porque o endereço IP particular de saída não é estático, configure o firewall do servidor externo para permitir o intervalo de IP interno alocado para o acesso de serviço particular da rede VPC que a réplica do Cloud SQL usa como rede privada.
O firewall do servidor de banco de dados de origem precisa ser configurado para permitir todo o intervalo de IPs interno alocado para a conexão de serviço particular da rede VPC que o destino do Cloud SQL usa como o campo privateNetwork de suas configurações de ipConfiguration.
Para encontrar o intervalo de IP interno:
No Console do Google Cloud, acesse a página Redes VPC.
Selecione a rede VPC que você quer usar.
Clique na guia Private Service Connect.
Se o servidor externo tiver cláusulas
DEFINER
(visualizações, eventos, gatilhos ou procedimentos armazenados), dependendo da ordem de quando essas instruções são executadas, a replicação poderá falhar. Saiba mais sobre o uso deDEFINER
e as possíveis soluções alternativas no Cloud SQL.O InnoDB é o único mecanismo de armazenamento suportado no Cloud SQL. A migração com o MyISAM pode causar inconsistência nos dados e exigir validação de dados. Para mais informações, consulte Como converter tabelas do MyISAM para o InnoDB na documentação do MySQL.
Configurar retenção de registros binários
Configure o servidor externo para reter os registros binários por pelo menos 24 horas.
Comunidade do MySQL
Se o servidor externo estiver usando o MySQL Community Edition, será possível usar os comandos do MySQL para atualizar as configurações de retenção de registros binários.
MySQL 5.5 - 5.7:
expire_logs_days
MySQL 8.0.x:
expire_logs_days
,binlog_expire_logs_seconds
MySQL 8.4:
binlog_expire_logs_seconds
Cloud SQL para MySQL
Se o servidor externo estiver usando o Cloud SQL para MySQL, por padrão, seus registros binários serão retidos por sete dias. Você pode alterar essa configuração.
Amazon RDS e Aurora
Se o servidor externo for uma instância do Amazon RDS, será possível usar este comando para atualizar as configurações de retenção de registros binários:
call mysql.rds_set_configuration('binlog retention ', HOURS);
Propriedade | Descrição |
---|---|
HORAS | O número total de horas de registros binários para a instância do Amazon RDS a ser retida. |
Para mais informações, consulte mysql.rds_set_configuration.
Criar uma conta de usuário de replicação
Uma conta de usuário do MySQL dedicada ao gerenciamento de replicação para a réplica do Cloud SQL precisa existir no servidor externo. Essa conta de usuário só precisa ser usada para gerenciar a replicação. Dependendo da abordagem de migração usada, talvez seja necessário conceder permissões ao usuário posteriormente.
Para adicionar uma conta de usuário de replicação, abra um terminal no servidor externo e digite estes comandos do MySQL:
MySQL
CREATE USER 'USERNAME'@'%' IDENTIFIED BY 'PASSWORD'; GRANT SELECT, SHOW VIEW ON *.* TO 'USERNAME'@'HOST'; FLUSH PRIVILEGES;
exemplo
CREATE USER 'replicationUser'@'%' IDENTIFIED BY '8*&fwwd';
GRANT SELECT, SHOW VIEW ON *.* TO 'replicationUser'@'%';
FLUSH PRIVILEGES;
Propriedade | Descrição |
---|---|
USERNAME | A conta do usuário de replicação no servidor externo. |
PASSWORD | A senha da conta de usuário da replicação. |
HOST | Defina como % para aceitar todas as conexões de qualquer host.
Em uma etapa posterior, isso será alterado para aceitar apenas conexões da réplica do Cloud SQL. |
Configurar uma instância de representação de origem
A instância de representação de origem faz referência ao servidor externo. Ele contém apenas os dados da solicitação do servidor externo. Crie os dados da solicitação
e use-os em um comando curl
que cria a instância de representação de origem
no Cloud SQL.
Criar os dados da solicitação
Os dados da solicitação contêm informações básicas sobre o servidor externo no formato JSON. Os dados da solicitação podem ser configurados para uma réplica do Cloud SQL em uma rede pública ou privada e precisam conter estas informações:
source.json
{ "name": "SOURCE_NAME", "region": "REGION", "databaseVersion": "DATABASE_VERSION", "onPremisesConfiguration": { "hostPort": "SOURCE_HOST", "username": "USERNAME", "password": "PASSWORD", "caCertificate": "SOURCE_CERT", "clientCertificate": "CLIENT_CERT", "clientKey": "CLIENT_KEY" } }
exemplo de importação gerenciada
// example of source.json for external server that
// - initiates replication from a Cloud SQL managed import
// - doesn't use SSL/TSL
{
"name": "cloudsql-source-instance",
"region": "us-central1",
"databaseVersion": "MYSQL_5_7",
"onPremisesConfiguration": {
"hostPort": "192.0.2.0:3306",
"username": "replicationUser",
"password": "486#@%*@"
}
}
exemplo de arquivo dump
// example of source.json for external server that
// - initiates replication from a file
// - uses SSL/TSL
{
"name": "cloudsql-source-instance",
"region": "us-central1",
"databaseVersion": "MYSQL_5_7",
"onPremisesConfiguration": {
"hostPort": "192.0.2.0:"3306",
"username": "replicationUser",
"password": "486#@%*@",
"dumpFilePath": "gs://replica-bucket/source-database.sql.gz",
"caCertificate": "content of your certificate",
"clientCertificate": "content of your certificate",
"clientKey": "content of your client key"
}
}
exemplo de importação personalizada
// example of source.json for external server that
// - initiates replication from a Cloud SQL custom import
// - doesn't use SSL/TSL
{
"name": "cloudsql-source-instance",
"region": "us-central1",
"databaseVersion": "MYSQL_5_7",
"onPremisesConfiguration": {
"hostPort": "192.0.2.0:3306",
"username": "replicationUser",
"password": "486#@%*@"
}
}
Propriedade | Descrição |
---|---|
SOURCE_NAME | O nome da instância de representação de origem a ser criada. |
REGION | A região onde você quer que a instância de representação de origem resida. |
DATABASE_VERSION | A versão do banco de dados em execução no seu
servidor externo. As opções são
MYSQL_5_6 , MYSQL_5_7 , MYSQL_8_0 ou MYSQL_8_4 .
. |
SOURCE HOST | O endereço IPv4 e a porta do
servidor externo ou do
endereço DNS do servidor externo.
Se você usar um endereço DNS, ele poderá conter até 60
caracteres.
Se o servidor externo estiver hospedado no Cloud SQL, a porta será 3306 . |
USERNAME | A conta do usuário de replicação no servidor externo. |
PASSWORD | A senha da conta de usuário da replicação. |
BUCKET | O nome do bucket que contém o arquivo dump. Inclua somente se você estiver configurando a replicação com um arquivo dump que existe em um bucket do Cloud Storage. |
DUMP_FILE | Um arquivo no bucket que contém os dados do servidor externo. |
CLIENT_CA_CERT | O certificado de CA no servidor externo. Inclua somente se SSL/TLS for usado no servidor externo. |
CLIENT_CERT | O certificado do cliente no servidor externo. Necessário apenas para autenticação servidor-cliente. Inclua somente se SSL/TLS for usado no servidor externo. |
CLIENT_KEY | O arquivo de chave privada do certificado do cliente no servidor externo. Necessário apenas para autenticação servidor-cliente. Inclua somente se SSL/TLS for usado no servidor externo. |
Criar uma instância de representação de origem
Antes de iniciar esta etapa, crie um arquivo JSON que contenha seus dados de solicitação de origem.
Em seguida, para criar a instância de representação de origem no Cloud SQL, abra um terminal e execute os seguintes comandos:
curl
gcloud auth login ACCESS_TOKEN="$(gcloud auth print-access-token)" curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \ --header 'Content-Type: application/json' \ --data @JSON_PATH \ -X POST \ https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT-ID/instances
exemplo
gcloud auth login
ACCESS_TOKEN="$(gcloud auth print-access-token)"
curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
--header 'Content-Type: application/json' \
--data @./source.json \
-X POST \
https://sqladmin.googleapis.com/sql/v1beta4/projects/MyProject/instances
Propriedade | Descrição |
---|---|
PROJECT_ID | O ID do seu projeto no Google Cloud. |
JSON_PATH | O caminho para o arquivo JSON que contém os
dados da solicitação para o servidor externo. |
Atualizar uma instância de representação de origem
Se você atualizar os dados da solicitação usando o servidor externo, poderá atualizar a instância de representação de origem atual para usar os valores modificados.
Modificar os dados da solicitação
Atualize os dados da solicitação para incluir os campos que foram alterados. Isso inclui os campos hostPort
, username
, password
, caCertificate
, clientCertificate
e clientKey
. Depois de atualizar os dados da solicitação, use-os em um comando curl
para atualizar a instância no Cloud SQL.
O exemplo a seguir mostra a atualização dos campos username
e password
com um nome de usuário e uma senha diferentes:
source.json
{ "name": "SOURCE_NAME", "region": "REGION", "databaseVersion": "DATABASE_VERSION", "onPremisesConfiguration": { "username": "NEW_USERNAME", "password": "NEW_PASSWORD" } }
exemplo de importação gerenciada
// example of source.json for external server that
// - initiates replication from a Cloud SQL managed import
// - doesn't use SSL/TSL
{
"name": "cloudsql-source-instance",
"region": "us-central1",
"databaseVersion": "MYSQL_5_7",
"onPremisesConfiguration": {
"username": "newReplicationUser",
"password": "525#@%*@"
}
}
exemplo de arquivo dump
// example of source.json for external server that
// - initiates replication from a file
// - uses SSL/TSL
{
"name": "cloudsql-source-instance",
"region": "us-central1",
"databaseVersion": "MYSQL_5_7",
"onPremisesConfiguration": {
"username": "newReplicationUser",
"password": "486#@%*@"
}
}
exemplo de importação personalizada
// example of source.json for external server that
// - initiates replication from a Cloud SQL custom import
// - doesn't use SSL/TSL
{
"name": "cloudsql-source-instance",
"region": "us-central1",
"databaseVersion": "MYSQL_5_7",
"onPremisesConfiguration": {
"username": "newReplicationUser",
"password": "486#@%*@"
}
}
Propriedade | Descrição |
---|---|
SOURCE_NAME | O nome da instância de representação de origem. |
REGION | A região em que a instância de representação de origem reside. |
DATABASE_VERSION | A versão do banco de dados em execução no seu
servidor externo. As opções são
MYSQL_5_6 , MYSQL_5_7 , MYSQL_8_0 ou MYSQL_8_4 .
|
NEW_USERNAME | A nova conta do usuário de replicação no servidor externo. |
NEW_PASSWORD | A senha da nova conta. |
Modificar uma instância de representação de origem
Antes de iniciar esta etapa, crie um arquivo JSON que contenha seus dados de solicitação da réplica.
Em seguida, para modificar a instância de representação de origem no Cloud SQL, abra um terminal e execute os seguintes comandos:
curl
gcloud auth login ACCESS_TOKEN="$(gcloud auth print-access-token)" curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \ --header 'Content-Type: application/json' \ --data @JSON_PATH \ -X PATCH \ https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT-ID/instances/SOURCE_NAME
exemplo
gcloud auth login
ACCESS_TOKEN="$(gcloud auth print-access-token)"
curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
--header 'Content-Type: application/json' \
--data @./source.json \
-X PATCH \
https://sqladmin.googleapis.com/sql/v1beta4/projects/MyProject/instances/cloudsql-source-instance
Propriedade | Descrição |
---|---|
PROJECT_ID | O ID do seu projeto no Google Cloud. |
JSON_PATH | O caminho para o arquivo JSON que contém os
dados da solicitação para o servidor externo. |
SOURCE_NAME | O nome da instância de representação de origem. |
Configurar uma réplica do Cloud SQL
A réplica do Cloud SQL contém os dados do
servidor externo. Nesta etapa, você cria os dados da
solicitação e os usa em um comando curl
que cria a
réplica do Cloud SQL no Cloud SQL.
Criar os dados da solicitação
Os dados da solicitação contêm informações básicas sobre o servidor externo e a réplica do Cloud SQL no formato JSON. Os dados da solicitação podem ser configurados para uma réplica do Cloud SQL em uma rede pública ou privada e precisam conter estas informações:
replica.json
{ "settings": { "tier": "TIER", "dataDiskSizeGb": "DISK_SIZE", "ipConfiguration": { "ipv4Enabled": "PUBLIC_IP_STATUS", "privateNetwork": "projects/PROJECT_ID/global/networks/NETWORK_NAME" }, "availabilityType": "AVAILABILITY_TYPE" }, "masterInstanceName": "SOURCE_REPRESENTATION_INSTANCE_NAME", "region": "SOURCE_REGION", "databaseVersion": "DATABASE_VERSION", "name": "REPLICA_NAME" }
exemplo
{ "settings": { "tier": "db-custom-4-15360", "dataDiskSizeGb": "100" }, "masterInstanceName": "source-instance", "region": "us-central1", "databaseVersion": "MYSQL_8_0", "name": "replica-instance" }
Propriedade | Descrição |
---|---|
TIER | O tipo de máquina para hospedar a instância da
réplica. Se você não souber qual tipo de máquina usar,
comece com db-custom-2-7680 . É possível
alterar o tamanho e outros valores compatíveis
posteriormente, se necessário. |
DISK_SIZE | O tamanho de armazenamento da réplica do Cloud SQL, em GB. |
PUBLIC_IP_STATUS | Determina se a instância recebe
um endereço IP público. Por padrão, o
valor dessa propriedade é true .
Para desativar a atribuição de um endereço IP público para a
réplica, defina o valor como false .
Se o seu projeto tem a constraints/sql.restrictPublicIp política da
organização ativado, para criar a réplica do Cloud SQL,
defina o valor do atributo ipv4Enabled do app para false . Para mais informações
sobre como desativar a atribuição de endereço IP público, consulte
Desativar IP público. |
PROJECT_ID | Se a réplica do Cloud SQL estiver em uma rede privada,
inclua a propriedade privateNetwork no
arquivo replica.json .
Para PROJECT_ID, especifique o ID do
projeto no Google Cloud. |
NETWORK_NAME | O nome da rede privada a ser usada com a réplica do Cloud SQL. |
AVAILABILITY_TYPE | O tipo de disponibilidade da réplica do Cloud SQL. Por padrão, o valor é ZONAL . Para criar a réplica de alta disponibilidade, defina o valor como REGIONAL . Para saber mais sobre os valores permitidos, consulte SqlAvailabilityType.
Depois de criar uma réplica de alta disponibilidade do servidor externo, não é possível alterá-la para uma réplica que não seja de alta disponibilidade. Isso também se aplica inversamente. Não é possível alterar uma réplica que não seja de alta disponibilidade do servidor externo para uma réplica de alta disponibilidade. Uma tentativa de failover manual pode levar a uma migração irrecuperável quando a instância ainda está carregando os dados iniciais ou a uma inatividade temporária se a instância já estiver em replicação a partir da fonte. Verifique o status de replicação. |
SOURCE_REPRESENTATION_INSTANCE_NAME | O nome da instância de representação de origem. |
SOURCE_REGION | A região atribuída à instância de representação de origem. |
DATABASE_VERSION | A versão do banco de dados a ser usada com a
réplica do Cloud SQL. As opções para esta versão são
MYSQL_5_6 , MYSQL_5_7 , MYSQL_8_0 ou MYSQL_8_4 .
Corresponda a versão do banco de dados em execução no servidor externo ou defina o valor como, no máximo, uma versão posterior. |
REPLICA_NAME | O nome da réplica do Cloud SQL a ser criada. |
Crie a réplica do Cloud SQL
Antes de iniciar esta etapa, crie um arquivo JSON que contenha seus dados de solicitação da réplica. Em seguida, para criar uma réplica do Cloud SQL, abra um terminal do Cloud Shell e execute estes comandos:
curl
gcloud auth login ACCESS_TOKEN="$(gcloud auth print-access-token)" curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \ --header 'Content-Type: application/json' \ --data @JSON_PATH \ -X POST \ https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT-ID/instances
exemplo
gcloud auth login ACCESS_TOKEN="$(gcloud auth print-access-token)" curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \ --header 'Content-Type: application/json' \ --data @./replica.json \ -X POST \ https://sqladmin.googleapis.com/sql/v1beta4/projects/MyProject/instances
Propriedade | Descrição |
---|---|
PROJECT_ID | O ID do projeto no Google Cloud, que precisa ser o mesmo da instância de origem. |
JSON_PATH | O caminho para o arquivo JSON que contém os dados da solicitação para a réplica do Cloud SQL. |
Verificar a configuração
Para garantir que suas instâncias foram configuradas corretamente, acesse a página Instâncias do Cloud SQL.
Você verá sua instância de representação de origem e a réplica do Cloud SQL em uma listagem semelhante a esta:
ID da instância | Tipo | IP público |
---|---|---|
(-) source-representation-instance | Principal externa do banco de dados | 10.68.48.3:3306 |
replica-instance | Réplica de leitura do banco de dados | 34.66.48.59 |
Verifique também se você tem a permissão cloudsql.instances.migrate
na
réplica do Cloud SQL. Essa permissão está incluída nos papéis do IAM cloudsql.admin
ou cloudsql.editor
.
Adicionar usuários à réplica do Cloud SQL
Não é possível importar contas de usuário do banco de dados do servidor externo, mas é possível criar essas contas em uma réplica do Cloud SQL. Faça isso antes da replicação pelo servidor externo.
Conseguir o endereço IP de saída da réplica do Cloud SQL
Use o endereço IP de saída da réplica do Cloud SQL para criar uma conexão segura entre o servidor externo e a réplica do Cloud SQL. Esse endereço IP não será cobrado.
Console
Para receber o endereço IP de saída da réplica, faça o seguinte:
-
No console do Google Cloud, acesse a página Instâncias do Cloud SQL.
Ao lado do endereço IP público da réplica do Cloud SQL, posicione o cursor sobre a dica Mais informações e recupere o endereço IP de saída.
O endereço IP de saída não é o endereço IP exibido na listagem principal da réplica no console do Google Cloud.
gcloud
Para saber o endereço IP de saída da réplica, execute o seguinte comando:
gcloud sql instances describe REPLICA_NAME --format="default(ipAddresses)"
Propriedade | Descrição |
---|---|
REPLICA_NAME | O nome da réplica do Cloud SQL com o endereço IP público de saída que você quer recuperar. |
Permitir conexões de entrada no servidor externo
A réplica do Cloud SQL precisa se conectar ao servidor externo para que a replicação seja bem-sucedida. Você precisa configurar o firewall de rede do servidor externo para aceitar conexões provenientes do endereço IP de saída da réplica do Cloud SQL se as seguintes condições forem aplicáveis:
- O servidor externo está protegido por firewall ou alguma outra restrição de rede.
- Sua réplica do Cloud SQL está usando um IP público.
Para se conectar à réplica do Cloud SQL, use o endereço IP principal da réplica. Esse endereço IP é exibido no console do Google Cloud.
Atualizar a instância de representação de origem para permitir a replicação para a réplica do Cloud SQL
Depois de configurar a instância de representação de origem para a réplica do Cloud SQL, talvez seja necessário atualizar a instância de representação de origem. Por exemplo, estes cenários exigem uma atualização nas configurações:
- O host, a porta ou o IP do servidor externo é alterado.
- Se você quiser usar um usuário diferente de replicação do MySQL.
- A senha do usuário de replicação do MySQL é alterada.
- Os certificados SSL usados para se conectar com segurança à alteração no servidor externo.
Semeie a réplica do Cloud SQL
Há três opções para executar o carregamento inicial de dados do servidor externo na réplica do Cloud SQL:
- Uma importação gerenciada usa um serviço que extrai dados do servidor externo e os importa diretamente para a instância do Cloud SQL. O Cloud SQL recomenda essa opção. Use essa opção se o servidor externo não usar a replicação do identificador global de transação (GTID). Para mais informações, consulte Como usar uma importação gerenciada para configurar a replicação de bancos de dados externos.
- Um arquivo dump exige que você crie um arquivo dump do servidor externo, mova-o para um bucket do Cloud Storage e importe-o para o Cloud SQL. Só será possível usar essa opção se o servidor externo usar a replicação GTID. Para mais informações, consulte Como usar um arquivo dump para configurar a replicação de bancos de dados externos.
- Uma importação personalizada requer que você crie uma instância primária do Cloud SQL, faça uma importação de dados personalizada usando suas ferramentas preferidas, rebaixe-a para uma réplica do Cloud SQL e configure a replicação de servidor externo de dados. Isso funciona melhor para migrações de banco de dados com vários TB. Porém, é necessário usar a replicação GTID. Para mais informações, consulte Como usar uma importação personalizada para configurar a replicação de grandes bancos de dados externos.
Qual opção é melhor para você?
Replicação do monitor
Quando a réplica do Cloud SQL termina o carregamento de dados inicial, ela se conecta ao servidor externo e aplica todas as atualizações feitas após a operação de exportação. Confirme o status de replicação.
É importante verificar o status da replicação antes de promover a réplica para uma instância autônoma. Se o processo de replicação não for concluído com êxito, uma réplica promovida não terá todas as alterações do servidor externo.
Se o atraso da replicação não estiver em direção a 0,
tome medidas para resolver o problema.
Verifique essas métricas: /postgresql/external_sync/initial_sync_complete
,
postgresql/external_sync/max_replica_byte_lag
e
database/replication/state
. Veja a lista de métricas do Cloud SQL.
Depois que a réplica do Cloud SQL alcançar o servidor externo e não houver atraso de replicação na réplica do Cloud SQL, conecte-se ao banco de dados. Execute os comandos adequados do banco de dados para garantir que o conteúdo seja o esperado em comparação com o servidor externo. Retenha seu servidor externo até que as validações necessárias sejam concluídas.
Configurar uma réplica em cascata
Após a migração, é possível criar réplicas de leitura em cascata na sua réplica do Cloud SQL antes de promover a réplica do Cloud SQL.
Só será possível criar réplicas em cascata para a instância do Cloud SQL se você estiver usando a replicação GTID.Para criar uma réplica em cascata, execute os seguintes comandos:
Console
-
No console do Google Cloud, acesse a página Instâncias do Cloud SQL.
- No MySQL 5.7 ou posterior, ative a replicação.
- Clique na guia Réplicas da réplica que atuará como mãe da réplica que você quer criar.
- Clique em Criar réplica.
- Na página Criar réplica de leitura, atualize o ID da instância e todas as outras opções de configuração, incluindo nome, região e zona.
- Clique em Criar.
O Cloud SQL cria uma réplica. Você retorna à página da instância da réplica mãe.
- Siga as etapas de 4 a 6 para cada nova réplica em cascata que você queira criar.
gcloud
- Se você estiver usando o MySQL versão 5.7 ou mais recente, ative os binlogs para a principal da nova réplica:
Substitua PARENT_REPLICA_NAME pelo nome da réplica mãe.gcloud sql instances patch --enable-bin-log --project=cascade-replica PARENT_REPLICA_NAME
- Crie a nova réplica especificando a réplica do Cloud SQL como a instância principal usando a sinalização
--master-instance-name
: - REPLICA_NAME: o ID exclusivo da réplica que você está criando
- PARENT_REPLICA_NAME: o nome da réplica do Cloud SQL
Após a criação da réplica, é possível ver que as alterações feitas na instância principal são replicadas por todas as réplicas na cadeia de réplicas em cascata.
gcloud sql instances create REPLICA_NAME \ --master-instance-name=PARENT_REPLICA_NAME \
curl
- Se você estiver usando o MySQL versão 5.7 ou mais recente, ative a geração de registros binários:
Para ativar a geração de registros binários, salve o JSON a seguir em um arquivo chamado request.JSON e depois invoque o comando curl para ativar a geração de registros binários.
{ "settings": { "backupConfiguration": { "enabled": false, "binaryLogEnabled": true } } }
- Para criar uma réplica sob a réplica mãe, edite o exemplo de código JSON a seguir e salve-o em um arquivo chamado
request.json
:{ "masterInstanceName": "EXTERNAL_SERVER_REPLICA_NAME", "project": "PROJECT_ID", "name": "REPLICA_NAME", "region": "REPLICA_REGION", "settings": { "tier": "MACHINE_TYPE", } }
- Execute este comando:
curl -X POST -H "Authorization: Bearer "$(gcloud auth print-access-token) -H "Content-Type: application/json; charset=utf-8" -d @request.json "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances"
Promova a réplica
Promova sua réplica seguindo estas etapas:
- Promova a réplica a uma instância principal. O GTID e os registros binários estão ativados, e os backups programados são ativados na réplica promovida.
- Adicione réplicas de leitura à instância.
- Opcional: configure sua instância para alta disponibilidade (HA, na sigla em inglês).
Para evitar mais inatividade, é possível ativar a alta disponibilidade ao configurar uma réplica definindo
AVAILABILITY_TYPE
comoREGIONAL
.
A seguir
- Saiba como usar uma importação personalizada para configurar a replicação de grandes bancos de dados externos.
- Saiba como usar um arquivo dump para configurar a replicação de bancos de dados externos.
- Saiba como usar uma importação gerenciada para configurar a replicação de bancos de dados externos.