Use o Data Transmission Service (DTS) para sincronizar dados de um cluster PolarDB for MySQL com o mecanismo de tabela ampla de uma instância Lindorm. O DTS executa uma carga inicial completa dos dados e aplica continuamente alterações incrementais para manter o destino sincronizado.
Pré-requisitos
Antes de começar, verifique se você tem:
Uma instância Lindorm com o mecanismo LindormTable ativado e espaço de armazenamento disponível superior ao espaço utilizado pelo cluster PolarDB for MySQL de origem. Consulte Criar uma instância.
O recurso de compatibilidade com MySQL habilitado na instância Lindorm de destino. Consulte Habilitar o recurso de compatibilidade com MySQL.
Um banco de dados (namespace) e uma tabela ampla pré-particionada criados na instância Lindorm de destino para receber os dados sincronizados. Consulte Usar um cliente MySQL para conectar-se e utilizar o LindormTable, Usar o Lindorm-cli para conectar-se e utilizar o mecanismo de tabela ampla, Usar o Lindorm Shell para acessar o LindormTable, CREATE TABLE e Mapeamento de tipos de dados.
-
Logs binários habilitados no cluster PolarDB for MySQL de origem, com o parâmetro
loose_polar_log_bindefinido comoON. Consulte Habilitar logs binários e Modificar parâmetros.Habilitar logs binários em um cluster PolarDB for MySQL gera custos adicionais referentes ao espaço de armazenamento ocupado por esses logs.
Retenção de logs binários configurada para pelo menos três dias no cluster de origem (recomenda-se sete dias). Consulte Modificar o período de retenção. Retenção insuficiente pode causar inconsistência ou perda de dados e afetar o Acordo de Nível de Serviço (SLA) do DTS.
Contas de banco de dados com as permissões necessárias. Consulte Permissões necessárias para contas de banco de dados.
Os objetos criados na instância Lindorm de destino devem atender aos requisitos especificados em Cotas e limites .
Faturamento
|
Tipo de sincronização |
Tarifa |
|
Sincronização completa de dados |
Gratuita |
|
Sincronização incremental de dados |
Paga. Consulte Visão geral do faturamento. |
Operações SQL suportadas para sincronização incremental
|
Tipo de operação |
Instruções SQL |
|
DML |
INSERT, UPDATE, DELETE |
|
DDL |
CREATE TABLE, DROP TABLE, ADD COLUMN |
Devido a limitações do mecanismo LindormTable, o DTS remove atributos extras das instruções ADD COLUMN. Por exemplo, se a source executarALTER TABLE test ADD COLUMN col INT DEFAULT 0;, o DTS executaráALTER TABLE test ADD COLUMN col INT;no destino.
Permissões necessárias para contas de banco de dados
|
Banco de dados |
Permissões necessárias |
Referência |
|
Cluster PolarDB for MySQL de origem |
Permissões de leitura e gravação |
|
|
Instância Lindorm de destino |
Permissões de leitura e gravação no namespace de destino |
Limitações
Não há suporte para sincronização de esquema. Apenas a sincronização completa e a incremental de dados estão disponíveis.
Dados do tipo BIT não podem ser sincronizados.
Os dados a serem sincronizados devem conter pelo menos um campo que não seja chave primária. Não há suporte para sincronizar apenas campos de chave primária.
As tabelas a serem sincronizadas precisam ter restrições PRIMARY KEY ou UNIQUE com todos os campos únicos. Caso contrário, o destino poderá conter registros duplicados.
Ao selecionar tabelas como objetos de sincronização e renomear tabelas ou colunas no destino, uma única tarefa suporta no máximo 1.000 tabelas. Exceder esse limite causa erro de solicitação. Nesse caso, configure várias tarefas ou sincronize todo o banco de dados.
O DTS não sincroniza nós somente leitura do cluster PolarDB for MySQL de origem.
O DTS não sincroniza tabelas externas do Object Storage Service (OSS) do cluster PolarDB for MySQL de origem.
Não há suporte para failover primário/secundário durante a sincronização completa de dados. Se ocorrer um failover, reconfigure a tarefa de sincronização.
A gravação de dados só é possível no mecanismo de tabela ampla da instância Lindorm.
Strings vazias do tipo VARBINARY são tratadas como valores nulos no DTS e na instância Lindorm.
Se a precisão do tipo DECIMAL diferir entre os campos de origem e destino, a tarefa falhará.
Os dados na instância Lindorm devem atender aos requisitos descritos em Limites em solicitações de dados. Caso contrário, a tarefa falhará.
Não execute operações DDL no banco de dados de origem durante a sincronização completa de dados, pois isso causa falha na tarefa. O DTS consulta a source nessa fase, criando bloqueios de metadados que também podem impedir operações DDL na source.
Não use ferramentas como pt-online-schema-change para executar operações DDL online nos objetos sincronizados durante a sincronização. Isso causa falha na tarefa.
Gravar dados fora do DTS no destino durante a sincronização pode resultar em inconsistência de dados.
Durante a sincronização inicial completa de dados, operações INSERT simultâneas causam fragmentação de tabela no destino. Após a conclusão dessa fase, o espaço de armazenamento da tabela de destino será maior que o da source.
Na sincronização inicial completa de dados, o DTS utiliza recursos de leitura e gravação de ambos os bancos de dados, o que pode aumentar a carga do servidor. Agende a sincronização para horários de baixa demanda — por exemplo, quando a carga de CPU de ambos os bancos de dados estiver abaixo de 30%.
Periodicamente, o DTS executa
CREATE DATABASE IF NOT EXISTSno banco de dados de origem para avançar a posição do arquivo de log binário.Em caso de falha de uma instância DTS, a equipe do DTS tentará a recuperação dentro de 8 horas. A recuperação pode envolver a reinicialização da instância ou o ajuste de parâmetros da instância DTS (parâmetros do banco de dados não são modificados). Os parâmetros passíveis de ajuste incluem aqueles descritos em Modificar parâmetros da instância.
Configure uma tarefa de sincronização
Etapa 1: Abrir a página Data Synchronization
Use um dos métodos a seguir:
Console do DTS
Faça login no console do DTS
No painel de navegação à esquerda, clique em Data Synchronization.
No canto superior esquerdo, selecione a região onde a tarefa de sincronização está localizada.
Console do DMS
Nota
As etapas reais podem variar conforme o modo e o layout do console do DMS. Consulte Modo simples e Personalizar o layout e o estilo do console do DMS.
Faça login no console do DMS
Na barra de navegação superior, passe o ponteiro sobre Data + AI e escolha DTS (DTS) > Data Synchronization.
Na lista suspensa à direita de Data Synchronization Tasks, selecione a região onde a instância de sincronização está localizada.
Etapa 2: Configure bancos de dados de source e destino
Clique em Create Task.
-
Configure os parâmetros da tarefa conforme descrito na tabela a seguir.
Seção Parâmetro Descrição N/A Task Name Insira um nome descritivo para identificar a tarefa. Um nome exclusivo não é obrigatório; o DTS gera um nome padrão automaticamente. Source Database Select Existing Connection Se a instância de source já estiver registrada no DTS, selecione-a na lista suspensa — o DTS preencherá os parâmetros automaticamente. Caso contrário, configure os parâmetros manualmente. No console do DMS, selecione na lista suspensa Select a DMS database instance. Database Type Selecione PolarDB for MySQL. Access Method Selecione Alibaba Cloud Instance. Instance Region Selecione a região onde o cluster PolarDB for MySQL de source está localizado. Replicate Data Across Alibaba Cloud Accounts Selecione No para sincronizar dentro da mesma conta Alibaba Cloud. PolarDB Cluster ID Selecione o ID do cluster PolarDB for MySQL de source. Database Account Insira a conta do banco de dados para o cluster de source. Consulte Permissões necessárias para contas de banco de dados. Database Password Insira a senha da conta do banco de dados. Encryption Selecione uma opção de criptografia SSL conforme necessário. Consulte Definir criptografia SSL. Destination Database Select Existing Connection Se a instância de destino já estiver registrada no DTS, selecione-a na lista suspensa. Caso contrário, configure os parâmetros manualmente. No console do DMS, selecione na lista suspensa Select a DMS database instance. Database Type Selecione Lindorm. Access Method Selecione Alibaba Cloud Instance. Instance Region Selecione a região onde a instância Lindorm de destino está localizada. Instance ID Selecione o ID da instância Lindorm de destino. Database Account Insira a conta do banco de dados para a instância Lindorm de destino. Consulte Permissões necessárias para contas de banco de dados. Database Password Insira a senha da conta do banco de dados. -
Clique em Test Connectivity and Proceed.
Certifique-se de que os blocos CIDR dos servidores DTS foram adicionados às configurações de segurança de ambos os bancos de dados para permitir o acesso. Consulte Adicionar endereços IP de servidores DTS a uma lista de permissões . Se a source ou o destino for um banco de dados autogerenciado com um Access Method diferente de Alibaba Cloud Instance , clique em Test Connectivity na caixa de diálogo CIDR Blocks of DTS Servers .
Etapa 3: Selecionar objetos para sincronizar
Na etapa Configure Objects, configure os seguintes parâmetros.
|
Parâmetro |
Descrição |
|
Synchronization Types |
Incremental Data Synchronization vem selecionado por padrão. Opcionalmente, adicione Full Data Synchronization. A sincronização de esquema não está disponível para este par source-destino. |
|
Processing Mode of Conflicting Tables |
Use o valor padrão. |
|
Capitalization of Object Names in Destination Instance |
Controla a capitalização de nomes de bancos de dados, tabelas e colunas no destino. DTS default policy vem selecionado por padrão. Consulte Especificar a capitalização de nomes de objetos na instância de destino. |
|
Source Objects |
Selecione objetos em Source Objects e clique no ícone |
|
Selected Objects |
Se os nomes de bancos de dados (namespaces), tabelas ou colunas no destino forem diferentes dos da source, use o recurso de mapeamento de nomes de objetos. Consulte Mapear nomes de objetos. Para filtrar linhas com condições WHERE, clique com o botão direito em uma tabela em Selected Objects e especifique as condições. Consulte Especificar condições de filtro. Para selecionar operações SQL específicas para sincronização incremental, clique com o botão direito em um objeto em Selected Objects e escolha as operações. |
Renomear objetos com o recurso de mapeamento de nomes de objetos pode causar falha na sincronização de objetos dependentes.
Etapa 4: Configure definições avançadas
Clique em Next: Advanced Settings e configure os seguintes parâmetros.
|
Parâmetro |
Descrição |
|
Dedicated Cluster for Task Scheduling |
O DTS usa o cluster compartilhado por padrão. Para maior estabilidade, adquira um cluster dedicado. Consulte O que é um cluster dedicado do DTS. |
|
Retry Time for Failed Connections |
Tempo durante o qual o DTS tenta reconectar após uma falha de conexão. Valores válidos: 10–1.440 minutos. Padrão: 720 minutos. Defina como mais de 30 minutos. Se o DTS reconectar dentro dessa janela, a tarefa será retomada; caso contrário, ela falhará. Se várias tarefas compartilharem a mesma source ou destino, o menor tempo de nova tentativa será aplicado. Durante a nova tentativa, a instância DTS continua a gerar cobranças. |
|
Retry Time for Other Issues |
Tempo durante o qual o DTS tenta novamente após falhas de DDL ou DML. Valores válidos: 1–1.440 minutos. Padrão: 10 minutos. Defina como mais de 10 minutos. Deve ser menor que Retry Time for Failed Connections. |
|
Enable Throttling for Full Data Synchronization |
Limita a carga que o DTS impõe à source e ao destino durante a sincronização completa de dados. Configure Queries per second (QPS) to the source database, RPS of Full Data Migration e Data migration speed for full migration (MB/s) conforme necessário. Disponível apenas quando Full Data Synchronization estiver selecionado. |
|
Enable Throttling for Incremental Data Synchronization |
Limita a carga durante a sincronização incremental de dados. Configure RPS of Incremental Data Synchronization e Data synchronization speed for incremental synchronization (MB/s) conforme necessário. |
|
Whether to delete SQL operations on heartbeat tables of forward and reverse tasks |
Controla se o DTS grava operações de tabela de heartbeat no banco de dados de source. Yesconfigurações de notificação de alerta: não grava operações de heartbeat (um valor de latência pode aparecer na tarefa). No: grava operações de heartbeat (pode afetar o backup físico e a clonagem do banco de dados de source). |
|
Environment Tag |
Opcionalmente, selecione uma tag para identificar o ambiente. |
|
Configure ETL |
Especifica se deve ative o recurso de extração, transformação e carga (ETL). Yes: insira instruções de processamento de dados no editor de código. Consulte Configurar ETL em uma tarefa de migração ou sincronização de dados. No: pule a configuração de ETL. Consulte O que é ETL? |
|
Monitoring and Alerting |
Configura alertas para quando a tarefa falhar ou a latência de sincronização exceder um limiar. Yes: configure o limiar de alerta e os contatos de notificação. Consulte Configurar monitoramento e alertas ao criar uma tarefa DTS. No: sem alertas. |
Etapa 5: Execute uma pré-verificação
Clique em Next: Save Task Settings and Precheck.
Para visualize os parâmetros da API desta configuração de tarefa, passe o mouse sobre Next: Save Task Settings and Precheck e clique em Preview OpenAPI parameters antes de prosseguir.
O DTS executa uma pré-verificação antes que a tarefa possa iniciar. Se a pré-verificação falhar:
Clique em View Details ao lado de cada item com falha, resolva os problemas e clique em Precheck Again.
Se um item de alerta puder ser ignorado, clique em Confirm Alert Details, depois em Ignore e clique em Precheck Again. Ignorar alertas pode resultar em inconsistência de dados.
Etapa 6: Adquirir uma instância
Aguarde até que Success Rate atinja 100% e clique em Next: Purchase Instance.
-
Na página buy, configure os parâmetros da instância.
Seção Parâmetro Descrição New Instance Class Billing Method Subscription: pagamento antecipado por um período fixo. Mais econômico para uso de longo prazo. Pay-as-you-go: faturamento horário. Adequado para uso de curto prazo; libere a instância quando não for mais necessária para interromper as cobranças. Resource Group Settings O grupo de recursos para a instância de sincronização. Padrão: default resource group. Consulte O que é Resource Management? Instance Class A velocidade de sincronização varia conforme a classe da instância. Selecione uma classe com base nos seus requisitos de throughput. Consulte Classes de instâncias de sincronização de dados. Subscription Duration Disponível apenas para o método de faturamento Subscription. Opções: 1–9 meses ou 1, 2, 3 ou 5 anos. Leia e selecione Data Transmission Service (Pay-as-you-go) Service Terms.
Clique em Buy and Start e, em seguida, clique em OK na caixa de diálogo.
A tarefa aparecerá na lista de tarefas. Monitore o progresso dela nesse local.