O Data Transmission Service (DTS) sincroniza dados em tempo real de um banco de dados Redis auto-gerenciado em uma instância Elastic Compute Service (ECS) para uma instância Tair (compatível com Redis). O DTS usa a replicação PSYNC/SYNC para concluir primeiro uma cópia completa dos dados e, em seguida, aplica continuamente as alterações incrementais. Isso mantém o destino sincronizado sem interromper o banco de dados de origem.
Após configure uma tarefa de sincronização de dados, não altere a arquitetura do banco de dados de origem ou de destino. Essa alteração causa falha na tarefa.
Pré-requisitos
Antes de começar, verifique se você possui:
Uma instância Redis auto-gerenciada execute em uma instância ECS
-
Uma instância Tair (compatível com Redis) usando o modo de conexão direta. Para obter instruções de configuração, consulte Crie uma instância Tair
O DTS oferece suporte apenas a instâncias Tair (compatíveis com Redis) no modo de conexão direta. Para versões compatíveis, consulte Soluções de sincronização .
Espaço de armazenamento na instância de destino superior ao tamanho total dos dados do banco de dados de origem
Para origens com arquitetura de cluster: todos os nós do cluster devem execute o comando
PSYNCe compartilhar a mesma senha de conexãoConta de origem com permissões
PSYNCeSYNC-
Um valor
repl-timeoutde pelo menos 600 segundos na instância de origem. Execute o seguinte comando para defini-lo:config set repl-timeout 600O valor padrão é 60 segundos. Se o banco de dados de origem contiver uma grande quantidade de dados, aumente o valor do parâmetro repl-timeout conforme necessário.
Faturamento
|
Tipo de sincronização |
Taxa |
|
Sincronização completa de dados |
Gratuita |
|
Sincronização incremental de dados |
Cobrada. Consulte Visualize geral do faturamento |
Topologias de sincronização suportadas
Sincronização unidirecional um para um
Sincronização unidirecional um para muitos
Sincronização em cascata unidirecional
Para mais detalhes, consulte Topologias de sincronização.
Operações suportadas
É possível sincronizar as seguintes operações do Redis:
APPENDBITOP,BLPOP,BRPOP,BRPOPLPUSHDECR,DECRBY,DELEVAL,EVALSHA,EXEC,EXPIRE,EXPIREATGEOADD,GETSETHDEL,HINCRBY,HINCRBYFLOAT,HMSET,HSET,HSETNXINCR,INCRBY,INCRBYFLOATLINSERT,LPOP,LPUSH,LPUSHX,LREM,LSET,LTRIMMOVE,MSET,MSETNX,MULTIPERSIST,PEXPIRE,PEXPIREAT,PFADD,PFMERGE,PSETEXRENAME,RENAMENX,RESTORE,RPOP,RPOPLPUSH,RPUSH,RPUSHXSADD,SDIFFSTORE,SELECT,SET,SETBIT,SETEX,SETNX,SETRANGE,SINTERSTORE,SMOVE,SPOP,SREM,SUNIONSTOREZADD,ZINCRBY,ZINTERSTORE,ZREM,ZREMRANGEBYLEX,ZUNIONSTORE,ZREMRANGEBYRANK,ZREMRANGEBYSCORESWAPDB,UNLINK(apenas versão 4.0 do mecanismo de origem)XADD,XCLAIM,XDEL,XAUTOCLAIM,XGROUP CREATECONSUMER,XTRIM
Não é possível sincronizar operações PUBLISH .
SeEVALouEVALSHAchamarem scripts Lua, o DTS não conseguirá confirme se esses scripts foram executados no destino durante a sincronização incremental. O destino não retorna resultados explícitos para scripts Lua.
QuandoSYNCouPSYNCtransferem dadosLIST, o DTS não limpa os dados existentes no destino. Isso pode causar registros duplicados.
Restrições
Restrições do banco de dados de origem
|
Restrição |
Detalhes |
|
Comandos |
Não execute esses comandos durante a sincronização. Eles causam inconsistência de dados entre a origem e o destino. |
|
Parâmetro |
Se configurado, defina-o como o endereço IP privado da instância ECS para permitir a conexão do DTS. |
|
Chave de heartbeat do DTS |
O DTS insere uma chave com o prefixo |
|
Relatório de latência |
A latência pode ser imprecisa se o banco de dados de origem for somente leitura ou se a conta do DTS não tiver permissão de gravação ( |
|
|
Aumente este valor no redis.conf de origem para melhorar a estabilidade da sincronização. |
|
Expiração de chaves |
Chaves com políticas de expiração podem não expirar imediatamente; o destino pode ter menos chaves que a origem. Execute |
|
Basic Edition para cluster (erro CROSSSLOT) |
Um cluster Redis permite que comandos operem apenas em um único slot. Comandos de múltiplas chaves entre slots falham com |
Outras restrições
|
Restrição |
Detalhes |
|
Compatibilidade de versões |
Sincronize de uma versão anterior do Redis para uma versão posterior. A sincronização de uma versão posterior para uma anterior pode causar problemas de compatibilidade. |
|
Dimensionamento da origem durante a sincronização |
Se a instância de origem for dimensionada (shards adicionados ou removidos) ou sua memória for aumentada, reconfigure a tarefa. Limpe todos os dados no destino antes de reconfigurar para manter a consistência. |
|
Alterações de endpoint |
Se a origem ou o destino for uma instância auto-gerenciada e seu endpoint mudar (por exemplo, devido a migração ou failover), a tarefa pode tentar nova execução, apresentar latência ou falhar. Verifique o status da tarefa e reconfigure-a se necessário. |
|
Failover no destino |
Se ocorrer um failover no destino, os dados podem ser gravados apenas na memória sem persistência no banco de dados secundário. Isso pode causar perda de dados. |
|
Carga da sincronização completa |
O DTS utiliza recursos tanto da origem quanto do destino durante a sincronização completa, aumentando a carga do servidor. Para grandes conjuntos de dados, execute a sincronização fora do horário de pico. |
|
|
Não execute esses comandos ao sincronizar entre clusters Redis. Eles causam inconsistência de dados. |
|
Evicção de memória no destino |
A política de evicção padrão ( |
|
Gravações externas no destino |
Não grave dados no destino a partir de nenhuma fonte além do DTS durante a sincronização. Isso causa inconsistência de dados. |
|
OOM no destino cluster |
Se um shard em um destino da edição cluster atingir seu limite de memória, ou se o destino não tiver espaço de armazenamento suficiente, a tarefa falhará com um erro de falta de memória (OOM). |
|
Transparent Data Encryption (TDE) |
Se o TDE estiver ativado no destino, o DTS não poderá sincronizar dados para ele. |
|
Acionadores de ressincronização completa |
Uma ressincronização completa pode ocorrer nestas situações, causando inconsistência de dados: uma falha de conexão transitória impede a retomada por breakpoint; ocorre um failover na origem ou no destino; o endpoint da origem ou do destino muda; ou os objetos de sincronização são modificados. |
|
Criptografia TLS |
Se a criptografia Transport Layer Security (TLS) estiver ativada em uma instância Tair (compatível com Redis OSS), use uma conexão SSL-encrypted. O TLSv1.3 não é suportado. Instâncias com SSL ativado não podem usar o método de acesso Alibaba Cloud Instance. |
|
Reinício de tarefa completa + incremental |
Se a instância de sincronização incluir tarefas completas e incrementais, reiniciá-la pode fazer com que ambas as tarefas sejam executadas novamente desde o início. |
|
Recuperação de instância DTS |
Se a instância DTS falhar, o DTS tentará a recuperação dentro de 8 horas. Durante a recuperação, a instância pode ser reiniciada ou ter seus parâmetros ajustados. Apenas os parâmetros da instância DTS são modificados; os parâmetros do banco de dados não são alterados. Para parâmetros que podem ser modificados, consulte Modifique parâmetros da instância. |
Configure uma tarefa de sincronização
O processo de configuração consiste em cinco etapas: abrir a página de sincronização, configure os bancos de dados de origem e destino, configure os objetos de sincronização, execute a pré-verificação e adquirir a instância.
Etapa 1: Abrir a página de sincronização de dados
Use um dos seguintes métodos para acessar 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 podem variar dependendo do modo e 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.console do DMS
Na barra de navegação superior, passe o mouse 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 reside.
Etapa 2: Configure bancos de dados de origem e destino
Clique em Create Task.
Na página de configuração da tarefa, configure os parâmetros nas tabelas a seguir.
Configurações gerais
|
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 origem
|
Parâmetro |
Descrição |
|
Select Existing Connection |
Se a instância de origem estiver registrada no DTS, selecione-a na lista suspensa. O DTS preencherá automaticamente os parâmetros restantes. Caso contrário, configure os parâmetros abaixo manualmente. No console do DMS, selecione a instância na lista Select a DMS database instance. |
|
Database Type |
Selecione Tair/Redis. |
|
Access Method |
Selecione Self-managed Database On ECS. |
|
Instance Region |
Selecione a região da instância ECS que hospeda o banco de dados Redis de origem. |
|
Cross-Account (Alibaba Cloud) |
Selecione No (mesma conta Alibaba Cloud). |
|
ECS Instance ID |
Selecione o ID da instância ECS onde o banco de dados Redis de origem está em execução. Para origens com arquitetura de cluster, selecione a instância ECS de um nó primário e adicione manualmente os blocos CIDR de IP do servidor DTS da região correspondente às regras de segurança de cada outra instância ECS. Consulte Crie um grupo de segurança, Associar um grupo de segurança a uma instância (ENI primária) e Adicionar os blocos CIDR dos servidores DTS a uma lista de permissões. |
|
Instance Mode |
Selecione Basic Edition ou Cluster com base na arquitetura do Redis de origem. |
|
Port |
Insira a porta de serviço do banco de dados Redis de origem. Padrão: 6379. Para origens em cluster, insira a porta de um nó primário. |
|
Authentication Method |
Selecione o método de autenticação. Este exemplo usa Password Login. Account + Password Login requer Redis 6.0 ou posterior. Para Secret-free login, certifique-se de que o acesso sem senha esteja habilitado no banco de dados. Consulte Ative acesso sem senha. |
|
Database Password |
Insira a senha do banco de dados Redis de origem. Este campo é opcional; deixe-o em branco se nenhuma senha estiver definida. O formato é |
|
Encryption |
Selecione Non-encrypted ou SSL-encrypted. Se SSL-encrypted for selecionado para uma instância não-Alibaba Cloud, faça upload de um CA Certificate e insira uma CA Key. |
Banco de dados de destino
|
Parâmetro |
Descrição |
|
Select Existing Connection |
Se a instância de destino estiver registrada no DTS, selecione-a na lista suspensa. O DTS preencherá automaticamente os parâmetros restantes. Caso contrário, configure os parâmetros abaixo manualmente. No console do DMS, selecione a instância na lista Select a DMS database instance. |
|
Database Type |
Selecione Tair/Redis. |
|
Access Method |
Selecione Cloud Instance. |
|
Instance Region |
Selecione a região da instância Tair (compatível com Redis) de destino. |
|
Replicate Data Across Alibaba Cloud Accounts |
Selecione No (mesma conta Alibaba Cloud). |
|
Instance ID |
Selecione o ID da instância Tair (compatível com Redis) de destino. |
|
Authentication Method |
Selecione o método de autenticação. Este exemplo usa Password Login. Account + Password Login requer Redis 6.0 ou posterior. |
|
Database Password |
Insira a senha da instância Tair (compatível com Redis) de destino. O formato é |
|
Encryption |
Selecione Non-encrypted ou SSL-encrypted com base nos requisitos do seu negócio. Se Access Method não estiver definido como Alibaba Cloud Instance e você selecione SSL-encrypted, será necessário fazer upload de um CA Certificate e inserir uma CA Key. |
-
Clique em Test Connectivity and Proceed.
- Adicione os blocos CIDR do servidor DTS às configurações de segurança dos bancos de dados de origem e de destino. Consulte Adicionar endereços IP do servidor DTS a uma lista de permissões . - Se a origem ou o destino for um banco de dados auto-gerenciado (não Alibaba Cloud Instance ), clique em Test Connectivity na caixa de diálogo CIDR Blocks of DTS Servers .
Etapa 3: Configure objetos de sincronização
Na etapa Configure Objects, defina os seguintes parâmetros.
| Parâmetro | Descrição |
|---|---|
| Synchronization Types | Full Data Synchronization + Incremental Data Synchronization é selecionado por padrão. |
| Processing Mode of Conflicting Tables | Precheck and Report Errors: verifica se existem dados no destino. Se houver dados, a pré-verificação falha e a tarefa não pode iniciar. Ignore Errors and Proceed: ignora a verificação de existência no destino. Aviso Esta opção pode causar perda de dados, pois os dados de origem sobrescrevem as chaves correspondentes no destino. |
| Source Objects | Selecione um ou mais bancos de dados em Source Objects e clique em |
| Selected Objects | Para mapear um banco de dados para um número DB diferente (DB 0 a DB 255) ou filtrar por prefixo de chave, clique com o botão direito no banco de dados em Selected Objects e configure as opções na caixa de diálogo Edit Schema. Consulte Mapear nomes de objetos e Especificar condições de filtro. Não é possível configure vários mapeamentos de nomes de objetos simultaneamente. |
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 para o cluster compartilhado. Para melhorar a 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 reconexão após uma falha de conexão. Valores válidos: 10–1440 minutos. Padrão: 720. Defina como mais de 30 minutos. Se o DTS reconectar dentro desse período, a tarefa será retomada; caso contrário, ela falhará. Se várias tarefas compartilharem a mesma origem ou destino, o menor período de nova tentativa se aplica. O DTS cobra pela instância durante a nova tentativa. |
|
Retry Time for Other Issues |
Tempo durante o qual o DTS tenta nova execução após falhas de DDL ou DML. Valores válidos: 1–1440 minutos. Padrão: 10. Defina como mais de 10 minutos. Este valor deve ser menor que Retry Time for Failed Connections. |
|
Enable Throttling for Full Data Synchronization |
Limite a sincronização completa para reduzir a carga na origem e no destino. Configure Queries per second (QPS) to the source database, RPS of Full Data Migration e Data migration speed for full migration (MB/s). Disponível apenas quando Full Data Synchronization estiver selecionado. |
|
Enable Throttling for Incremental Data Synchronization |
Limite a sincronização incremental. Configure RPS of Incremental Data Synchronization e Data synchronization speed for incremental synchronization (MB/s). |
|
Environment Tag |
Marque a instância com um rótulo de ambiente. Opcional. |
|
Extend Expiration Time of Destination Database Key |
Defina um tempo de expiração estendido para chaves sincronizadas. Use esta opção para manter a consistência dos dados quando a origem utiliza comandos de expiração. Em cenários de bloqueio distribuído, isso pode atrasar a liberação do bloqueio. Comandos afetados: |
|
Use Slave Node |
Disponível quando o Instance Mode de origem for Cluster. Escolha ler dos nós primários ou réplicas. Padrão: No (lê do nó primário). |
|
Configure ETL |
Habilite extração, transformação e carregamento (ETL) para aplicar transformações de dados durante a sincronização. Yes: configure o ETL usando o editor de código. Consulte Configure ETL em uma tarefa de migração ou sincronização de dados. No: ignore o ETL. Consulte O que é ETL? |
Clique em Next Step: Data Verification para configure a verificação de dados. Consulte Configure uma tarefa de verificação de dados.
Etapa 4: Execute a pré-verificação
Para visualize os parâmetros da API para esta configuração de tarefa, passe o mouse sobre Next: Save Task Settings and Precheck e clique em Preview OpenAPI parameters.
Clique em Next: Save Task Settings and Precheck.
O DTS executa uma pré-verificação antes do início da 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 para ver a causa. Corrija o problema e execute a pré-verificação novamente.
-
Se um alerta for acionado:
Para alertas que não podem ser ignorados, clique em View Details, corrija o problema e execute a pré-verificação novamente.
Para alertas que podem ser ignorados, clique em Confirm Alert Details, depois clique em Ignore > OK > Precheck Again. Ignorar alertas pode causar inconsistência de dados.
Etapa 5: Adquirir e iniciar a instância
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 fixo, 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 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 apenas para faturamento Subscription. Opções: 1–9 meses, ou 1, 2, 3 ou 5 anos. |
Leia e aceite os Data Transmission Service (Pay-as-you-go) Service Terms.
Clique em Purchase And Start, depois clique em OK.
A tarefa aparece na página de sincronização de dados. Se a tarefa incluir tanto Full Data Synchronization quanto Incremental Data Synchronization, ela será exibida como uma única tarefa de Incremental Data Synchronization na lista de tarefas.
Próximos passos
Monitore o status e a latência da tarefa na página de sincronização de dados.
O DTS também suporta sincronização unidirecional entre instâncias Tair (compatíveis com Redis). As etapas de configuração são as mesmas descritas neste tópico.
Para opções de topologia de sincronização, consulte Topologias de sincronização.