O Data Transmission Service (DTS) oferece suporte à sincronização bidirecional entre instâncias do Tair (Enterprise Edition), ideal para georredundância ativa e recuperação de desastres geográfica.
Configure a tarefa no console ou pela OpenAPI. Para mais informações, consulte Configure one-way or two-way data synchronization between Tair (Enterprise Edition) instances by calling OpenAPI.
Visão geral
A sincronização bidirecional exige dois links de sincronização: uma tarefa direta e uma reversa. A tarefa direta executa a migração completa de dados e a sincronização incremental de dados. A tarefa reversa executa apenas a sincronização de dados incrementais.
Migração completa de dados: o DTS migra todos os dados existentes do banco de dados de origem para o de destino. Essa etapa é gratuita.
Sincronização incremental de dados: após a migração completa, o DTS sincroniza as alterações incrementais do banco de dados de origem para o de destino em tempo real. A cobrança baseia-se na duração da sincronização, não no volume de dados transferidos. Para mais detalhes, consulte Billable items.
Para garantir a consistência dos dados, não modifique nem grave dados na mesma chave em ambos os bancos de dados enquanto as tarefas de sincronização bidirecional estiverem em execução.
Pré-requisitos
As instâncias de origem e de destino devem ser do tipo Tair (Enterprise Edition).
Instâncias baseadas em disco do Tair (Enterprise Edition) não suportam sincronização bidirecional.
Se o banco de dados de origem for uma instância do tipo Persistent Memory do Tair, ative manualmente o parâmetro appendonly.
Precauções
Não altere a configuração do banco de dados de origem ou de destino durante a migração. Operações como dimensionamento de recursos, mudança de especificações ou modificação de endpoints de conexão causam falha na tarefa e exigem reconfiguração. Como a migração consome recursos em ambos os bancos de dados, execute-a fora dos horários de pico.
Para instâncias fora da China continental, a sincronização bidirecional é suportada apenas entre instâncias na mesma região. Por exemplo, duas instâncias na região Japan (Tokyo) podem ser sincronizadas, mas não é possível sincronizar uma instância em Japan (Tokyo) com outra em Germany (Frankfurt).
-
Uma tarefa de sincronização bidirecional inclui tarefas de sincronização direta e reversa. Ao configurar ou redefinir a tarefa, se o objeto de destino de uma tarefa corresponder ao objeto de sincronização da outra:
Permita que apenas uma tarefa sincronize dados completos e incrementais. A outra tarefa deve suportar somente sincronização incremental.
Os dados da origem da tarefa atual são sincronizados exclusivamente para o destino da mesma tarefa. Eles não servem como dados de origem para a outra tarefa.
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 de origem e de destino e clique em Test Connectivity and Proceed na parte inferior da página.
Seção
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 o banco de dados de origem estiver registrado no DMS, selecione-o aqui para preencher automaticamente seus detalhes. Caso contrário, ignore esta opção.
Database Type
Selecione Tair/Redis.
Connection Type
Selecione Alibaba Cloud instance.
Instance Region
Selecione a região onde a instância está localizada.
Replicate Data Across Alibaba Cloud Accounts
Selecione No, pois este exemplo aborda a migração dentro de uma única conta Alibaba Cloud.
Instance ID
Selecione o ID da instância de origem.
Authentication Method
Escolha Password Login ou Secret-free login conforme sua necessidade. Neste exemplo, Password Login foi selecionado.
NotaSe o password-free access feature não estiver ativado para a instância, selecione Password Login.
Database Password
Insira a senha da conta usada para conectar-se à instância de origem.
Nota-
Este parâmetro é opcional. Se nenhuma senha estiver definida, deixe o campo em branco.
-
Ao utilizar uma conta personalizada, ela deve ter permissões de leitura. A conta e a senha devem seguir o formato
<user>:<password>. Por exemplo, se a conta personalizada foradmine a senha forRp829dlwa, insiraadmin:Rp829dlwa.
Destination Database
Select a DMS database instance.
Se o banco de dados de destino estiver registrado no DMS, selecione-o aqui para preencher automaticamente seus detalhes. Caso contrário, ignore esta opção.
Database Type
Tair/Redis vem selecionado por padrão.
Connection Type
Selecione Alibaba Cloud instance.
Instance Region
Selecione a região onde a instância de destino está localizada.
Instance ID
Selecione o ID da instância de destino.
Authentication Method
Escolha Password Login ou Secret-free login conforme sua necessidade. Neste exemplo, Password Login foi selecionado.
NotaSe o password-free access feature não estiver ativado para a instância, selecione Password Login.
Database Password
Insira a senha usada para conectar-se ao banco de dados de destino.
NotaAo utilizar uma conta personalizada, ela deve ter permissões de gravação. A conta e a senha devem seguir o formato
<user>:<password>. Por exemplo, se a conta personalizada foradmine a senha forRp829dlwa, insiraadmin:Rp829dlwa. -
-
Configure os objetos da tarefa e clique em Next: Advanced Settings na parte inferior da página.
Parâmetro
Descrição
Synchronization Types
A Incremental data synchronization está sempre ativada. Opcionalmente, ative a Full data synchronization.
Synchronization Topology
Selecione Two-way Synchronization.
Processing Mode for Existing Tables in Destination
-
Precheck and Report Errors (padrão): verifica se existem dados (chaves) no banco de dados de destino.
Durante a pré-verificação, a tarefa falhará se o banco de dados de destino contiver chaves conflitantes. A tarefa prossegue apenas se não houver tais chaves.
-
Ignore Errors and Proceed: ignora o item Check the existence of objects in the destination database.. Se já existir uma chave com o mesmo nome no banco de dados de destino, ela será sobrescrita.
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 selecionado, clique nele na caixa Selected Objects e, em seguida, clique em
para movê-lo de volta para a caixa Source Objects.NotaÉ possível selecionar objetos no nível do banco de dados (DB 0 a DB 255).
-
-
Defina as configurações avançadas e clique em Next: Data Verification.
Na maioria dos casos, as configurações padrão são suficientes. Para mais informações, consulte Appendix: Advanced settings.
-
Configure a verificação de dados e clique em Next: Save Task Settings and Precheck.
Geralmente, mantenha as configurações padrão. Para mais detalhes, 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 forem relatados itens com Warning ou Failed, 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 do DTS. O default resource group é utilizado por padrão.
(Opcional) Escolha a especificação do link de sincronização do DTS. Especificações maiores oferecem velocidades de sincronização mais rápidas, mas geram custos mais elevados. O valor padrão é large. Para mais informações, consulte Specifications of data synchronization links.
Leia e aceite os termos de service.
Após concluir a compra, a tarefa de sincronização será iniciada. Acompanhe o progresso na página Data Synchronization.
Aguarde até que o status da tarefa de sincronização direta mude para Running e clique em Configure Task para a tarefa reversa.
-
Siga as etapas acima para configurar a tarefa reversa.
Quando a Success Rate da pré-verificação atingir 100%, a configuração estará concluída. Em seguida, clique em Back to List.
Na lista de sincronização de dados, quando o status das tarefas direta e reversa for Running, a configuração da sincronização bidirecional de dados estará completa.
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 origem for um banco de dados autogerenciado em um data center local 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 detalhes, 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 de origem 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 tiver atingido seu limite de memória, a tarefa do DTS falhará com um erro de falta de memória (OOM).
Caso o Transparent Data Encryption (TDE) esteja ativado na instância de destino, a migração de dados com o DTS não é suportada.
-
Por que há discrepância nos dados?
Se algumas chaves no banco de dados de origem 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 em comparação à origem.
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 poderá realizar múltiplas migrações completas, sobrescrevendo automaticamente chaves com o mesmo nome. Se uma operação de exclusão for executada no banco de dados de origem durante esse período, o comando não será sincronizado para o destino, fazendo com que o banco de dados de destino tenha mais dados que a origem.
-
Por que a pré-verificação valida se a política de evicção do Redis é noeviction?
A política de evicção padrão (maxmemory-policy) para uma instância Tair (Redis OSS-compatible) é volatile-lru. Se o destino ficar sem memória, a evicção será acionada, causando inconsistência de dados sem que a tarefa falhe. Para evitar isso, defina a política de evicçã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 impedindo a perda de dados por evicção. Para mais informações, consulte Redis data eviction policies.
-
Por que recebo o erro
CROSSSLOT Keys in request don't hash to the same slot?Esse erro ocorre porque a arquitetura cluster do Redis não suporta operações cross-slot em um único comando. Para evitar que o link seja interrompido, realize apenas operações de chave única durante a sincronização do DTS.
-
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 de origem é 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.
-