O Data Transmission Service (DTS) oferece suporte à sincronização unidirecional de dados para bancos de dados Tair (Redis OSS-compatible). Esse recurso é ideal para redundância geográfica ativa e recuperação de desastres. O procedimento a seguir descreve a configuração de uma tarefa de sincronização unidirecional entre instâncias Tair (Redis OSS-compatible).
Visão geral
-
Migração completa de dados
O DTS migra todos os dados existentes do banco de dados source para o banco de dados de destino. A migração completa de dados é gratuita.
-
Sincronização incremental de dados
Após a migração completa, o DTS sincroniza as atualizações incrementais do banco de dados source para o banco de dados de destino em tempo real. A cobrança pela sincronização incremental baseia-se na duração da tarefa, e não no volume de dados. Para mais informações, consulte Billing.
Pré-requisitos
Uma instância Tair (Redis OSS-compatible) atua como destino. A instância de destino deve ter mais memória do que a instância source utiliza. Para mais informações, consulte Crie uma instância.
O banco de dados de destino deve ter pelo menos 10% a mais de memória que o banco de dados source. Memória insuficiente pode causar inconsistência de dados ou falhas na tarefa. Se isso ocorrer, limpe o banco de dados de destino e reconfigure a tarefa de migração.
Considerações
Não altere a configuração do banco de dados source ou de destino durante a migração. Dimensionar recursos, alterar especificações ou modificar endpoints de conexão causa falha na tarefa e exige reconfiguração. Como a migração consome recursos em ambos os bancos de dados, execute-a fora dos horários de pico.
Procedimento
-
Acesse a lista de tarefas de sincronização de dados.
Faça login no console do Data Management (DMS).
Na barra de navegação superior, escolha .
Ao lado de Data Synchronization Tasks, selecione a região da instância a ser sincronizada.
Clique em Create Task.
-
Configure os bancos de dados source e de destino e clique em Test Connectivity and Proceed na parte inferior da página.
Categoria
Parâmetro
Descrição
N/A
Task Name
O DTS gera automaticamente um nome para a tarefa. Recomendamos especificar um nome descritivo para facilitar a identificação. O nome não precisa ser único.
Source Database
Select a DMS database instance.
Se este banco de dados estiver registrado no DMS, selecione-o aqui para preencher automaticamente os parâmetros de conexão. Caso contrário, deixe esta opção em branco.
Database Type
Selecione Tair/Redis.
Connection Type
Selecione Cloud Instance.
Instance Region
Selecione a região da instância source.
Replicate Data Across Alibaba Cloud Accounts
Este exemplo sincroniza dados dentro da mesma conta Alibaba Cloud. Selecione No.
Instance ID
Selecione o ID da instância do banco de dados source.
Authentication Method
Selecione Password Login ou Secret-free login conforme necessário. Este exemplo usa Password Login.
NotaSe o password-free access não estiver ativado para a instância, selecione Password Login.
Database Password
Insira a senha da conta usada para conectar à instância source.
Nota-
Este parâmetro é opcional. Se nenhuma senha estiver definida, deixe este campo vazio.
-
Ao usar uma conta personalizada, garanta que ela tenha permissões de leitura. Especifique a conta e a senha no formato
<user>:<password>. Por exemplo, se o nome de usuário da conta personalizada foradmine a senha forRp829dlwa, insiraadmin:Rp829dlwa.
Destination Database
Select a DMS database instance.
Se este banco de dados estiver registrado no DMS, selecione-o aqui para preencher automaticamente os parâmetros de conexão. Caso contrário, deixe esta opção em branco.
Database Type
Tair/Redis vem selecionado por padrão.
Connection Type
Selecione Cloud Instance.
Instance Region
Selecione a região da instância de destino.
Instance ID
Selecione o ID da instância do banco de dados de destino.
Authentication Method
Selecione Password Login ou Secret-free login conforme necessário. Este exemplo usa Password Login.
NotaSe o password-free access não estiver ativado para a instância, selecione Password Login.
Database Password
Insira a senha da conta usada para conectar ao banco de dados de destino.
NotaAo usar uma conta personalizada, garanta que ela tenha permissões de escrita. Especifique a conta e a senha no formato
<user>:<password>. Por exemplo, se o nome de usuário da conta personalizada foradmine a senha forRp829dlwa, insiraadmin:Rp829dlwa. -
-
Configure os objetos de sincronização e clique em Next: Advanced Settings.
Parâmetro
Descrição
Synchronization Types
Full Synchronization + Incremental Synchronization vem selecionado por padrão.
Processing Mode for Existing Tables in Destination
-
Precheck and Report Errors (Padrão): Verifica se existem chaves no banco de dados de destino.
Se houver chaves, a pré-verificação reporta um erro e a tarefa não inicia. Se não houver chaves, a pré-verificação é aprovada.
-
Ignore Errors and Proceed: Ignora o item de pré-verificação Check the existence of objects in the destination database.. Chaves existentes com o mesmo nome no banco de dados de destino serão sobrescritas.
Source Objects e Selected Objects
Na caixa Source Objects, selecione os objetos a serem sincronizados e clique em
para movê-los para a caixa Selected Objects. Para remover um objeto, selecione-o na caixa Selected Objects e clique em
para movê-lo de volta para a caixa Source Objects.NotaÉ possível selecionar bancos de dados (DB 0 a DB 255) como objetos de sincronização.
-
-
Configure as definições avançadas e clique em Next: Data Verification.
Na maioria dos casos, mantenha as configurações padrão. Para mais informações, consulte Appendix: Advanced settings.
-
Configure a verificação de dados e clique em Next: Save Task Settings and Precheck.
Na maioria dos casos, mantenha as configurações padrão. Para mais informações, consulte Configure data verification in a DTS synchronization or migration instance.
-
Após a conclusão da pré-verificação, clique em Next: Purchase Instance.
Se algum item Warning ou Failed for reportado, resolva-os individualmente. Clique em View Details para visualizar o problema e resolvê-lo com base na sugestão fornecida. Também é possível clicar em Confirm Alert Details para ignorar o item de verificação, mas isso não é recomendado, pois pode causar inconsistências nos dados. Para mais informações, consulte Precheck issues. Após resolver os problemas, execute a pré-verificação novamente.
-
Na página Purchase, configure as informações necessárias e clique em Buy and Start.
(Opcional) Em Resource Group Settings, selecione o grupo de recursos para a tarefa DTS. O default resource group é usado por padrão.
(Opcional) Selecione a especificação do link de sincronização DTS. Especificações maiores oferecem velocidades de sincronização mais rápidas, mas geram custos mais altos. O valor padrão é large. Para mais informações, consulte Specifications of data synchronization links.
Leia e concorde com os termos de service.
Após concluir a compra, a tarefa de sincronização será iniciada. Acompanhe o progresso na página Data Synchronization.
Próximas etapas
Se não precisar mais sincronizar dados, encerre ou libere a tarefa no console.
Perguntas frequentes
-
Por que o teste de conectividade falha?
Verifique os seguintes pontos:
Conta ou senha inválidas. O formato da senha do Redis é
user:password. Para mais informações, consulte Connection methods for instances.Se a source for um banco de dados autogerenciado em um data center on-premises ou em outra cloud, um firewall pode estar bloqueando o acesso. Para permitir o acesso, adicione os endereços IP dos servidores DTS da região correspondente à sua lista de permissões. Para mais informações, consulte Add the CIDR blocks of DTS servers to the allowlist of a database.
-
Por que a tarefa de migração falha?
A tarefa de migração falha se você alterar a configuração (como recursos, especificações ou endpoints de conexão) do banco de dados source ou de destino. Nesse caso, reconfigure a tarefa.
Se a instância de destino tiver memória insuficiente, ou se for uma instância cluster e um shard atingir seu limite de memória, a tarefa DTS falhará com um erro de falta de memória (OOM).
Se o Transparent Data Encryption (TDE) estiver ativado na instância de destino, a migração de dados com DTS não é suportada.
-
Por que há discrepância de dados?
Se algumas chaves no banco de dados source usarem uma política de expiração (Expire), elas podem não ser excluídas imediatamente após o vencimento, resultando em menos chaves no banco de dados de destino do que no source.
Para tipos de dados List, o DTS não executa uma operação FLUSH nos dados existentes no destino ao transferir dados com PSYNC ou SYNC. Isso pode levar à duplicação de dados.
Se ocorrer uma interrupção de rede durante a migração completa de dados, o DTS pode realizar múltiplas migrações completas, que sobrescrevem automaticamente chaves com o mesmo nome. Se uma operação de exclusão for executada no banco de dados source durante esse período, o comando não será sincronizado com o destino, fazendo com que o banco de dados de destino tenha mais dados que o source.
-
Por que a pré-verificação valida se a política de evição do Redis é noeviction?
A política de evição padrão (maxmemory-policy) para uma instância Tair (Redis OSS-compatible) é volatile-lru. Se o destino ficar sem memória, a evição é acionada, causando inconsistência de dados sem falhar a tarefa. Para evitar isso, defina a política de evição do destino como noeviction. Com essa política, as gravações falham quando a memória está cheia, causando a falha da tarefa de migração, mas evitando perda de dados por evição. Para mais informações, consulte Redis data eviction policies.
-
Por que existe uma chave chamada DTS_REDIS_TIMESTAMP_HEARTBEAT no banco de dados source?
O DTS insere uma chave com o prefixo DTS_REDIS_TIMESTAMP_HEARTBEAT no banco de dados source para registrar timestamps de atualização. Para sources em cluster, a chave é inserida em cada shard. O DTS filtra essa chave durante a migração, e ela expira automaticamente quando a tarefa é concluída.
-
Por que vejo o erro
CROSSSLOT Keys in request don't hash to the same slot?Se o destino for uma instância cluster, o Redis não suporta operações cross-slot em um único comando. Use operações de chave única durante a sincronização DTS para evitar interromper o link.
-
Quais comandos são suportados para sincronização?
-
Os seguintes comandos são suportados:
APPEND
BITOP, BLPOP, BRPOP e BRPOPLPUSH
DECR, DECRBY e DEL
EVAL, EVALSHA, EXEC, EXPIRE e EXPIREAT
GEOADD e GETSET
HDEL, HINCRBY, HINCRBYFLOAT, HMSET, HSET e HSETNX
INCR, INCRBY e INCRBYFLOAT
LINSERT, LPOP, LPUSH, LPUSHX, LREM, LSET e LTRIM
MOVE, MSET, MSETNX e MULTI
PERSIST, PEXPIRE, PEXPIREAT, PFADD, PFMERGE e PSETEX
RENAME, RENAMENX, RESTORE, RPOP, RPOPLPUSH, RPUSH e RPUSHX
SADD, SDIFFSTORE, SELECT, SET, SETBIT, SETEX, SETNX, SETRANGE, SINTERSTORE, SMOVE, SPOP, SREM e SUNIONSTORE
ZADD, ZINCRBY, ZINTERSTORE, ZREM, ZREMRANGEBYLEX, ZUNIONSTORE, ZREMRANGEBYRANK e ZREMRANGEBYSCORE
SWAPDB e UNLINK (suportados apenas quando a instância Redis source é versão 4,0)
XADD, XCLAIM, XDEL, XAUTOCLAIM, XGROUP CREATECONSUMER e XTRIM
O comando PUBLISH não é suportado.
O DTS não garante a execução bem-sucedida de um script Lua chamado com EVAL ou EVALSHA durante a sincronização incremental de dados, pois o destino não retorna explicitamente um resultado de execução.
-