O Data Transmission Service (DTS) permite sincronizar dados em tempo real de uma instância PolarDB-X 2.0 para uma instância Tablestore. O DTS oferece suporte à sincronização de esquema, à sincronização completa de dados e à sincronização incremental de dados (INSERT, UPDATE, DELETE), mantendo uma cópia continuamente atualizada dos dados de origem no Tablestore.
Pré-requisitos
Antes de começar, verifique se você tem:
Uma instância Tablestore. Para obter instruções, consulte Ativar o Tablestore e criar uma instância.
O AccessKey ID e o AccessKey secret da conta Alibaba Cloud proprietária da instância Tablestore. Para obter instruções, consulte Criar um par de AccessKey para uma conta Alibaba Cloud.
Faturamento
|
Tipo de sincronização |
Preço |
|
Sincronização de esquema e sincronização completa de dados |
Gratuito |
|
Sincronização incremental de dados |
Pago. Para mais detalhes, consulte Visão geral do faturamento. |
Operações SQL compatíveis com sincronização incremental
|
Tipo de operação |
Instrução SQL |
|
DML |
INSERT, UPDATE, DELETE |
Limitações
Analise estas limitações antes de criar uma tarefa de sincronização.
Limites do banco de dados de origem
As tabelas devem ter uma chave primária ou uma restrição única com campos exclusivos. Caso contrário, o banco de dados de destino poderá conter registros duplicados.
Instâncias somente leitura do PolarDB-X 2.0 Enterprise Edition não são compatíveis como origem.
Se você sincronizar no nível de tabela com edição de objetos (como mapeamento de nomes de colunas) e uma única tarefa incluir mais de 5.000 tabelas, divida a tarefa ou configure-a para sincronizar todo o banco de dados.
Se o nome de uma tabela de origem contiver letras maiúsculas, apenas a sincronização de esquema será compatível para essa tabela.
O Binlog é ativado por padrão no PolarDB-X 2.0. Certifique-se de que o parâmetro
binlog_row_imageesteja definido comofull. Para obter instruções, consulte Configurações de parâmetros. Se esse parâmetro não estiver configurado corretamente, a pré-verificação falhará e a tarefa não poderá ser iniciada.Grupos de tabelas e bancos de dados ou tabelas com a propriedade Locality não são compatíveis.
Tabelas cujos nomes são palavras reservadas (como
select) não são compatíveis.-
Não execute operações DDL que alterem esquemas de banco de dados ou tabelas durante a sincronização de esquema ou a sincronização completa de dados. Isso causa falha na tarefa de sincronização.
Nota
Durante a sincronização completa de dados, o DTS consulta o banco de dados de origem, criando bloqueios de metadados que podem impedir operações DDL nesse banco.
Partições de banco de dados no modo DRDS no PolarDB-X 2.0 não podem ser sincronizadas.
Outros limites
Avalie o desempenho dos bancos de dados de origem e de destino antes de iniciar a sincronização. Execute tarefas de sincronização fora dos horários de pico. A sincronização completa inicial de dados consome recursos de leitura e gravação em ambos os bancos, aumentando a carga sobre eles.
A sincronização completa inicial executa operações INSERT simultâneas, causando fragmentação de tabelas no Tablestore. Como resultado, o espaço de tabela da instância Tablestore será maior que o da instância de origem após a conclusão da sincronização completa inicial.
Não grave dados no banco de dados de destino a partir de fontes diferentes do DTS durante a sincronização. Isso pode causar inconsistência de dados entre origem e destino.
O número de tabelas a sincronizar não deve exceder o limite de 64 da instância Tablestore. Para sincronizar mais de 64 tabelas, entre em contato com o suporte do Tablestore para aumentar esse limite.
-
Os nomes de tabelas e colunas devem seguir as convenções de nomenclatura do Tablestore:
Os nomes podem conter letras maiúsculas, minúsculas, dígitos e sublinhados (
_) e devem começar com uma letra ou um sublinhado.Os nomes devem ter entre 1 e 255 caracteres.
Se uma tarefa falhar, a equipe de suporte do DTS tentará restaurá-la em até 8 horas. Durante a restauração, a equipe pode reiniciar a tarefa ou ajustar parâmetros da tarefa do DTS — não parâmetros do banco de dados. Para visualizar os parâmetros ajustáveis, consulte Modificar parâmetros da instância.
Criar uma tarefa de sincronização
O processo completo de configuração consiste nas seguintes etapas:
Acesse a lista de tarefas de Data Synchronization.
Configure os bancos de dados de origem e de destino.
Configure os objetos de sincronização e as configurações de gravação do Tablestore.
Defina as configurações avançadas.
Configure as colunas de chave primária.
Execute a pré-verificação e adquira a instância.
Etapa 1: Acessar a lista de tarefas de Data Synchronization
Abra a lista de tarefas usando o console do DTS ou o console do DMS.
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 instância de sincronização estará localizada.
Console do DMS
Nota
As etapas exatas podem variar dependendo do modo e do layout do console do DMS. Para mais detalhes, consulte Console do modo simples e Personalizar o layout e o estilo do console do DMS.
Faça login no console do DMS.console do DMS
Na barra de menu superior, escolha Data + AI > DTS (DTS) > Data Synchronization.
À direita de Data Synchronization Tasks, selecione a região da instância de sincronização.
Etapa 2: Configurar os bancos de dados de origem e de destino
Clique em Create Task.
Insira um Task Name. O DTS gera um nome automaticamente, mas um nome descritivo facilita a identificação. O nome não precisa ser único.
-
Configure o banco de dados de origem.
Parâmetro Descrição Select Existing Connection Selecione uma instância de banco de dados registrada na lista suspensa para preencher automaticamente as configurações abaixo. Se você não registrou a instância ou prefere configurá-la manualmente, ignore este campo. NotaNo console do DMS, este campo é rotulado como 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 (este exemplo usa a mesma conta Alibaba Cloud). Instance ID Selecione o ID da instância PolarDB-X 2.0 de origem. Database Account Insira a conta do banco de dados para a instância de origem. A conta deve ter as permissões REPLICATION SLAVE, REPLICATION CLIENT e SELECT nos objetos a sincronizar. Para obter instruções sobre como conceder permissões, consulte Gerenciar contas de banco de dados e Permissões de conta necessárias para sincronização de dados. Database Password Insira a senha da conta do banco de dados. -
Configure o banco de dados de destino.
Parâmetro Descrição Select Existing Connection Selecione uma instância de banco de dados registrada na lista suspensa para preencher automaticamente as configurações abaixo. Se você não registrou a instância ou prefere configurá-la manualmente, ignore este campo. NotaNo console do DMS, este campo é rotulado como Select a DMS database instance.
Database Type Selecione Tablestore. Access Method Selecione Alibaba Cloud Instance. Instance Region Selecione a região onde a instância Tablestore de destino está localizada. Instance ID Selecione o nome da instância Tablestore de destino. AccessKey ID of Alibaba Cloud Account Insira o AccessKey ID da conta Alibaba Cloud proprietária da instância Tablestore. Esse dado é usado para verificação de identidade. ImportanteSe você inserir o AccessKey ID de um usuário RAM, a tarefa poderá falhar devido a permissões insuficientes.
AccessKey Secret of Alibaba Cloud Account Insira o AccessKey secret da conta Alibaba Cloud. -
Clique em Test Connectivity and Proceed na parte inferior da página.
Nota
Certifique-se de que os blocos de endereços IP do servidor DTS foram adicionados às configurações de segurança dos seus bancos de dados de origem e de destino — automática ou manualmente — antes de testar a conectividade. Para obter instruções, consulte Adicionar a lista de permissões de endereços IP dos servidores DTS.
Etapa 3: Configurar objetos de sincronização e configurações de gravação
Na página Configure Objects, defina as seguintes configurações.
Synchronization scope
|
Parâmetro |
Descrição |
|
Synchronization Types |
O DTS sempre ativa a Incremental Data Synchronization, que aplica continuamente as alterações em andamento da origem para o destino. Por padrão, a Schema Synchronization e a Full Data Synchronization também vêm selecionadas — o DTS primeiro copia todos os dados dos objetos selecionados para inicializar o destino e depois muda para a sincronização incremental. |
|
Operation Types |
Selecione os tipos de operação DML a sincronizar. INSERT, UPDATE e DELETE vêm selecionados por padrão. |
Tratamento de conflitos
| Parâmetro | Descrição |
|---|---|
| Processing Mode of Conflicting Tables | Controla como o DTS lida com conflitos de nomes entre tabelas de origem e de destino. Precheck and Report Errors: O DTS verifica conflitos de nomes antes do início da tarefa. Se houver conflitos, um erro será relatado e a tarefa não será iniciada. Para resolver conflitos sem renomear as tabelas de destino, mapeie-as para nomes diferentes — consulte Mapeamento de nomes de colunas de tabelas de banco de dados. Ignore Errors and Proceed: O DTS ignora a verificação de conflitos. Aviso
Isso pode causar inconsistência de dados. Durante a sincronização completa de dados, o DTS ignora registros de origem que entram em conflito com registros existentes no destino (mesma chave primária ou única). Durante a sincronização incremental, o DTS substitui os registros de destino pelos registros de origem. Se os esquemas das tabelas forem inconsistentes, a inicialização poderá falhar ou resultar em sincronização parcial. Use com cautela. |
| Processing Policy of Dirty Data | Controla como o DTS lida com erros de gravação de dados. Skip: Ignora registros com falha na gravação. Block: Interrompe a tarefa quando ocorre um erro de gravação. |
Configurações de gravação do Tablestore
|
Parâmetro |
Descrição |
|
Data Write Mode |
Controla como o DTS grava linhas no Tablestore. Overwrite Row: Usa |
|
Batch Write Mode |
API usada para gravações em lote. BulkImportRequest (recomendado): Modo de gravação offline com maior eficiência de leitura e gravação e menores custos de faturamento do Tablestore. BatchWriteRowRequest: Modo padrão de gravação em lote. |
|
More (opcional) |
Expanda para configurar parâmetros avançados de desempenho de gravação: Queue Size (tamanho da fila de gravação), Thread Quantity (threads do manipulador de callback), Concurrency (limite de solicitações simultâneas) e Buckets (buckets simultâneos para gravação sequencial de dados incrementais — aumentar esse valor melhora o desempenho de gravação simultânea, mas não deve exceder Concurrency). |
Seleção e mapeamento de objetos
| Parâmetro | Descrição |
|---|---|
| Capitalization of Object Names in Destination Instance | Política de uso de maiúsculas e minúsculas para nomes de bancos de dados, tabelas e colunas no destino. A DTS default policy vem selecionada por padrão. Para mais detalhes, consulte Política de uso de maiúsculas e minúsculas para nomes de objetos de destino. |
| Source Objects | Na caixa Source Objects, clique nos objetos a sincronizar e, em seguida, clique no ícone de seta para movê-los para a caixa Selected Objects. Você pode selecionar bancos de dados inteiros ou tabelas individuais. Selecionar tabelas não sincroniza visualizações, gatilhos ou procedimentos armazenados. É possível sincronizar tabelas de apenas um único banco de dados por tarefa. |
| Selected Objects | Para renomear um objeto no destino, clique com o botão direito nele na caixa Selected Objects. Para detalhes sobre renomeação individual ou em massa, consulte Mapear nomes de objetos. Ao usar o mapeamento de nomes de colunas, você também pode alterar o tipo de dados da coluna correspondente na instância Tablestore de destino. Para filtrar linhas, clique com o botão direito em uma tabela e defina uma cláusula WHERE. Para mais detalhes, consulte Definir condições de filtro. Nota
O mapeamento de nomes de bancos de dados não é compatível. O mapeamento de tabelas e colunas está disponível apenas quando você seleciona tabelas (não bancos de dados inteiros) como objetos de sincronização. |
Etapa 4: Definir configuraçõ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 usa um cluster compartilhado. Para melhorar a estabilidade da tarefa, adquira um cluster dedicado. Para mais detalhes, 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 com a origem ou o destino. Padrão: 720 minutos. Intervalo: 10–1.440 minutos. Defina este valor como 30 minutos ou mais. Se a conexão for restaurada dentro desse período, a tarefa será retomada automaticamente. Nota
Se várias instâncias do DTS compartilharem uma origem ou destino, o DTS aplicará a menor duração de nova tentativa configurada entre todas elas. O DTS cobra pelo tempo de execução da tarefa durante as novas tentativas de conexão. |
| Retry Time for Other Issues | Tempo durante o qual o DTS tenta novamente após um erro que não seja de conexão (como um erro de execução DDL ou DML). Padrão: 10 minutos. Intervalo: 1–1.440 minutos. Defina este valor como 10 minutos ou mais. Importante
Este valor deve ser menor que Retry Time for Failed Connections. |
| Enable Throttling for Full Data Synchronization | Limite a taxa de sincronização completa de dados para reduzir a carga nos seus bancos 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). Este parâmetro está disponível apenas quando a Full Data Synchronization estiver selecionada. Você também pode ajustar a taxa após o início da tarefa. |
| Enable Throttling for Incremental Data Synchronization | Limite a taxa de sincronização incremental configurando 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 SQL de heartbeat no banco de dados de origem. Yesnotificações de alerta: Não grava SQL de heartbeat. A instância do DTS pode apresentar latência mais alta. No: Grava SQL de heartbeat no banco de dados de origem. Isso pode interferir em operações como backups físicos e clonagem de bancos de dados. |
| Environment Tag | Opcionalmente, selecione uma tag para identificar esta instância. |
| Configure ETL | O ETL não é compatível com este caminho de sincronização. Selecione No. |
| Monitoring and Alerting | Configure alertas para falhas de tarefas ou latência que exceda um limiar. No: Sem alertas. Yes: Configure limiares de alerta e destinatários. Para mais detalhes, consulte Configurar monitoramento e alertas. |
Etapa 5: Configurar colunas de chave primária
Clique em Next: Configure Database and Table Fields e, em seguida, clique em OK na caixa de diálogo exibida.
O DTS define a chave primária de cada tabela de origem como a Primary Key Column por padrão. Para modificar isso, defina Definition Status como All.
Você pode selecionar várias colunas para formar uma chave primária composta.
Etapa 6: Executar a pré-verificação e adquirir a instância
Para visualizar os parâmetros da API desta configuração, passe o mouse sobre Next: Save Task Settings and Precheck e clique em Preview OpenAPI parameters na dica de ferramenta.
-
Clique em Next: Save Task Settings and Precheck. O DTS executa uma pré-verificação antes de iniciar a tarefa. A tarefa só pode começar após a aprovação na pré-verificação.
Se a pré-verificação falhar, clique em View Details ao lado do item com falha, corrija o problema conforme instruído e execute a pré-verificação novamente.
-
Se a pré-verificação gerar avisos:
Para avisos não ignoráveis, clique em View Details, corrija o problema e execute a pré-verificação novamente.
Para avisos ignoráveis, clique em Confirm Alert Details > Ignore > OK e, em seguida, clique em Precheck Again. Ignorar avisos de pré-verificação pode causar inconsistência de dados. Prossiga com cautela.
Quando a Success Rate atingir 100%, clique em Next: Purchase Instance.
-
Na página Purchase, selecione o método de faturamento e as especificações da instância.
Parâmetro
Descrição
Billing Method
Subscription: Pague antecipadamente por uma duração fixa. Ideal para tarefas de sincronização contínuas e de longo prazo. Pagamento conforme o uso: Faturado por hora com base no uso real. Ideal para tarefas de curto prazo ou de teste — libere a instância a qualquer momento para interromper o faturamento.
Resource Group Settings
Grupo de recursos para esta instância. O padrão é o default resource group. Para mais detalhes, consulte O que é o Resource Management?
Instance Class
Especificações diferentes oferecem níveis distintos de throughput de sincronização. Selecione com base nos requisitos da sua carga de trabalho. Para mais detalhes, consulte Especificações do link de sincronização de dados.
Subscription Duration
Disponível apenas para o faturamento por Subscription. Opções mensais: 1–9 meses. Opções anuais: 1, 2, 3 ou 5 anos.
Leia e marque a caixa de seleção dos 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 de confirmação.
Monitore o progresso da tarefa na página Data Synchronization.