Utilisez Data Transmission Service (DTS) pour migrer une instance Tair (compatible Redis OSS) d'un compte Alibaba Cloud vers un autre. La prise en charge des migrations complètes et incrémentielles permet de maintenir vos services opérationnels tout au long du processus.
Prérequis
Avant de commencer, assurez-vous que :
Une instance Tair (compatible Redis OSS) de destination existe. L'espace de stockage disponible doit être supérieur à l'espace utilisé sur l'instance source.
Les instances source et destination exécutent des versions de Redis compatibles. La migration d'une version inférieure vers une version supérieure est prise en charge. Une migration d'une version supérieure vers une version inférieure peut entraîner des problèmes de compatibilité.
Pour connaître les combinaisons de versions prises en charge, consultez la rubrique Présentation des scénarios de migration de données.
Fonctionnement
La migration entre comptes nécessite des actions de la part de deux comptes Alibaba Cloud :
Propriétaire du compte source : Connectez-vous à la console Alibaba Cloud, créez un rôle RAM et accordez au compte de destination l'autorisation d'accéder à l'instance Redis source. Consultez la rubrique Configurer l'autorisation RAM pour une tâche intercomptes.
Propriétaire du compte de destination : Connectez-vous à la console Alibaba Cloud et configurez la tâche de migration DTS (décrite dans la section Procédure ci-dessous).
Facturation
| Type de migration | Frais de configuration de l'instance | Frais de trafic Internet |
|---|---|---|
| Migration complète des données | Gratuit | Facturés lorsque la Access Method de la destination est Public IP Address. Consultez la Présentation de la facturation. |
| Migration incrémentielle des données | Facturés. Consultez la Présentation de la facturation. |
Types de migration
| Type de migration | Description |
|---|---|
| Migration complète | DTS copie toutes les données existantes de la source vers la destination. |
| Migration incrémentielle | Une fois la migration complète terminée, DTS réplique continuellement les nouvelles écritures de la source vers la destination. Utilisez cette option pour migrer sans interrompre vos applications. |
Exécutez les deux types simultanément lorsque cela est possible. Si le compte DTS ne dispose pas des autorisations SYNC/PSYNC sur la source, exécutez uniquement la migration complète.
Notes d'utilisation
Vérifiez ces contraintes avant de démarrer la migration.
Limites de la base de données source
Exigence de bande passante : le serveur hébergeant la base de données source doit disposer d'une bande passante sortante suffisante. Sinon, la vitesse de migration des données sera affectée.
La version 2.8 de Tair (compatible Redis OSS) n'est pas prise en charge en tant que source.
Si vous effectuez uniquement une migration complète (sans migration incrémentielle), arrêtez les écritures sur la source pendant la migration pour éviter toute incohérence des données.
-
Lors de la migration d'une source Basic Edition vers une destination à architecture de cluster, utilisez uniquement des opérations sur une seule clé. Les commandes multi-clés qui s'étendent sur plusieurs slots renvoient l'erreur suivante :
CROSSSLOT Keys in request don't hash to the same slot DTS insère une clé avec le préfixe
DTS_REDIS_TIMESTAMP_HEARTBEATdans la source pour suivre les horodatages de mise à jour. Si la source utilise une architecture de cluster, cette clé est insérée dans chaque shard. La clé est filtrée pendant la migration et expire à la fin de la tâche.Si la source est une instance en lecture seule ou si le compte DTS ne dispose pas de l'autorisation SETEX, la latence signalée peut être inexacte.
Pour améliorer la stabilité de la migration, augmentez la valeur du paramètre
repl-backlog-sizedans le fichierredis.conf.Si la source est une instance Tair Enterprise Edition dont le Storage Medium est défini sur Persistent Memory, définissez le paramètre
appendonlysuryes. Pour plus de détails, consultez la Procédure.Si la source est une instance enfant d'un Global Distributed Cache, DTS migre uniquement cette instance enfant. Les autres instances enfants ne sont pas prises en charge.
Autres limites
Ni la source ni la destination ne prennent en charge les instances de stockage de capacité Tair (compatible Redis OSS) Enterprise Edition.
Si le chiffrement transparent des données (TDE) est activé sur l'une ou l'autre instance, DTS ne peut pas effectuer la migration.
Si la destination manque de mémoire, la politique d'éviction par défaut (
maxmemory-policy) estvolatile-lru, ce qui peut provoquer une incohérence des données. Pour éviter une perte silencieuse de données, définissez la politique d'éviction de la destination surnoeviction. Avecnoeviction, les opérations d'écriture échouent lorsque la mémoire est pleine et la tâche s'arrête, mais aucune donnée n'est supprimée silencieusement. Pour plus de détails sur les politiques, consultez la rubrique Présentation des politiques d'éviction des données Redis.Si l'instance de destination utilise une architecture de cluster et qu'un shard atteint sa limite de mémoire, ou si l'instance manque d'espace de stockage, la tâche DTS échoue avec une erreur d'épuisement de la mémoire (OOM).
Les opérations de mise à l'échelle (ajout ou suppression de shards), les modifications de spécifications ou les modifications d'endpoint ou de port sur l'une ou l'autre instance pendant la migration interrompront la tâche. Si cela se produit, effacez toutes les données synchronisées de la destination et reconfigurez la tâche.
Après un événement de basculement (y compris le basculement maître/esclave) sur la destination, les données peuvent être écrites uniquement en mémoire sans réplication vers le secondaire, ce qui entraîne une perte de données.
Si une instance de migration inclut à la fois des tâches complètes et incrémentielles, le redémarrage de l'instance peut amener DTS à réexécuter les deux tâches.
Le redémarrage d'une instance de migration peut entraîner l'exécution répétée de commandes non idempotentes (telles que
INCRBYouLPUSH), conduisant à une incohérence des données.Pour les scripts Lua invoqués via
EVALouEVALSHA, DTS ne peut pas confirmer l'exécution réussie pendant la migration incrémentielle.Pour les structures de données List, DTS ne vide pas les données de destination existantes lors de l'utilisation de
psyncousync, ce qui peut entraîner des entrées en double.Si les clés de la source ont des politiques d'expiration, le nombre de clés visible dans la destination (par exemple, via
INFO) peut être inférieur à celui de la source. Les clés sans politiques d'expiration ou les clés non expirées sont cohérentes entre la source et la destination.Lorsque la Access Method est Public IP Address, le Instance Mode ne prend pas en charge l'option Cluster.
Effectuez la migration pendant les heures creuses. La migration complète consomme des ressources de lecture et d'écriture sur les deux instances.
Après la migration complète, l'espace de stockage de la destination sera plus grand que celui de la source en raison des opérations INSERT concurrentes.
DTS tente de récupérer automatiquement les tâches ayant échoué pendant sept jours maximum. Avant de basculer le trafic vers la destination, arrêtez ou libérez la tâche, ou révoquez l'autorisation d'écriture du compte DTS en utilisant
REVOKEpour empêcher les tâches récupérées d'écraser les données de destination.Si une instance Tair (compatible Redis OSS) chiffrée TLS est impliquée, connectez-vous à DTS en utilisant l'option SSL-encrypted (TLSv1.3 n'est pas pris en charge). La connexion avec l'option SSL-encrypted à une source de type Alibaba Cloud Instance n'est actuellement pas prise en charge.
Si une tâche échoue, l'équipe support DTS tentera de la restaurer dans un délai de huit heures. La restauration peut impliquer le redémarrage de la tâche ou l'ajustement des paramètres de la tâche. Seuls les paramètres de la tâche DTS sont modifiés, pas les paramètres de la base de données. Pour connaître les paramètres ajustables, consultez la rubrique Modifier les paramètres de l'instance.
Cas particuliers pour les sources Redis gérées par l'utilisateur
Lorsque la Access Method de la source n'est pas Alibaba Cloud Instance :
Le basculement maître/esclave sur la source provoque l'échec de la tâche.
DTS calcule la latence en comparant l'horodatage du dernier enregistrement migré avec l'heure actuelle. Si la source n'a aucune activité DML pendant une période prolongée, la latence affichée peut être inexacte. Exécutez une opération DML sur la source pour actualiser la latence. Si vous migrez une base de données entière, utilisez une table de heartbeat qui écrit des données chaque seconde.
Les modifications de l'endpoint Redis pendant la migration (par exemple, en raison d'une migration d'instance ou d'un basculement maître/esclave) peuvent provoquer des tentatives, des retards, des échecs ou une incohérence des données. Surveillez l'état de la tâche et reconfigurez-la si un comportement anormal apparaît.
Commandes prises en charge pour la migration incrémentielle
APPEND, BITOP, BLPOP, BRPOP, BRPOPLPUSH, DECR, DECRBY, DEL, EVAL, EVALSHA, EXEC, EXPIRE, EXPIREAT, FLUSHALL, FLUSHDB, GEOADD, GETSET, HDEL, HINCRBY, HINCRBYFLOAT, HMSET, HSET, HSETNX, INCR, INCRBY, INCRBYFLOAT, LINSERT, LPOP, LPUSH, LPUSHX, LREM, LSET, LTRIM, MOVE, MSET, MSETNX, MULTI, PERSIST, PEXPIRE, PEXPIREAT, PFADD, PFMERGE, PSETEX, PUBLISH, RENAME, RENAMENX, RESTORE, RPOP, RPOPLPUSH, RPUSH, RPUSHX, SADD, SDIFFSTORE, SELECT, SET, SETBIT, SETEX, SETNX, SETRANGE, SINTERSTORE, SMOVE, SPOP, SREM, SUNIONSTORE, ZADD, ZINCRBY, ZINTERSTORE, ZREM, ZREMRANGEBYLEX, ZUNIONSTORE, ZREMRANGEBYRANK, ZREMRANGEBYSCORE, XADD, XCLAIM, XDEL, XAUTOCLAIM, XGROUP CREATECONSUMER, XTRIM
Préparations
Connectez-vous à la console Alibaba Cloud à l'aide du compte source. Créez un rôle RAM et accordez au compte de destination l'autorisation d'accéder à l'instance Redis source. Pour obtenir des instructions, consultez la rubrique Configurer l'autorisation RAM pour une tâche intercomptes.
Effectuez cette étape avant de configurer la tâche de migration ci-dessous.
Procédure
Les étapes suivantes utilisent le compte de destination pour configurer la tâche de migration DTS.
Pour une procédure détaillée de la configuration RAM intercomptes, consultez la rubrique Configurer l'autorisation RAM pour une tâche intercomptes .
Étape 1 : Ouvrir la liste des tâches de migration
Connectez-vous à l'aide du compte de destination et accédez à la liste des tâches de migration de données en utilisant l'une des méthodes suivantes :
Depuis la console DTS
Connectez-vous à la console Data Transmission Service (DTS).Data Transmission Service (DTS) console
Dans le volet de navigation de gauche, cliquez sur Data Migration.
Dans le coin supérieur gauche, sélectionnez la région où l'instance de migration sera située.
Depuis la console DMS
Remarque
Les étapes peuvent varier en fonction du mode et de la disposition de votre console DMS. Pour plus de détails, consultez les rubriques Console en mode simple et Personnaliser la disposition et le style de la console DMS.
Connectez-vous à la console Data Management (DMS).Data Management (DMS) console
Dans la barre de menu supérieure, choisissez .
À droite de Data Migration Tasks, sélectionnez la région où l'instance de migration sera située.
Étape 2 : Créer la tâche
Cliquez sur Create Task pour ouvrir la page de configuration de la tâche.
Étape 3 : Configurer les bases de données source et de destination
Lisez attentivement les limites affichées en haut de la page de configuration avant de sélectionner les instances. Ignorer cette étape peut entraîner l'échec de la tâche ou une incohérence des données.
Configurez les paramètres pour les bases de données source et de destination :
Nom de la tâche
| Paramètre | Description |
|---|---|
| Task Name | DTS génère un nom automatiquement. Spécifiez un nom descriptif pour une identification facile. Le nom n'a pas besoin d'être unique. |
Base de données source
| Paramètre | Description |
|---|---|
| Select Existing Connection | Sélectionnez une instance de base de données précédemment enregistrée dans la liste, ou laissez vide pour configurer manuellement. Dans la console DMS, ce paramètre est nommé Select a DMS database instance. |
| Database Type | Sélectionnez Tair/Redis. |
| Access Method | Sélectionnez Alibaba Cloud Instance. |
| Instance Region | Sélectionnez la région où réside l'instance source. |
| Replicate Data Across Alibaba Cloud Accounts | Sélectionnez Yes. Cela active les champs intercomptes ci-dessous. |
| Alibaba Cloud Account | Saisissez l'ID du compte Alibaba Cloud propriétaire de l'instance Tair (compatible Redis OSS) source. Pour obtenir cet ID, consultez la rubrique Obtenir l'ID du compte Alibaba Cloud propriétaire de la base de données source. |
| RAM Role Name | Saisissez le nom du rôle RAM que vous avez créé dans le compte source, par exemple ram-for-dts. Pour créer ce rôle, consultez la rubrique Étape 1 : Créer un rôle RAM. |
| Instance ID | Sélectionnez l'ID de l'instance source. |
| Authentication Method | Sélectionnez la méthode d'authentification. Cet exemple utilise Password Login. L'option Account + Password Login est disponible uniquement pour Redis 6.0 ou version ultérieure. Pour l'option Secret-free login, activez d'abord l'accès sans mot de passe — consultez la rubrique Activer l'accès sans mot de passe via un VPC. |
| Database Password | Saisissez le mot de passe de l'instance source. Le compte doit disposer de l'autorisation de lecture. Pour les comptes personnalisés, utilisez le format <account>:<password>, par exemple testaccount:Test1234. Laissez vide si aucun mot de passe n'est défini. Pour réinitialiser un mot de passe oublié, consultez la rubrique Modifier ou réinitialiser le mot de passe. |
| Encryption | Sélectionnez Non-encrypted ou SSL-encrypted. Pour Redis géré par l'utilisateur avec SSL, téléchargez également un CA Certificate et saisissez une CA Key. |
Base de données de destination
| Paramètre | Description |
|---|---|
| Select Existing Connection | Sélectionnez une instance de base de données précédemment enregistrée dans la liste, ou laissez vide pour configurer manuellement. Dans la console DMS, ce paramètre est nommé Select a DMS database instance. |
| Database Type | Sélectionnez Tair/Redis. |
| Access Method | Sélectionnez Alibaba Cloud Instance. |
| Instance Region | Sélectionnez la région où réside l'instance de destination. |
| Replicate Data Across Alibaba Cloud Accounts | Sélectionnez No. L'instance de destination appartient au compte actuel. |
| Instance ID | Sélectionnez l'ID de l'instance de destination. |
| Authentication Method | Sélectionnez la méthode d'authentification. Cet exemple utilise Password Login. L'option Account + Password Login est disponible uniquement pour Redis 6.0 ou version ultérieure. Pour l'option Secret-free login, activez d'abord l'accès sans mot de passe — consultez la rubrique Activer l'accès sans mot de passe via un VPC. |
| Database Password | Saisissez le mot de passe de l'instance de destination. Le compte doit disposer des autorisations de lecture et d'écriture. Pour les comptes personnalisés, utilisez le format <account>:<password>, par exemple testaccount:Test1234. Pour réinitialiser un mot de passe oublié, consultez la rubrique Modifier ou réinitialiser le mot de passe. |
| Encryption | Sélectionnez Non-encrypted ou SSL-encrypted. Pour Redis géré par l'utilisateur avec SSL, téléchargez également un CA Certificate et saisissez une CA Key. |
Étape 4 : Tester la connectivité
Cliquez sur Test Connectivity and Proceed en bas de la page.
Assurez-vous que les plages d'adresses IP du service DTS sont ajoutées aux paramètres de sécurité des deux instances. Consultez la rubrique Ajouter les adresses IP des serveurs DTS à une liste d'autorisation .
Si l'une ou l'autre instance est gérée par l'utilisateur (la Méthode d'accès n'est pas Alibaba Cloud Instance ), cliquez sur Test Connectivity dans la boîte de dialogue CIDR Blocks of DTS Servers .
Étape 5 : Configurer les objets de migration
Sur la page Configure Objects , définissez les paramètres suivants :
| Paramètre | Description |
|---|---|
| Migration Types | Sélectionnez à la fois Full Data Migration et Incremental Data Migration pour une migration sans temps d'arrêt. Sélectionnez uniquement Full Data Migration si le compte DTS ne dispose pas de l'autorisation SYNC/PSYNC sur la source. |
| Processing Mode of Conflicting Tables | Precheck and Report Errors : La pré-vérification vérifie que la destination est vide. Si ce n'est pas le cas, la tâche ne démarre pas. Ignore Errors and Proceed : Ignore la vérification de destination vide. Si une clé de la destination porte le même nom qu'une clé source, les données source écrasent la destination. Cela peut entraîner une perte de données — procédez avec prudence. |
| Source Objects | Cliquez sur les objets dans la zone Source Objects , puis cliquez sur |
| Selected Objects | Pour mapper des bases de données (DB 0–255) ou filtrer par préfixe de clé, faites un clic droit sur une base de données dans Selected Objects et configurez-la dans la boîte de dialogue Edit Schema . Consultez les rubriques Mappage de schéma et Définir les conditions de filtre. |
Cliquez sur Next Advanced Settings et configurez les éléments suivants :
| Paramètre | Description |
|---|---|
| Dedicated Cluster for Task Scheduling | DTS utilise un cluster partagé par défaut. Achetez un cluster dédié pour une exécution plus stable des tâches. |
| Retry Time for Failed Connections | Par défaut : 720 minutes. Plage : 10–1 440 minutes. Définissez au moins 30 minutes. Si DTS se reconnecte dans ce délai, la tâche reprend automatiquement ; sinon, la tâche échoue. Remarque : Vous êtes facturé pendant la période de nouvelle tentative. |
| Retry Time for Other Issues | Par défaut : 10 minutes. Plage : 1–1 440 minutes. Définissez au moins 10 minutes. Cette valeur doit être inférieure à Retry Time for Failed Connections . |
| Enable Throttling for Full Data Migration | Limitez la charge de lecture et d'écriture pendant la migration complète en définissant Queries per second (QPS) to the source database , RPS of Full Data Migration et Data migration speed for full migration (MB/s) . Disponible uniquement lorsque Full Data Migration est sélectionné. |
| Enable Throttling for Incremental Data Migration | Limitez la charge pendant la migration incrémentielle en définissant RPS of Incremental Data Migration et Data migration speed for incremental migration (MB/s) . Disponible uniquement lorsque Incremental Data Migration est sélectionné. |
| Extend Expiration Time of Destination Database Key | Ajoutez un temps d'expiration supplémentaire aux clés migrées. Utile lorsque votre application repose sur l'expiration des clés, comme les verrous distribués. S'applique à : expire , pexpire , expireat , pexpireat . |
| Environment Tag | Facultatif. Taguez l'instance pour identifier son environnement. |
| Configure ETL | Activez ou désactivez la fonctionnalité extract, transform, and load (ETL). Consultez les rubriques Qu'est-ce que l'ETL ? et Configurer l'ETL dans une tâche de migration ou de synchronisation de données. |
| Monitoring and Alerting | Configurez des alertes pour recevoir des notifications si la migration échoue ou si la latence dépasse un seuil. Consultez la rubrique seuil d'alertealert notifications. |
Cliquez sur Next Data Verification pour configurer la vérification des données. Pour plus de détails, consultez la rubrique Configurer une tâche de vérification des données.
Étape 6 : Exécuter la pré-vérification
Cliquez sur Next: Save Task Settings and Precheck .
Pour prévisualiser les paramètres API pour cette configuration, survolez le bouton et cliquez sur Preview OpenAPI parameters .
DTS exécute une pré-vérification avant de démarrer la migration. La tâche ne démarre qu'après la réussite de la pré-vérification.
Si la pré-vérification échoue, cliquez sur View Details à côté de l'élément ayant échoué, corrigez le problème et relancez la pré-vérification.
Si un avertissement apparaît : pour les éléments qui ne peuvent pas être ignorés, corrigez le problème et relancez. Pour les éléments qui peuvent être ignorés, cliquez sur Confirm Alert Details > Ignore > OK > Precheck Again . Ignorer les avertissements peut entraîner une incohérence des données.
Étape 7 : Acheter et démarrer
Lorsque le Success Rate atteint 100 %, cliquez sur Next: Purchase Instance .
-
Sur la page Purchase , sélectionnez la classe d'instance :
Paramètre Description Resource Group Settings Sélectionnez le groupe de ressources pour cette instance. Par défaut : groupe de ressources par défaut. Consultez la rubrique Qu'est-ce que Resource Management ?. Instance Class Sélectionnez une spécification en fonction de votre volume de migration et de vos exigences de vitesse. Consultez la rubrique Spécifications des liens de migration de données. Lisez et acceptez les Data Transmission Service (Pay-as-you-go) Service Terms .
Cliquez sur Buy and Start , puis cliquez sur OK dans la boîte de dialogue de confirmation.
Surveillez la progression de la migration sur la page de migration des données.
Si la tâche inclut à la fois la migration complète et incrémentielle, elle est affichée comme Incremental Data Migration sur la page de liste des tâches de migration.
Étapes suivantes
Pour vérifier la cohérence des données après la migration, consultez la rubrique Configurer une tâche de vérification des données.
Avant de basculer le trafic de l'application vers l'instance de destination, arrêtez ou libérez la tâche DTS pour empêcher les tâches récupérées automatiquement d'écraser les données de destination.
Pour d'autres scénarios de migration, consultez la rubrique Présentation des scénarios de migration de données.
Après la migration
L'instance de destination est une instance nouvelle et distincte, avec un endpoint de connexion différent de celui de l'instance source. Après avoir vérifié que les données sont correctes, modifiez la configuration de connexion de votre application pour utiliser l'endpoint de l'instance de destination, et ajoutez l'adresse IP du nouveau client (par exemple, le serveur migré) à la liste d'autorisation de l'instance de destination. Sinon, les écritures de votre application continueront d'être dirigées vers l'instance source.