O Data Transmission Service (DTS) permite sincronizar dados de uma instância PolarDB-X 2.0 para uma instância PolarDB-X 1.0, com suporte a sincronização completa e incremental de dados.
Este recurso está em fase de testes beta e disponível apenas para alguns usuários.
Neste tópico, você aprenderá a:
Revisar os pré-requisitos e limitações antes de começar
Conceder as permissões necessárias às contas de banco de dados
Configurar uma tarefa de sincronização do DTS
Executar a pré-verificação e adquirir a instância de sincronização
Pré-requisitos
Antes de iniciar, certifique-se de ter:
Uma instância PolarDB-X 1.0 de destino com espaço de armazenamento superior ao volume de dados a ser sincronizado da instância PolarDB-X 2.0 de origem. Consulte Crie uma instância PolarDB-X 1.0.
Um banco de dados e tabelas criados na instância de destino para receber os dados sincronizados. Consulte Crie um banco de dadosCrie um banco de dados e Execute operações SQL básicas.
Os nomes do banco de dados e das tabelas na instância de destino devem corresponder aos da instância PolarDB-X 2.0 de origem. Caso haja diferença, utilize o recurso de mapeamento de nomes de objetos na caixa Selected Objects , na página Configure Objects , durante a configuração da tarefa.
Faturamento
|
Tipo de sincronização |
Custo |
|
Sincronização completa de dados |
Gratuito |
|
Sincronização incremental de dados |
Pago. Consulte Visão geral do faturamento. |
Limitações
Limites do banco de dados de origem
Largura de banda: O servidor que hospeda o banco de dados de origem precisa ter largura de banda de saída suficiente. A falta de capacidade reduz a velocidade de sincronização.
Instâncias somente leitura: Instâncias somente leitura do PolarDB-X 2.0 Enterprise Edition não podem ser usadas como origem.
-
Restrições de nomenclatura de tabelas:
Tabelas com letras maiúsculas no nome não são sincronizadas.
Tabelas cujos nomes são palavras reservadas (por exemplo,
select) não são sincronizadas.Objetos
TABLEGROUPe bancos de dados ou esquemas que contêm o atributoLocalitynão têm suporte.
Requisito de chave primária: As tabelas devem possuir restrições
PRIMARY KEYouUNIQUEcom todos os campos únicos. Caso contrário, registros duplicados podem surgir no banco de dados de destino.Limite de quantidade de tabelas: Ao selecionar tabelas como objetos de sincronização e precisar renomear tabelas ou colunas no destino, uma única tarefa suporta até 5.000 tabelas. Tarefas que excedem esse limite retornam um erro de solicitação. Divida o trabalho em várias tarefas ou opte pela sincronização no nível do banco de dados.
Configurações de Binlog: O log binário vem habilitado por padrão no PolarDB-X 2.0. Defina o parâmetro
binlog_row_imagecomofull. Se esse parâmetro não estiver definido comofull, a pré-verificação falhará e a tarefa não poderá ser iniciada. Consulte Configurações de parâmetros.-
Operações DDL durante a sincronização completa: Não execute operações DDL que alterem o esquema do banco de dados ou das tabelas durante a sincronização completa de dados, pois isso pode causar falha na tarefa.
Durante a sincronização completa de dados, o DTS consulta o banco de dados de origem. Isso gera bloqueios de metadados que podem impedir a execução de operações DDL no banco de dados de origem.
Alterações de rede: Mudanças na configuração de rede da instância PolarDB-X 2.0 podem causar latência temporária na instância de sincronização.
Outros limites
-
Latência de heartbeat: O DTS executa periodicamente o comando
CREATE DATABASE IF NOT EXISTS \no banco de dados de origem para gravar dados de heartbeat e avançar o offset do Binlog. Se a opção Whether to delete SQL operations on heartbeat tables of forward and reverse tasks estiver definida como Yesconfigurações de notificação de alerta (ou se a conta de banco de dados usada pela instância de sincronização não tiver permissão para criar bancos de dados), e nenhuma operação DML for executada no banco de dados de origem por um longo período, a latência exibida pode ser imprecisa.Para atualizar a latência, execute uma operação DML no banco de dados de origem.
Carga do banco de dados durante a sincronização completa: A sincronização completa de dados consome recursos de leitura e gravação tanto no banco de dados de origem quanto no de destino. Avalie o desempenho dos bancos de dados antes de iniciar e execute a sincronização em horários de baixa demanda, quando a carga de CPU em ambos os bancos estiver abaixo de 30%.
Fragmentação de armazenamento: Durante a inicialização completa, o DTS executa operações INSERT simultâneas, o que pode causar fragmentação de tabelas no banco de dados de destino. Após a conclusão da inicialização completa, o espaço de armazenamento utilizado pelas tabelas de destino será maior do que o das tabelas de origem.
Gravações externas: Se dados forem gravados no banco de dados de destino por outras fontes além do DTS enquanto a instância de sincronização estiver em execução, pode ocorrer inconsistência de dados entre a origem e o destino, levando à falha da instância de sincronização.
-
Recuperação de instância: Em caso de falha na instância, o suporte do DTS tentará recuperá-la dentro de 8 horas. A recuperação pode envolver a reinicialização da instância ou o ajuste de parâmetros.
Apenas os parâmetros da instância DTS são modificados durante a recuperação. Os parâmetros do banco de dados não são alterados. Para obter a lista de parâmetros que podem ser modificados, consulte Modifique parâmetros da instância .
Operações SQL suportadas para sincronização incremental
|
Tipo de operação |
Instruções SQL |
|
DML |
INSERT, UPDATE, DELETE |
|
DDL |
CREATE TABLE, RENAME TABLE, ALTER TABLE, TRUNCATE TABLE, DROP TABLE, CREATE INDEX, DROP INDEX |
Observações sobre a sincronização DDL:
Apenas operações CREATE TABLE para tabelas individuais têm suporte. CREATE TABLE para bancos de dados e tabelas fragmentados não é suportado.
Se a origem for uma instância PolarDB-X 2.0 Enterprise Edition, as operações CREATE INDEX não poderão ser sincronizadas.
RENAME TABLE pode causar inconsistência de dados. Se você selecionar uma tabela como objeto de sincronização e renomeá-la durante o processo, os dados dessa tabela deixarão de ser sincronizados para o destino. Para evitar isso, adicione o banco de dados que contém a tabela à lista de objetos de sincronização — inclua tanto o banco anterior quanto o posterior à renomeação.
Permissões necessárias para contas de banco de dados
|
Banco de dados |
Permissões necessárias |
Referência |
|
Instância PolarDB-X 2.0 de origem |
REPLICATION SLAVE, REPLICATION CLIENT e SELECT nos objetos a serem sincronizados |
Gerencie contas de banco de dados e Problemas de permissão de conta durante a sincronização de dados |
|
Instância PolarDB-X 1.0 de destino |
Permissões de leitura e gravação |
Crie uma tarefa de sincronização
Etapa 1: Acesse a página Data Synchronization
Utilize um dos métodos a seguir para abrir a página Data Synchronization.
Console do DTS
Faça login no console do DTS.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
As etapas abaixo podem variar conforme o modo e o layout do seu console DMS. Consulte Modo simples e Personalizar o layout e o estilo do console DMS.
Faça login no console do DMS.Console do DMS
Na barra de navegação superior, passe o ponteiro sobre Data + AI e escolha DTS (DTS) > Data Synchronization.
Na lista suspensa ao lado de Data Synchronization Tasks, selecione a região onde a instância de sincronização reside.
Etapa 2: Configurar os bancos de dados de origem e de destino
Clique em Create Task para abrir a página de configuração da tarefa.
Configure os bancos de dados de origem e de destino utilizando os parâmetros abaixo.
Banco de dados de origem
|
Parâmetro |
Descrição |
|
Task Name |
Nome da tarefa DTS. O DTS gera um nome automaticamente. Especifique um nome descritivo para facilitar a identificação da tarefa. O nome não precisa ser único. |
|
Select Existing Connection |
Se você possui uma instância de banco de dados registrada no DTS, selecione-a na lista suspensa. O DTS preencherá automaticamente os parâmetros de conexão. Caso não esteja usando uma instância registrada, insira os detalhes de conexão manualmente. No console DMS, selecione na lista suspensa Select a DMS database instance. |
|
Database Type |
Selecione PolarDB-X 2.0. |
|
Access Method |
Selecione Alibaba Cloud Instance. |
|
Instance Region |
Selecione a região onde a instância PolarDB-X 2.0 de origem está localizada. |
|
Replicate Data Across Alibaba Cloud Accounts |
Selecione No para usar uma instância na conta Alibaba Cloud atual. |
|
Instance ID |
Selecione o ID da instância PolarDB-X 2.0 de origem. |
|
Database Account |
Insira a conta do banco de dados da instância de origem. Para requisitos de permissão, consulte Permissões necessárias para contas de banco de dados. |
|
Database Password |
Insira a senha da conta do banco de dados. |
Banco de dados de destino
|
Parâmetro |
Descrição |
|
Select Existing Connection |
Se você possui uma instância de banco de dados registrada no DTS, selecione-a na lista suspensa. O DTS preencherá automaticamente os parâmetros de conexão. Caso não esteja usando uma instância registrada, insira os detalhes de conexão manualmente. No console DMS, selecione na lista suspensa Select a DMS database instance. |
|
Database Type |
Selecione PolarDB-X 1.0. |
|
Access Method |
Selecione Alibaba Cloud Instance. |
|
Instance Region |
Selecione a região onde a instância PolarDB-X 1.0 de destino está localizada. |
|
Instance ID |
Selecione o ID da instância PolarDB-X 1.0 de destino. |
|
Database Account |
Insira a conta do banco de dados da instância de destino. Para requisitos de permissão, 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 dos bancos de dados de origem e de destino. Consulte Adicionar endereços IP de servidores DTS a uma lista de permissões .
Etapa 3: Configurar objetos de sincronização
Na página Configure Objects, defina as seguintes configurações.
|
Parâmetro |
Descrição |
|
Synchronization Types |
A opção Incremental Data Synchronization vem selecionada por padrão. Para sincronizar também os dados existentes, adicione Full Data Synchronization. A Schema Synchronization não está disponível para este par origem-destino. Quando a sincronização completa de dados está ativada, o DTS copia os dados históricos da origem para o destino como base para a sincronização incremental subsequente. |
|
Incremental CDC Type |
Selecione um tipo de Change Data Capture (CDC) com base no mecanismo de log da instância PolarDB-X 2.0. O Multi-stream CDC exige que o multi-stream esteja habilitado na instância de origem. |
|
Processing Mode of Conflicting Tables |
Precheck and Report Errors (padrão): O DTS verifica se o banco de dados de destino contém tabelas com os mesmos nomes das da origem. Se houver nomes duplicados, a pré-verificação falhará e a tarefa não poderá ser iniciada. Para lidar com nomes duplicados sem bloquear a tarefa, use o recurso de mapeamento de nomes de objetos para renomear as tabelas de destino. Consulte Mapear nomes de objetos. Ignore Errors and Proceed: ignora a verificação de nomes duplicados. Durante a sincronização completa de dados, os registros existentes no destino são mantidos se compartilharem um valor de chave primária ou única com um registro de origem. Durante a sincronização incremental de dados, os registros de origem sobrescrevem os registros correspondentes no destino. Se a origem e o destino tiverem esquemas diferentes, a inicialização pode falhar ou apenas algumas colunas podem ser sincronizadas. |
|
Capitalization of Object Names in Destination Instance |
É possível configurar a política de diferenciação de maiúsculas e minúsculas para nomes de objetos de banco de dados, tabelas e colunas sincronizados na instância de destino. Por padrão, a DTS default policy está selecionada. Você também pode optar por usar as políticas padrão dos bancos de dados de origem e de destino. Para mais informações, consulte Política de diferenciação de maiúsculas e minúsculas para nomes de objetos de destino. |
|
Source Objects |
Selecione um ou mais objetos e clique no ícone de seta para a direita para adicioná-los à lista Selected Objects. Escolha bancos de dados ou tabelas como objetos a serem sincronizados. |
|
Selected Objects |
Para renomear um objeto de sincronização ou mapeá-lo para um objeto de destino diferente, clique com o botão direito nele e configure o mapeamento de nomes de objetos. Consulte Mapear nomes de objetos. Para remover um objeto, clique nele e depois no ícone de remoção. Para filtrar linhas, clique com o botão direito em uma tabela e especifique as condições WHERE. Consulte Especificar condições de filtro. Para selecionar quais operações SQL serão sincronizadas incrementalmente, clique com o botão direito em um objeto e selecione as operações desejadas. |
Renomear um objeto de sincronização pode fazer com que outros objetos dependentes dele 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 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 antes que a tarefa seja considerada falha. Valores válidos: 10–1440 minutos. Padrão: 720. Recomendamos definir um valor superior a 30. Se o DTS conseguir reconectar dentro da janela especificada, a tarefa será retomada. Caso contrário, a tarefa falhará. Se várias tarefas compartilharem o mesmo banco de dados de origem ou de destino, a menor janela de nova tentativa se aplicará a todas elas. |
| Retry Time for Other Issues | Tempo durante o qual o DTS tenta repetir operações DDL ou DML com falha antes que a tarefa seja considerada falha. Valores válidos: 1–1440 minutos. Padrão: 10. Recomendamos definir um valor superior a 10. Este valor deve ser menor que o valor de Retry Time for Failed Connections. |
| Enable Throttling for Full Data Synchronization | Limita o uso de recursos 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) para reduzir a carga no banco de dados de destino. Disponível apenas quando Full Data Synchronization estiver selecionado. |
| Enable Throttling for Incremental Data Synchronization | Limita o uso de recursos durante a sincronização incremental de dados. Configure RPS of Incremental Data Synchronization e Data synchronization speed for incremental synchronization (MB/s). |
| Whether to delete SQL operations on heartbeat tables of forward and reverse tasks | Controla se o DTS grava operações SQL de heartbeat no banco de dados de origem. Yes: O DTS não grava operações de heartbeat. As informações de latência podem parecer elevadas. No: O DTS grava operações de heartbeat. Isso pode afetar recursos como backup físico e clonagem de banco de dados. |
| Environment Tag | (Opcional) Atribua uma tag para identificar o ambiente da instância. |
| Monitoring and Alerting | No: alertas desativados. Yes: ativa alertas. Especifique um limiar de alerta e as configurações de notificação. Consulte Configurar monitoramento e alertas ao criar uma tarefa DTS. |
Quando o DTS tenta reconectar, a instância de sincronização é cobrada durante o período de nova tentativa. Libere a instância prontamente se as instâncias de origem e de destino não forem mais necessárias.
Etapa 5: Configurar a verificação de dados
Clique em Next Step: Data Verification para configurar a verificação de dados. Consulte Configurar uma tarefa de verificação de dados.
Etapa 6: Execute a pré-verificação e salve a tarefa
Clique em Next: Save Task Settings and Precheck.
Para visualizar os parâmetros da API para configurar esta tarefa programaticamente, passe o ponteiro sobre Next: Save Task Settings and Precheck e clique em Preview OpenAPI parameters .
O DTS executa uma pré-verificação antes que a tarefa possa ser iniciada. Se algum item falhar:
Clique em View Details ao lado do item com falha.
Corrija o problema com base nos resultados da verificação.
Clique em Precheck Again.
Se um alerta for acionado:
Para um alerta que não pode ser ignorado, clique em View Details, corrija o problema e execute a pré-verificação novamente.
Para um alerta que pode ser ignorado, clique em Confirm Alert Details, clique em Ignore na caixa de diálogo, clique em OK e, em seguida, clique em Precheck Again.
Ignorar um item de alerta pode causar inconsistência de dados e expor seu negócio a riscos potenciais.
Etapa 7: Adquirir a instância de sincronização
Aguarde até que a Success Rate atinja 100%, então clique em Next: Purchase Instance.
Na página de compra, configure os seguintes parâmetros.
|
Parâmetro |
Descrição |
|
Billing Method |
Subscription: pagamento antecipado por um período definido. 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 ela 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 |
Selecione uma classe de instância com base na velocidade de sincronização necessária. Consulte Classes de instância de instâncias de sincronização de dados. |
|
Subscription Duration |
Disponível quando Subscription estiver selecionado. Opções: 1–9 meses, 1 ano, 2 anos, 3 anos ou 5 anos. |
Leia e selecione Data Transmission Service (Pay-as-you-go) Service Terms.
Clique em Buy and Start, depois clique em OK na caixa de diálogo.
A tarefa aparecerá na lista de tarefas. Monitore o progresso a partir dela.
Próximos passos
Após o início da tarefa de sincronização:
Monitore o status da tarefa: Verifique regularmente a lista de tarefas para identificar picos de latência ou erros.
Verifique a consistência dos dados: Após a conclusão da inicialização completa, confirme se os dados de destino correspondem aos da origem. Consulte Configurar uma tarefa de verificação de dados.
Evite gravar no destino a partir de outras fontes: Gravações externas no banco de dados de destino durante a sincronização podem causar inconsistência de dados ou falha na tarefa.