O Data Transmission Service (DTS) migra um banco de dados Redis de um data center local, de uma instância ECS ou de uma nuvem de terceiros para o Tair (Redis OSS-compatible) com tempo de inatividade mínimo. O DTS oferece suporte à migração completa e incremental de dados para o Tair (Redis OSS-compatible), proporcionando melhor desempenho e segurança em comparação à migração baseada em AOF.
Visão geral
-
Migração completa de dados
O DTS migra todos os dados existentes do banco de dados de origem para o banco de dados de destino. A migração completa de dados é gratuita.
-
Migração incremental de dados
Após a conclusão da migração completa, o DTS sincroniza as alterações de dados da origem para o destino em tempo real. A migração incremental exige permissão para executar o comando PSYNC ou SYNC no banco de dados de origem. Caso contrário, apenas a migração completa estará disponível. A cobrança da migração incremental baseia-se na duração, e não no volume de dados. Para mais informações, consulte Billable items.
NotaPara garantir o sucesso da migração incremental, desative o limite do buffer de saída de replicação no banco de dados de origem executando o seguinte comando:
CONFIG SET client-output-buffer-limit 'slave 0 0 0'.
Pré-requisitos
Crie uma instância Tair (Redis OSS-compatible) com mais memória do que a utilizada pelo banco de dados Redis autogerenciado. Para mais informações, consulte Create an instance.
O banco de dados de destino deve ter pelo menos 10% a mais de memória que o banco de dados de origem. 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.
Observações de uso
Não altere a configuração do banco de dados de origem 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 página Data Migration Tasks.
Faça login no console do Data Management (DMS).
Na barra de navegação superior, escolha .
No lado direito de Data Migration Tasks, selecione a região onde sua instância de destino está localizada.
Clique em Create Task.
-
Configure os bancos de dados de origem e de destino e clique em Test Connectivity and Proceed.
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 na lista suspensa para preencher automaticamente os detalhes de conexão. Caso contrário, ignore esta opção.
Database Type
Selecione Tair/Redis.
Connection Type
Escolha um tipo de conexão com base no local de implantação do banco de dados de origem. Se sua instância estiver em um data center local ou em outra nuvem, selecione Public IP Address.
Este exemplo utiliza Self-managed Database on ECS.
Instance Region
Selecione a região onde a instância ECS está localizada. Se a instância estiver em um data center local ou em outra nuvem, escolha a região mais próxima do banco de dados de origem.
Replicate Data Across Alibaba Cloud Accounts
Este exemplo mostra a migração dentro da mesma conta Alibaba Cloud. Selecione No.
ECS Instance ID
Selecione o ID da instância ECS onde o banco de dados de origem está localizado.
NotaSe o banco de dados de origem for um cluster, selecione o ID da instância ECS de qualquer nó mestre.
Instance Mode
Selecione a arquitetura do seu banco de dados de origem:
Standalone: Arquitetura padrão (mestre-réplica).
Cluster: Arquitetura de cluster. Se o banco de dados de origem for um cluster, insira o número da porta de qualquer nó mestre no parâmetro Port.
Port
Insira a porta do banco de dados Redis de origem. A porta padrão é 6379.
Authentication Method
Selecione Password Login ou Logon without password.
NotaSe o seu banco de dados Redis autogerenciado não tiver senha, selecione Logon without password.
Database Password
Insira a senha para conectar-se ao banco de dados Redis de origem.
NotaEste parâmetro é opcional. Se nenhuma senha estiver definida, deixe este campo vazio.
Ao usar uma conta personalizada, ela deve ter permissões de leitura. A conta e a senha devem estar no formato
<user>:<password>. Por exemplo, se a conta personalizada da instância Redis foradmine a senha forRp829dlwa, insiraadmin:Rp829dlwacomo senha do banco de dados.
Encryption
Selecione Non-encrypted ou SSL-encrypted.
NotaSe o seu Redis autogerenciado (onde o Access Method não é Cloud instance) utilizar SSL-encrypted, você também deverá fazer upload de um CA Certificate e inserir a CA Key.
Destination Database
Select a DMS database instance.
Se o banco de dados de destino estiver registrado no DMS, selecione-o na lista suspensa para preencher automaticamente os detalhes de conexão. Caso contrário, ignore esta opção.
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 de destino.
Authentication Method
Selecione Password Login ou Logon without password. Este exemplo utiliza Password Login.
NotaSe o VPC password-free access feature não estiver ativado para a instância Tair (Redis OSS-compatible), selecione Password Login.
Database Password
Insira a senha para conectar-se ao banco de dados de destino.
NotaAo usar uma conta personalizada, ela deve ter permissões de gravação. A conta e a senha devem estar no formato
<user>:<password>. Por exemplo, se a conta personalizada da instância Redis foradmine a senha forRp829dlwa, insiraadmin:Rp829dlwacomo senha do banco de dados.Encryption
Selecione Non-encrypted ou SSL-encrypted.
-
Configure os objetos de migração e clique em Next: Advanced Settings.
Parâmetro
Descrição
Migration Types
Selecione um Migration Types.
Full + Incremental (Padrão): Utiliza a sincronização nativa do Redis para gravar dados como um snapshot de memória no destino, permitindo a migração com tempo de inatividade mínimo.
Se você não tiver permissões SYNC ou PSYNC no banco de dados de origem, selecione Full Data Migration.
Full Data Migration: Usa o comando SCAN para iterar por toda a origem e gravar os dados no destino. Para garantir a consistência dos dados, evite gravar novos dados na instância de origem durante a migração.
Processing Mode for Existing Tables in Destination
Precheck and Report Errors (Padrão): Verifica se existem dados (chaves) no banco de dados de destino.
Se houver chaves, a pré-verificação relata um erro e a tarefa de migração não inicia. Se não houver chaves, a pré-verificação é aprovada.
Ignore Errors and Proceed: Ignora o item Check the existence of objects in the destination database.. Se uma chave com o mesmo nome já existir no banco de dados de destino, ela será sobrescrita.
Source Objects e Selected Objects
Na caixa Source Objects, selecione os objetos a serem migrados e clique na seta para a direita
para movê-los para a caixa Selected Objects. Para remover um objeto, selecione-o na caixa Selected Objects e clique na seta para a esquerda
para movê-lo de volta para a caixa Source Objects.NotaOs objetos de migração são selecionados no nível do banco de dados (DB 0 a DB 255).
-
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.
Geralmente, as configurações padrão são suficientes. 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 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 definições e clique em Buy and Start.
(Opcional) Selecione as Resource Group Settings para o link de migração do DTS. O padrão é default resource group.
(Opcional) Escolha as especificações para o link de migração do DTS. Especificações maiores oferecem velocidades de migração mais rápidas, mas geram custos mais altos. O padrão é large. Para mais informações, consulte Specifications of data migration links.
Leia e concorde com os termos de service.
Após a compra, a tarefa de migração é iniciada. Acompanhe o progresso na página Data Migration.
Próximas etapas
Caso tenha utilizado a migração incremental de dados, encerre ou libere manualmente a tarefa no console após a conclusão da migração.
Verifique os dados migrados. Para mais informações, consulte Verify migrated data.
Documentos relacionados
Se a migração online não for necessária, utilize o redis-cli para importar um arquivo AOF. Para mais informações, consulte Migrate data from an AOF file.
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 nuvem, 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 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 de 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).
Se o Transparent Data Encryption (TDE) estiver 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 a expiração, resultando em menos chaves no banco de dados de destino do que na 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, que sobrescrevem automaticamente chaves com o mesmo nome. Se uma operação de exclusão for realizada no banco de dados de origem 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 a origem.
-
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 a 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 de origem?
O DTS insere uma chave com o prefixo DTS_REDIS_TIMESTAMP_HEARTBEAT no banco de dados de origem para registrar timestamps de atualização. Para origens 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.
-
Quais comandos são suportados para migração incremental de dados?
-
Os seguintes comandos são suportados:
APPENDBITOP,BLPOP,BRPOP,BRPOPLPUSHDECR,DECRBY,DELEVAL,EVALSHA,EXEC,EXPIRE,EXPIREATFLUSHALL,FLUSHDBGEOADD,GETSETHDEL,HINCRBY,HINCRBYFLOAT,HMSET,HSET,HSETNXINCR,INCRBY,INCRBYFLOATLINSERT,LPOP,LPUSH,LPUSHX,LREM,LSET,LTRIMMOVE,MSET,MSETNX,MULTIPERSIST,PEXPIRE,PEXPIREAT,PFADD,PFMERGE,PSETEX,PUBLISHRENAME,RENAMENX,RESTORE,RPOP,RPOPLPUSH,RPUSH,RPUSHXSADD,SDIFFSTORE,SELECT,SET,SETBIT,SETEX,SETNX,SETRANGE,SINTERSTORE,SMOVE,SPOP,SREM,SUNIONSTOREZADD,ZINCRBY,ZINTERSTORE,ZREM,ZREMRANGEBYLEX,ZUNIONSTORE,ZREMRANGEBYRANK,ZREMRANGEBYSCOREXADD,XCLAIM,XDEL,XAUTOCLAIM,XGROUP CREATECONSUMER,XTRIM
Ao usar EVAL ou EVALSHA para chamar scripts Lua, o DTS não consegue confirmar se o script foi executado com sucesso, pois o banco de dados de destino não retorna explicitamente um resultado de execução.
-
Apêndice: Configurações avançadas
Parâmetro | Descrição |
Retry Time for Failed Connections | Se a conexão com o banco de dados de origem ou de destino falhar durante a migração, o DTS tentará novamente pela duração especificada (padrão: 720 minutos; intervalo: 10 a 1440 minutos). A tarefa será retomada se a conexão for restaurada dentro desse período; caso contrário, ela falhará. Defina um tempo de nova tentativa de pelo menos 30 minutos. A cobrança continua durante o período de nova tentativa. |
Retry Time for Other Issues | Se ocorrer um erro não relacionado à conexão no banco de dados de origem ou de destino durante a migração, o DTS tentará novamente pela duração especificada (padrão: 10 minutos; intervalo: 10 a 1440 minutos). A tarefa será retomada se a operação for bem-sucedida dentro desse período; caso contrário, ela falhará. Defina um tempo de nova tentativa de pelo menos 10 minutos. |
Enable Throttling for Incremental Data Migration | A gravação de dados incrementais pode aumentar a carga no banco de dados de destino. Para reduzir a carga, limite a taxa de migração por linhas ou volume de dados por segundo. O padrão é No. |
Environment Tag | Selecione uma tag de ambiente para identificar a instância. |
Extend Expiration Time of Destination Database Key | Estende o TTL para chaves com tempo de expiração definido no banco de dados de destino. Extensão padrão: 1800s. Chaves que expiram na origem antes da migração não são transferidas para o destino. |
Use Slave Node | Se o Instance Mode do Redis autogerenciado de origem for Cluster, você poderá escolher se deseja ler dados de nós réplicas. O padrão é No, o que significa que os dados são lidos do nó mestre. |
Configure ETL | Define se o recurso ETL deve ser ativado. Para mais informações, consulte What is ETL?.
|
Monitoring and alerting | Especifique se deseja configurar alertas. Se a sincronização falhar ou a latência exceder o limiar especificado, uma notificação será enviada a um contato de alerta.
|