Data Transmission Service (DTS) migre une base de données Redis depuis un centre de données local, une instance ECS ou un cloud tiers vers Tair (Redis OSS-compatible) avec un temps d'arrêt minimal. DTS prend en charge la migration complète et incrémentielle des données vers Tair (Redis OSS-compatible), offrant de meilleures performances et une sécurité accrue par rapport à la migration basée sur AOF.
Présentation
-
Migration complète des données
DTS migre toutes les données existantes de la base de données source vers la base de données de destination. La migration complète des données est gratuite.
-
Migration incrémentielle des données
Une fois la migration complète terminée, DTS synchronise les modifications de données de la source vers la destination en temps réel. La migration incrémentielle nécessite la possibilité d'exécuter la commande PSYNC ou SYNC sur la base de données source. Dans le cas contraire, seule la migration complète des données est disponible. La migration incrémentielle est facturée en fonction de la durée, et non du volume de données. Pour plus d'informations, consultez Éléments facturables.
RemarquePour garantir le succès de la migration incrémentielle des données, désactivez la limite du tampon de sortie de réplication sur la base de données source en exécutant la commande suivante :
CONFIG SET client-output-buffer-limit 'slave 0 0 0'.
Prérequis
Créez une instance Tair (Redis OSS-compatible) avec une capacité mémoire supérieure à celle utilisée par la base de données Redis auto-gérée. Pour plus d'informations, consultez Créer une instance.
La base de données de destination doit disposer d'au moins 10 % de mémoire supplémentaire par rapport à la base de données source. Une mémoire insuffisante peut entraîner des incohérences de données ou des échecs de tâche. Si cela se produit, effacez la base de données de destination et reconfigurez la tâche de migration.
Remarques d'utilisation
Ne modifiez pas la configuration de la base de données source ou de destination pendant la migration. Le redimensionnement des ressources, la modification des spécifications ou la modification des points de terminaison de connexion entraînent l'échec de la tâche, nécessitant une reconfiguration. Étant donné que la migration consomme des ressources sur les deux bases de données, effectuez-la pendant les heures creuses.
Procédure
-
Accédez à la page Tâches de migration de données.
Connectez-vous à la console Data Management (DMS).
Dans la barre de navigation supérieure, choisissez .
Sur le côté droit de Data Migration Tasks, sélectionnez la région où se trouve votre instance de destination.
Cliquez sur Create Task.
-
Configurez les bases de données source et de destination, puis cliquez sur Test Connectivity and Proceed.
Section
Parameter
Description
N/A
Task Name
DTS génère automatiquement un nom de tâche. Nous vous recommandons de spécifier un nom descriptif pour une identification facile. Le nom n'a pas besoin d'être unique.
Source Database
Select a DMS database instance.
Si la base de données source est enregistrée dans DMS, sélectionnez-la dans la liste déroulante pour remplir automatiquement les détails de connexion. Sinon, ignorez cette option.
Database Type
Sélectionnez Tair/Redis.
Connection Type
Sélectionnez un type de connexion en fonction de l'emplacement de déploiement de votre base de données source. Si votre instance se trouve dans un centre de données local ou sur un autre cloud, sélectionnez Public IP Address.
Cet exemple utilise Self-managed Database on ECS.
Instance Region
Sélectionnez la région où se trouve l'instance ECS. Si l'instance se trouve dans un centre de données local ou sur un autre cloud, sélectionnez la région la plus proche de la base de données source.
Replicate Data Across Alibaba Cloud Accounts
Cet exemple illustre une migration au sein du même compte Alibaba Cloud. Sélectionnez No.
ECS Instance ID
Sélectionnez l'ID de l'instance ECS où se trouve la base de données source.
RemarqueSi la base de données source est un cluster, sélectionnez l'ID de l'instance ECS de n'importe quel nœud maître.
Instance Mode
Sélectionnez l'architecture de votre base de données source :
Standalone : Architecture standard (maître-réplica).
Cluster : Architecture en cluster. Si votre base de données source est un cluster, saisissez le numéro de port de n'importe quel nœud maître dans le paramètre Port.
Port
Saisissez le port de la base de données Redis source. Le port par défaut est 6379.
Authentication Method
Sélectionnez Password Login ou Logon without password.
RemarqueSi votre base de données Redis auto-gérée ne dispose pas de mot de passe, vous pouvez sélectionner Logon without password.
Database Password
Saisissez le mot de passe pour vous connecter à la base de données Redis source.
RemarqueCe paramètre est facultatif. Si aucun mot de passe n'est défini, vous pouvez laisser ce champ vide.
Si vous utilisez un compte personnalisé, il doit disposer d'autorisations de lecture. Le compte et le mot de passe doivent être au format
<user>:<password>. Par exemple, si le compte personnalisé pour l'instance Redis estadminet le mot de passe estRp829dlwa, saisissezadmin:Rp829dlwacomme mot de passe de la base de données.
Encryption
Sélectionnez Non-encrypted ou SSL-encrypted.
RemarqueSi votre Redis auto-géré (où la Access Method n'est pas Cloud instance) utilise un chiffrement SSL-encrypted, vous devez également télécharger un CA Certificate et saisir la CA Key.
Destination Database
Select a DMS database instance.
Si la base de données de destination est enregistrée dans DMS, sélectionnez-la dans la liste déroulante pour remplir automatiquement les détails de connexion. Sinon, ignorez cette option.
Database Type
Tair/Redis est sélectionné par défaut.
Connection Type
Sélectionnez Cloud instance.
Instance Region
Sélectionnez la région de l'instance de destination.
Instance ID
Sélectionnez l'ID de l'instance de destination.
Authentication Method
Sélectionnez Password Login ou Logon without password. Cet exemple utilise Password Login.
RemarqueSi la fonctionnalité d'accès sans mot de passe VPC n'est pas activée pour l'instance Tair (Redis OSS-compatible), sélectionnez Password Login.
Database Password
Saisissez le mot de passe pour vous connecter à la base de données de destination.
RemarqueSi vous utilisez un compte personnalisé, il doit disposer d'autorisations d'écriture. Le compte et le mot de passe doivent être au format
<user>:<password>. Par exemple, si le compte personnalisé pour l'instance Redis estadminet le mot de passe estRp829dlwa, saisissezadmin:Rp829dlwacomme mot de passe de la base de données.Encryption
Sélectionnez Non-encrypted ou SSL-encrypted.
-
Configurez les objets de migration, puis cliquez sur Next: Advanced Settings.
Parameter
Description
Migration Types
Sélectionnez un Migration Types.
Full + Incremental (Par défaut) : Utilise la synchronisation native Redis pour écrire les données sous forme d'instantané mémoire vers la destination, permettant une migration avec un temps d'arrêt minimal.
Si vous ne disposez pas des autorisations SYNC ou PSYNC sur la base de données source, sélectionnez Full Data Migration.
Full Data Migration : Utilise la commande SCAN pour parcourir l'intégralité de la source et écrire les données dans la destination. Pour garantir la cohérence des données, évitez d'écrire de nouvelles données dans l'instance source pendant la migration.
Processing Mode for Existing Tables in Destination
Precheck and Report Errors (Par défaut) : Vérifie si des données (clés) existent dans la base de données de destination.
Si des clés existent, la pré-vérification signale une erreur et la tâche de migration ne démarre pas. Si aucune clé n'existe, la pré-vérification réussit.
Ignore Errors and Proceed : Ignore l'élément Check the existence of objects in the destination database.. Si une clé portant le même nom existe déjà dans la base de données cible, elle sera écrasée.
Source Objects et Selected Objects
Dans la zone Source Objects, sélectionnez les objets à migrer et cliquez sur la flèche droite
pour les déplacer vers la zone Selected Objects. Pour supprimer un objet, sélectionnez-le dans la zone Selected Objects et cliquez sur la flèche gauche
pour le renvoyer dans la zone Source Objects.RemarqueLes objets de migration sont sélectionnés au niveau de la base de données (DB 0 à DB 255).
-
Configurez les paramètres avancés, puis cliquez sur Next: Data Verification.
Dans la plupart des cas, conservez les paramètres par défaut. Pour plus d'informations, consultez Annexe : Paramètres avancés.
-
Configurez la vérification des données, puis cliquez sur Next: Save Task Settings and Precheck.
Dans la plupart des cas, conservez les paramètres par défaut. Pour plus d'informations, consultez Configurer la vérification des données dans une instance de synchronisation ou de migration DTS.
-
Une fois la pré-vérification terminée, cliquez sur Next: Purchase Instance.
Si des éléments Warning ou Failed sont signalés, résolvez-les individuellement. Cliquez sur View Details pour afficher le problème et le résoudre en suivant la suggestion fournie. Vous pouvez également cliquer sur Confirm Alert Details pour ignorer l'élément de vérification, mais cela n'est pas recommandé car cela peut entraîner des incohérences de données. Pour plus d'informations, consultez Problèmes de pré-vérification. Après avoir résolu les problèmes, exécutez à nouveau la pré-vérification.
-
Sur la page Purchase, configurez les paramètres et cliquez sur Buy and Start.
(Facultatif) Sélectionnez les Resource Group Settings pour le lien de migration DTS. La valeur par défaut est default resource group.
(Facultatif) Sélectionnez les spécifications pour le lien de migration DTS. Des spécifications plus élevées offrent des vitesses de migration plus rapides mais entraînent des coûts plus élevés. La valeur par défaut est large. Pour plus d'informations, consultez Spécifications des liens de migration de données.
Lisez et acceptez les conditions de service.
Après l'achat, la tâche de migration démarre. Vous pouvez consulter sa progression sur la page Data Migration.
Étapes suivantes
Si vous avez utilisé la migration incrémentielle des données, mettez fin manuellement à la tâche ou libérez-la dans la console une fois la migration terminée.
Vous pouvez vérifier les données migrées. Pour plus d'informations, consultez Vérifier les données migrées.
Documents connexes
Si la migration en ligne n'est pas requise, vous pouvez utiliser redis-cli pour importer un fichier AOF à la place. Pour plus d'informations, consultez Migrer des données à partir d'un fichier AOF.
FAQ
-
Pourquoi le test de connectivité échoue-t-il ?
Vérifiez les points suivants :
Compte ou mot de passe invalide. Le format du mot de passe Redis est
user:password. Pour plus d'informations, consultez Méthodes de connexion pour les instances.Si la source est une base de données auto-gérée dans un centre de données local ou sur un autre cloud, un pare-feu peut bloquer l'accès. Pour autoriser l'accès, ajoutez les adresses IP des serveurs DTS de la région correspondante à votre liste d'autorisation. Pour plus d'informations, consultez Ajouter les plages CIDR des serveurs DTS à la liste d'autorisation d'une base de données.
-
Pourquoi la tâche de migration échoue-t-elle ?
La tâche de migration échoue si vous modifiez la configuration (telles que les ressources, les spécifications ou les points de terminaison de connexion) de la base de données source ou de destination. Si cela se produit, reconfigurez la tâche.
Si l'instance de destination ne dispose pas de suffisamment de mémoire, ou s'il s'agit d'une instance en cluster et qu'un shard a atteint sa limite de mémoire, la tâche DTS échouera avec une erreur d'épuisement de la mémoire (OOM).
Si le chiffrement transparent des données (TDE) est activé sur l'instance de destination, la migration de données avec DTS n'est pas prise en charge.
-
Pourquoi y a-t-il une divergence de données ?
Si certaines clés de la base de données source utilisent une politique d'expiration (Expire), elles peuvent ne pas être supprimées immédiatement à l'expiration, ce qui entraîne un nombre de clés inférieur dans la base de données de destination par rapport à la source.
Pour les types de données List, DTS n'effectue pas d'opération FLUSH sur les données existantes dans la destination lors du transfert de données avec PSYNC ou SYNC. Cela peut entraîner des données en double.
Si une interruption réseau se produit pendant la migration complète des données, DTS peut effectuer plusieurs migrations complètes, qui écrasent automatiquement les clés portant le même nom. Si une opération de suppression est effectuée sur la base de données source pendant cette période, la commande ne sera pas synchronisée vers la destination, ce qui entraînera un volume de données supérieur dans la destination par rapport à la source.
-
Pourquoi la pré-vérification vérifie-t-elle si la politique d'éviction Redis est noeviction ?
La politique d'éviction par défaut (maxmemory-policy) pour une instance Tair (Redis OSS-compatible) est volatile-lru. Si la destination manque de mémoire, l'éviction est déclenchée, provoquant une incohérence des données sans faire échouer la tâche. Pour éviter cela, définissez la politique d'éviction de la destination sur noeviction. Avec cette politique, les écritures échouent lorsque la mémoire est pleine, ce qui fait échouer la tâche de migration mais empêche la perte de données due à l'éviction. Pour plus d'informations, consultez Politiques d'éviction des données Redis.
-
Pourquoi y a-t-il une clé nommée DTS_REDIS_TIMESTAMP_HEARTBEAT dans la base de données source ?
DTS insère une clé avec le préfixe DTS_REDIS_TIMESTAMP_HEARTBEAT dans la base de données source pour enregistrer les horodatages de mise à jour. Pour les sources en cluster, la clé est insérée dans chaque shard. DTS filtre cette clé pendant la migration, et elle expire automatiquement lorsque la tâche est terminée.
-
Quelles commandes sont prises en charge pour la migration incrémentielle des données ?
-
Les commandes suivantes sont prises en charge :
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
Lors de l'utilisation d'EVAL ou EVALSHA pour appeler des scripts Lua, DTS ne peut pas confirmer si le script a été exécuté avec succès car la base de données de destination ne renvoie pas explicitement un résultat d'exécution.
-
Annexe : Paramètres avancés
Parameter | Description |
Retry Time for Failed Connections | Si la connexion à la base de données source ou de destination échoue pendant la migration, DTS effectue des tentatives pendant la durée spécifiée (par défaut : 720 minutes ; plage : 10 à 1440 minutes). La tâche reprend si la connexion est rétablie dans ce délai ; sinon, elle échoue. Définissez un délai de nouvelle tentative d'au moins 30 minutes. La facturation continue pendant la période de nouvelle tentative. |
Retry Time for Other Issues | Si une erreur autre qu'une erreur de connexion se produit sur la base de données source ou de destination pendant la migration, DTS effectue des tentatives pendant la durée spécifiée (par défaut : 10 minutes ; plage : 10 à 1440 minutes). La tâche reprend si l'opération réussit dans ce délai ; sinon, elle échoue. Définissez un délai de nouvelle tentative d'au moins 10 minutes. |
Enable Throttling for Incremental Data Migration | L'écriture de données incrémentielles peut augmenter la charge sur la base de données de destination. Pour réduire la charge, limitez le taux de migration par lignes ou par volume de données par seconde. La valeur par défaut est No. |
Environment Tag | Sélectionnez un tag d'environnement pour identifier l'instance. |
Extend Expiration Time of Destination Database Key | Prolonge le TTL des clés ayant une heure d'expiration définie dans la base de données de destination. Extension par défaut : 1800 s. Les clés qui expirent sur la source avant la migration ne sont pas transférées vers la destination. |
Use Slave Node | Si le Instance Mode du Redis auto-géré source est Cluster, vous pouvez choisir de lire les données à partir des nœuds réplicas. La valeur par défaut est No, ce qui signifie que les données sont lues à partir du nœud maître. |
Configure ETL | Indique s'il faut activer la fonctionnalité ETL. Pour plus d'informations, consultez Qu'est-ce que l'ETL ?.
|
Monitoring and alerting | Indiquez s'il faut configurer des alertes. Si la synchronisation échoue ou si la latence dépasse le seuil spécifié, une notification est envoyée à un contact d'alerte.
|