O DTS oferece suporte à sincronização de schema, sincronização completa e sincronização incremental de dados de uma instância ApsaraDB RDS for MariaDB TX para uma instância ApsaraDB RDS for MySQL.
Pré-requisitos
Antes de começar, verifique se você possui:
Uma instância RDS MySQL de destino. Criar uma instância ApsaraDB RDS for MySQL
Armazenamento suficiente na instância de destino para todos os dados da source.
Faturamento
|
Tipo de sincronização |
Taxa |
|
Sincronização de schema e sincronização completa de dados |
Gratuita |
|
Sincronização incremental de dados |
Paga. Visão geral do faturamento. |
Permissões necessárias para contas de banco de dados
|
Banco de dados |
Permissão necessária |
Referências |
|
Instância RDS MariaDB TX de source |
Permissões de leitura e gravação nos objetos a serem sincronizados |
Criar uma conta e Modificar ou redefinir permissões da conta |
|
Instância RDS MySQL de destino |
Permissões de leitura e gravação no banco de dados de destino |
Operações SQL suportadas para sincronização incremental
|
Tipo de operação |
Instrução SQL |
|
DML |
INSERT, UPDATE e DELETE |
|
DDL |
ALTER TABLE, ALTER VIEW, CREATE FUNCTION, CREATE INDEX, CREATE PROCEDURE, CREATE TABLE, CREATE VIEW, DROP INDEX, DROP TABLE, RENAME TABLE e TRUNCATE TABLE |
A instrução RENAME TABLE pode causar inconsistência de dados. Se você renomear uma tabela selecionada como objeto de sincronização, os dados dela deixarão de ser sincronizados para o destino. Para evitar isso, selecione o banco de dados que contém a tabela como objeto de sincronização. Certifique-se de incluir tanto o banco de dados anterior quanto o posterior à renomeação nos objetos de sincronização.
Limitações
Requisitos do banco de dados de source
As tabelas a serem sincronizadas devem ter restrições PRIMARY KEY ou UNIQUE com todos os campos únicos. Caso contrário, o destino poderá conter registros duplicados.
Se você selecionar tabelas como objetos de sincronização e precisar renomeá-las no destino, uma única tarefa suporta até 1.000 tabelas. Para mais de 1.000 tabelas, use várias tarefas ou sincronize todo o banco de dados.
O log binário é ativado por padrão nas instâncias RDS MariaDB. Verifique se o parâmetro
binlog_row_imageestá definido comofull. Caso contrário, a pré-verificação falhará e não será possível iniciar a tarefa de sincronização.-
Retenção de logs binários: Se o DTS não conseguir obter os logs binários, a tarefa poderá falhar, ou poderão ocorrer inconsistência e perda de dados. O SLA do DTS não cobre problemas causados por retenção insuficiente de logs.
Sincronização apenas incremental: pelo menos 24 horas.
Sincronização completa e incremental: pelo menos 7 dias. Após a conclusão da sincronização completa de dados, defina o período de retenção para mais de 24 horas.
Comportamento de chaves estrangeiras
Durante a sincronização de schema, o DTS sincroniza as chaves estrangeiras para o destino.
Nas sincronizações completa e incremental, o DTS desativa temporariamente as verificações de restrição de chave estrangeira e as operações em cascata no nível da sessão.
Operações de atualização e exclusão em cascata no banco de dados de source durante a sincronização podem causar inconsistência de dados.
Restrições de execução
Impacto no desempenho: A sincronização completa de dados consome recursos tanto nos bancos de dados de source quanto de destino. Agende a sincronização fora dos horários de pico.
Fragmentação de tabelas: Operações INSERT simultâneas durante a sincronização completa causam fragmentação nas tabelas de destino, tornando o tablespace de destino maior que o da source.
Operações DDL em tabelas selecionadas: Se você selecionar tabelas específicas (e não um banco de dados inteiro) como objetos de sincronização, não utilize pt-online-schema-change ou ferramentas similares durante a sincronização. Em vez disso, utilize as operações DDL sem bloqueio do DMS.
Gravações no banco de dados de destino: Utilize apenas o DTS para gravar no destino durante a sincronização. Se outras ferramentas gravarem no destino, não use o DMS para operações DDL online, pois pode ocorrer perda de dados.
Falha de DDL no destino: Se instruções DDL falharem no destino, a tarefa do DTS continuará em execução. Consulte os logs da tarefa para obter detalhes.
Nomes de colunas sem distinção entre maiúsculas e minúsculas: Os nomes das colunas no MySQL não diferenciam maiúsculas de minúsculas. Se várias colunas da source diferirem apenas pela capitalização, seus dados serão gravados na mesma coluna de destino, o que pode gerar resultados inesperados.
Verificação pós-sincronização: Depois que o Status da tarefa mudar para Completed, execute
analyze table <Table name>para verificar os dados na tabela de destino. Se ocorrer um failover de HA na instância MySQL de source, os dados podem existir apenas na memória, causando perda de dados.
Procedimento
Etapa 1: Abrir a página de sincronização de dados
Acesse a página Data Synchronization e selecione a região da instância de sincronização de dados.
Console do DTS
Faça login no console do DTS.
No painel de navegação à esquerda, clique em Data Synchronization.
No canto superior esquerdo da página, selecione a região onde a instância de sincronização de dados está localizada.
Console do DMS
As operações podem variar conforme o modo e o layout do console do DMS. Modo simples . 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 de dados está localizada.
Etapa 2: Configurar os bancos de dados de source e de destino
Clique em Create Task.
Configure os bancos de dados de source e de destino com os seguintes parâmetros.
Configurações da tarefa
|
Parâmetro |
Descrição |
|
Task Name |
O DTS gera automaticamente um nome para a tarefa. Especifique um nome descritivo para identificar a tarefa. O nome não precisa ser único. |
Banco de dados de source
|
Parâmetro |
Descrição |
|
Select Existing Connection |
Opcional. Selecionar um banco de dados existente preenche automaticamente os parâmetros de conexão. Se nenhuma instância de banco de dados do DMS estiver registrada, ignore esta opção. |
|
Database Type |
Selecione MariaDB. |
|
Access Method |
Selecione Alibaba Cloud Instance. |
|
Instance Region |
A região da instância RDS MariaDB TX de source. |
|
Replicate Data Across Alibaba Cloud Accounts |
Indica se deve sincronizar entre contas da Alibaba Cloud. Neste exemplo, selecione No. |
|
Instance ID |
O ID da instância RDS MariaDB TX de source. |
|
Database Account |
A conta do banco de dados da instância de source. Para as permissões necessárias, consulte Permissões necessárias para contas de banco de dados. |
|
Database Password |
A senha da conta do banco de dados. |
|
Encryption |
Indica se deve criptografar a conexão com o banco de dados de source. Neste exemplo, selecione Non-encrypted. |
Banco de dados de destino
|
Parâmetro |
Descrição |
|
Select Existing Connection |
Opcional. Selecionar um banco de dados existente preenche automaticamente os parâmetros de conexão. Se nenhuma instância de banco de dados do DMS estiver registrada, ignore esta opção. |
|
Database Type |
Selecione MySQL. |
|
Access Method |
Selecione Alibaba Cloud Instance. |
|
Instance Region |
A região da instância RDS MySQL de destino. |
|
Replicate Data Across Alibaba Cloud Accounts |
Indica se deve sincronizar entre contas da Alibaba Cloud. Neste exemplo, selecione No. |
|
RDS Instance ID |
O ID da instância RDS MySQL de destino. |
|
Database Account |
A conta do banco de dados da instância de destino. Para as permissões necessárias, consulte Permissões necessárias para contas de banco de dados. |
|
Database Password |
A senha da conta do banco de dados. |
|
Encryption |
Indica se deve criptografar a conexão. Selecione Non-encrypted ou SSL-encrypted conforme suas necessidades. Para usar SSL-encrypted, primeiro ative a criptografia SSL na instância RDS MySQL. |
Clique em Test Connectivity and Proceed.
O DTS adiciona automaticamente os blocos CIDR dos servidores do DTS à lista de permissões das instâncias de banco de dados da Alibaba Cloud (como instâncias ApsaraDB RDS for MySQL ou ApsaraDB for MongoDB). Para bancos de dados autogerenciados hospedados em instâncias Elastic Compute Service (ECS), o DTS adiciona automaticamente os blocos CIDR às regras do grupo de segurança da instância ECS. Certifique-se de que a instância ECS possa acessar o banco de dados. Se o banco de dados estiver implantado em várias instâncias ECS, adicione manualmente os blocos CIDR dos servidores do DTS às regras do grupo de segurança de cada instância ECS. Para bancos de dados autogerenciados em um data center ou de um provedor de nuvem terceirizado, adicione manualmente os blocos CIDR à lista de permissões do banco de dados. Blocos CIDR dos servidores do DTS. Adicionar blocos CIDR dos servidores do DTS à lista de permissões, às regras do grupo de segurança da instância ou às regras do grupo de segurança do ECS introduz riscos de segurança. Antes de usar o DTS, tome medidas preventivas, incluindo, mas não se limitando a: fortalecer a segurança de nomes de usuário e senhas, limitar portas expostas, autenticar chamadas de API, revisar regularmente a lista de permissões ou as regras do grupo de segurança do ECS e remover blocos CIDR não autorizados, ou conectar o banco de dados ao DTS por meio do Express Connect, VPN Gateway ou Smart Access Gateway.
Etapa 3: Selecionar objetos e definir configurações de sincronização
Configure os objetos de sincronização e as configurações avançadas.
|
Parâmetro |
Descrição |
|
Synchronization Types |
Por padrão, a Incremental Data Synchronization vem selecionada. Selecione também Schema Synchronization e Full Data Synchronization. Após a pré-verificação, o DTS sincroniza os dados históricos da source para o destino como base para a sincronização incremental. |
|
Method to Migrate Triggers in Source Database |
O método para sincronizar triggers. Ignore esta opção se não houver triggers a serem sincronizados. Sincronizar ou migrar triggers do banco de dados de source. Disponível apenas quando Schema Synchronization estiver selecionado. |
|
Processing Mode of Conflicting Tables |
Define como lidar com tabelas de nomes idênticos na source e no destino. Precheck and Report Errors: Relata um erro para nomes de tabelas duplicados. Resolva conflitos usando o mapeamento de nomes de objetos para renomear as tabelas de destino. Ignore Errors and Proceed: Ignora as verificações de nomes duplicados. Durante a sincronização completa, registros com chaves primárias duplicadas são ignorados. Na sincronização incremental, tais registros sobrescrevem os existentes. Incompatibilidades de schema podem causar falha na inicialização ou sincronização parcial. |
|
Source Objects |
Selecione objetos na seção Source Objects e clique no ícone de seta para a direita para adicioná-los aos Selected Objects. É possível selecionar bancos de dados, tabelas ou colunas. |
|
Selected Objects |
Para renomear um objeto na instância de destino, clique com o botão direito nele na seção Selected Objects. Mapear o nome de um único objeto. Para renomear em lote, clique em Batch Edit no canto superior direito da seção Selected Objects. Mapear vários nomes de objetos de uma vez. Para selecionar operações SQL específicas para um banco de dados ou tabela, clique com o botão direito no objeto na seção Selected Objects. Operações SQL suportadas para sincronização incremental. Para filtrar dados com condições WHERE, clique com o botão direito em uma tabela na seção Selected Objects. Especificar condições de filtro. Renomear objetos com mapeamento de nomes pode fazer com que objetos dependentes falhem na sincronização. |
Etapa 4: Configurar definições avançadas
Clique em Next: Advanced Settings e configure os seguintes parâmetros.
|
Parâmetro |
Descrição |
|
Dedicated Cluster for Task Scheduling |
Por padrão, o DTS agenda tarefas em um cluster compartilhado. Para melhorar a estabilidade, adquira um cluster dedicado do DTS. |
|
Monitoring and Alerting |
Define se deve configurar alertas para a tarefa. Se a tarefa falhar ou a latência de sincronização exceder o limiar, os contatos de alerta receberão notificações. Selecione No para desativar alertas ou Yes para configurar limiares e notificações. Configurar monitoramento e alertas ao criar uma tarefa do DTS. |
|
Retry Time for Failed Connections |
A duração da nova tentativa quando a conexão com o banco de dados de source ou de destino falha. Valores válidos: 10 a 1440 minutos. Padrão: 720 (deve ser maior que 30). Se o DTS reconectar dentro da duração especificada, a tarefa será retomada; caso contrário, a tarefa falhará. Quando várias tarefas compartilham a mesma source ou destino, a menor duração de nova tentativa tem precedência. O DTS cobra durante a nova tentativa. Libere a instância prontamente após a liberação da source e do destino. |
|
Retry Time for Other Issues |
A duração da nova tentativa quando operações DDL ou DML falham. Valores válidos: 1 a 1440 minutos. Padrão: 10 (deve ser maior que 10). Se as operações forem bem-sucedidas dentro dessa duração, a tarefa será retomada; caso contrário, a tarefa falhará. Deve ser menor que Retry Time for Failed Connections. |
|
Enable Throttling for Full Data Synchronization |
Limita a sincronização completa de dados para reduzir a carga nos servidores de banco de dados. Configure os parâmetros Queries per second (QPS) to the source database, RPS of Full Data Migration e Data migration speed for full migration (MB/s). Este parâmetro está disponível apenas quando Full Data Synchronization estiver selecionado. |
|
Enable Throttling for Incremental Data Synchronization |
Define se deve limitar a sincronização incremental de dados. Configure os parâmetros RPS of Incremental Data Synchronization e Data synchronization speed for incremental synchronization (MB/s) para reduzir a carga no servidor do banco de dados de destino. |
|
Environment Tag |
A tag de ambiente para identificar a instância do DTS. Selecione uma tag conforme suas necessidades. |
|
Configure ETL |
Define se deve ativar o ETL para processamento de dados. Selecione Yes para inserir instruções de processamento de dados. Configurar ETL em uma tarefa de migração ou sincronização de dados. Selecione No para ignorar o ETL. O que é ETL? |
Etapa 5: Executar a pré-verificação e adquirir a instância
-
Clique em Next: Save Task Settings and Precheck.
Para visualizar os parâmetros da operação de API relevante, passe o mouse sobre Next: Save Task Settings and Precheck e clique em Preview OpenAPI parameters .
-
Aguarde a conclusão da pré-verificação. O DTS realiza uma pré-verificação antes que a tarefa de sincronização possa ser iniciada.
Se a pré-verificação falhar, clique em View Details ao lado de cada item com falha. Analise as causas com base nos resultados da verificação e corrija os problemas. Em seguida, execute a pré-verificação novamente.
-
Se um alerta for acionado para um item:
Se o alerta não puder ser ignorado, clique em View Details e solucione o problema. Em seguida, execute a pré-verificação novamente.
Se o alerta puder ser ignorado, clique em Confirm Alert Details. Na caixa de diálogo View Details, clique em Ignore e, em seguida, clique em OK. Clique em Precheck Again para executar a pré-verificação novamente. Ignorar alertas pode causar inconsistência de dados e riscos potenciais.
Aguarde até que a Success Rate atinja 100%. Em seguida, clique em Next: Purchase Instance.
-
Na página de compra, configure os seguintes parâmetros.
New Instance Class
Parâmetro
Descrição
Billing Method
Subscription: Pagamento antecipado. Mais econômico para uso de longo prazo. Pay-as-you-go: Faturamento por hora. Adequado para uso de curto prazo. Libere a instância quando não for mais necessária. Pay-as-you-go Serverless: Faturamento com base no uso real com dimensionamento automático.
Resource Group Settings
O grupo de recursos para a instância de sincronização de dados. Valor padrão: default resource group. O que é Resource Management?
Instance Class
O DTS fornece classes de instância com diferentes velocidades de sincronização. Selecione uma classe conforme suas necessidades. Classes de instância de instâncias de sincronização de dados.
Subscription Duration
Se você selecionar o método de faturamento Subscription, especifique a duração da assinatura: 1 a 9 meses, ou 1, 2, 3 ou 5 anos.
DTS Insight
Parâmetro
Descrição
DTS Insight
Define se deve ativar o DTS Insight para diagnósticos inteligentes. Selecione uma opção conforme suas necessidades.
Leia e selecione Data Transmission Service (Pay-as-you-go) Service Terms.
Clique em Buy and Start para salvar a tarefa e iniciá-la imediatamente, ou clique em Buy and Save para salvar a tarefa sem iniciá-la. Na caixa de diálogo exibida, clique em OK.
A tarefa aparece na lista de tarefas, onde você pode monitorar seu progresso.