Utilisez Data Transmission Service (DTS) pour migrer des données entre des instances Tair (compatibles avec Redis OSS) avec un temps d'arrêt minimal. DTS prend en charge la migration complète des données et la migration incrémentielle des données, ce qui vous permet de maintenir votre instance source en cours d'exécution pendant la migration.
Prérequis
Avant de commencer, assurez-vous que vous disposez des éléments suivants :
Une instance source et une instance de destination Tair (compatible avec Redis OSS). Pour créer des instances, consultez Étape 1 : Créer une instance
Un espace de stockage libre suffisant sur l'instance de destination ; il doit être supérieur à l'espace de stockage utilisé par l'instance source
Un compte d'instance source disposant d'autorisations de lecture ; un compte d'instance de destination disposant d'autorisations de lecture et d'écriture
Pour connaître les versions de base de données prises en charge, consultez Présentation des solutions de migration .
Choisir un type de migration
Sélectionnez le type de migration en fonction de votre tolérance aux temps d'arrêt :
|
Type de migration |
Fonctionnement |
Cas d'utilisation |
|
Full data migration |
Copie toutes les données existantes de la source vers la destination. Gratuit. Lorsque la méthode d'accès de la destination Access Method est définie sur Public IP Address, des frais de trafic Internet s'appliquent — consultez Présentation de la facturation. |
Vous pouvez tolérer une fenêtre de maintenance et arrêterez les écritures sur la source pendant la migration. |
|
Full + incremental data migration |
Copie les données existantes, puis réplique continuellement les écritures jusqu'au basculement. La phase incrémentielle est facturée — consultez Présentation de la facturation. |
Vous avez besoin d'un temps d'arrêt nul ou quasi nul. Recommandé pour les charges de travail de production. |
Si vous sélectionnez uniquement la migration complète des données, arrêtez toutes les écritures sur l'instance source pendant la migration. Les écritures sur la source après la prise du snapshot ne sont pas reflétées dans la destination, ce qui entraîne une incohérence des données.
Limites
Examinez ces limites avant de démarrer votre tâche de migration.
Limites de l'instance source :
La version de l'instance source ne peut pas être la 2,8.
Le serveur hébergeant l'instance source doit disposer d'une bande passante sortante suffisante. Une bande passante insuffisante réduit la vitesse de migration.
DTS écrit une clé de heartbeat préfixée par
DTS_REDIS_TIMESTAMP_HEARTBEATdans l'instance source (une par shard dans les déploiements en cluster). La clé est filtrée pendant la migration et expire une fois la tâche terminée.Si la source est une instance Tair (Enterprise Edition) avec Storage Medium: Persistent Memory, définissez le paramètre
appendonlysuryesavant la migration. Consultez Désactiver la persistance AOF.Si la source est en lecture seule, ou si le compte ne dispose pas de l'autorisation
SETEX, la latence de migration signalée peut être inexacte.-
Architecture en cluster : chaque commande Redis opère sur un seul slot. Les opérations cross-slot sur la source provoquent cette erreur et interrompent la tâche de migration :
CROSSSLOT Keys in request don't hash to the same slotOpérez sur une seule clé à la fois pendant la migration.
Limites de l'instance de destination :
Les instances optimisées pour le stockage de Tair (Compatible avec Redis OSS) Enhanced Edition ne peuvent pas être utilisées comme source ou destination.
La version de l'instance de destination doit être identique ou supérieure à celle de la source.
Si Transparent Data Encryption (TDE) est activé sur la destination, DTS ne peut pas y migrer les données.
Si un shard de cluster de destination manque de mémoire ou d'espace de stockage, la tâche de migration échoue avec une erreur out of memory (OOM).
La politique d'éviction par défaut (
maxmemory-policy) estvolatile-lru. Si la destination manque de mémoire, une incohérence des données peut en résulter. Définissez la politique d'éviction surnoevictionafin que DTS échoue explicitement les écritures plutôt que d'évincer silencieusement les données. Pour plus de détails, consultez Comment Tair (compatible avec Redis OSS) évince-t-il les données par défaut ?
Autres limites :
DTS ne vide pas les données LIST existantes dans la destination avant l'écriture. Si la destination contient déjà des clés LIST, des doublons peuvent apparaître.
Scripts Lua
EVALetEVALSHA: DTS ne peut pas confirmer l'exécution sur la destination pendant la migration incrémentielle.Les clés avec des politiques d'expiration peuvent ne pas être supprimées immédiatement après l'expiration, de sorte que le nombre de clés de destination peut être inférieur à celui de la source.
Si la Access Method pour une base de données Redis auto-gérée est Public IP Address, vous ne pouvez pas définir Instance Mode sur Cluster.
TLS : Si TLS est activé sur une instance Tair, connectez-vous via SSL-encrypted. TLSv1.3 n'est pas pris en charge et vous ne pouvez pas connecter une instance activée pour SSL en tant qu'Alibaba Cloud Instance.
La modification de la configuration de l'instance (spécifications, numéro de port) pendant la migration interrompt la tâche. Supprimez les données de destination et reconfigurez la tâche de migration après toute modification de configuration.
DTS relance les tâches de migration ayant échoué pendant sept jours maximum. Avant de basculer les charges de travail vers la destination, arrêtez ou libérez toutes les tâches DTS ayant échoué. Sinon, une tâche reprise peut écraser les données de destination avec des données obsolètes de la source.
Si une instance de migration de données contient à la fois des tâches de migration complète et incrémentielle des données, DTS peut redémarrer les deux tâches après le redémarrage de l'instance.
Si l'instance ne parvient pas à s'exécuter, le support technique DTS tentera de la restaurer dans un délai de 8 heures. Pendant la restauration, l'instance peut être redémarrée ou les paramètres de l'instance DTS peuvent être ajustés (les paramètres de la base de données ne sont pas modifiés). Pour les paramètres susceptibles d'être ajustés, consultez Modifier les paramètres de l'instance.
-
Les événements suivants peuvent provoquer une remigration complète, entraînant une éventuelle incohérence des données :
Échec du téléchargement reprenable dû à des connexions transitoires
Basculement primaire/secondaire ou failover sur la source ou la destination
Changement d'endpoint sur la source ou la destination
Redis auto-géré uniquement :
Un basculement primaire/secondaire sur la source pendant la migration entraîne l'échec de la tâche.
La latence de migration est calculée à partir de l'horodatage du dernier enregistrement migré par rapport à l'heure actuelle de la source. Si la source n'a aucune activité DML pendant une période prolongée, la latence signalée peut être inexacte. Pour maintenir la précision de la latence, créez une table de heartbeat qui écrit chaque seconde lors de la migration d'une base de données entière.
Commandes prises en charge pour la migration incrémentielle des données
DTS prend en charge les commandes Redis suivantes lors de la migration incrémentielle des données :
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
Créer une tâche de migration
Étape 1 : Accéder à la page Data Migration
Utilisez la console DTS ou la console DMS.
Console DTS
Connectez-vous à la console DTS.console DTS
Dans le volet de navigation de gauche, cliquez sur Data Migration.
Dans le coin supérieur gauche, sélectionnez la région où se trouve votre instance de migration.
Console DMS
Les étapes peuvent varier selon le mode et la disposition de la console DMS. Consultez les rubriques Simple mode et Customize the layout and style of the DMS console .
Connectez-vous à la console DMS.console DMS
Dans la barre de navigation supérieure, accédez à Data + AI > DTS (DTS) > Data Migration.
Dans la liste déroulante située à droite de Data Migration Tasks, sélectionnez la région où se trouve votre instance de migration.
Étape 2 : Configurer les bases de données source et de destination
Cliquez sur Create Task pour ouvrir la page de configuration de la tâche.
-
Configurez les bases de données source et de destination à l'aide des paramètres du tableau suivant.
Catégorie
Paramètre
Description
N/A
Nom de la tâche
Saisissez un nom descriptif pour la tâche DTS. Le nom n'a pas besoin d'être unique.
Base de données source
Sélectionner une connexion existante
Sélectionnez une instance de base de données enregistrée dans la liste déroulante pour remplir automatiquement les champs ci-dessous. Si l'instance n'est pas enregistrée, remplissez manuellement les champs.
Type de base de données
Sélectionnez Tair/Redis.
Access Method
Sélectionnez Alibaba Cloud Instance.
Région de l'instance
Sélectionnez la région de l'instance source Tair (compatible avec Redis OSS).
Répliquer les données entre les comptes Alibaba Cloud
Sélectionnez No pour une migration au sein du même compte.
Instance ID
Sélectionnez l'ID de l'instance source.
Méthode d'authentification
Sélectionnez une méthode d'authentification. Cet exemple utilise Password Login. L'option Account + Password Login nécessite Redis 6.0 ou une version ultérieure. Pour l'option Secret-free login, activez d'abord l'accès sans mot de passe sur l'instance ; consultez la rubrique Enable password-free access.
Mot de passe de la base de données
Saisissez le mot de passe de l'instance source (des autorisations en lecture sont requises). Pour le compte par défaut, saisissez uniquement le mot de passe. Pour un compte personnalisé, utilisez le format
<account>:<password>— par exemple,testaccount:Test1234. Laissez ce champ 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 un mot de passe.Chiffrement
Sélectionnez Non-encrypted ou SSL-encrypted. Pour une instance Redis gérée par vos soins avec SSL, téléchargez un CA Certificate et saisissez une CA Key.
Base de données de destination
Sélectionner une connexion existante
Identique à la source : sélectionnez une instance enregistrée ou remplissez manuellement les champs.
Type de base de données
Sélectionnez Tair/Redis.
Access Method
Sélectionnez Alibaba Cloud Instance.
Région de l'instance
Sélectionnez la région de l'instance de destination Tair (compatible avec Redis OSS).
Répliquer les données entre les comptes Alibaba Cloud
Sélectionnez No pour une migration au sein du même compte.
Instance ID
Sélectionnez l'ID de l'instance de destination.
Méthode d'authentification
Mêmes options que pour la source.
Mot de passe de la base de données
Saisissez le mot de passe de l'instance de destination (des autorisations en lecture et en écriture sont requises). Utilisez le même format de mot de passe que pour la source.
Chiffrement
Sélectionnez Non-encrypted ou SSL-encrypted.
-
Cliquez sur Test Connectivity and Proceed.
Ajoutez les blocs CIDR des serveurs DTS aux paramètres de sécurité de vos instances source et de destination. Consultez la rubrique Add the CIDR blocks of DTS servers . Pour les bases de données gérées par vos soins qui n'utilisent pas l'accès Alibaba Cloud Instance , cliquez sur Test Connectivity dans la boîte de dialogue CIDR Blocks of DTS Servers .
Étape 3 : Sélectionner les objets et configurer les paramètres avancés
-
Sur la page Configure Objects , configurez les paramètres suivants.
Paramètre
Description
Migration Types
-
Instances Redis Open-Source Edition : sélectionnez Full Data Migration + Incremental Data Migration ou Full Data Migration. Nous vous recommandons de sélectionner Full Data Migration + Incremental Data Migration afin de garantir la cohérence des données. Si le compte DTS ne dispose pas des autorisations
SYNCouPSYNCsur la source, sélectionnez uniquement Full Data Migration. -
Instances Tair (Enterprise Edition) : sélectionnez Full Data Migration et/ou Incremental Data Migration selon vos besoins. Nous vous recommandons de sélectionner les deux options pour garantir la cohérence des données.
Processing Mode of Conflicting Tables
Precheck and Report Errors : vérifie que la destination est vide avant de démarrer ; l'étape de précontrôle échoue si ce n'est pas le cas. Ignore Errors and Proceed : ignore la vérification de vacuité de la destination.
AvertissementLes données source écrasent les données de destination pour les clés correspondantes, ce qui peut entraîner une perte de données.
Source Objects
Sélectionnez une ou plusieurs bases de données dans la liste Source Objects , puis cliquez sur l'icône de flèche pour les déplacer vers Selected Objects . Pour migrer des clés spécifiques, utilisez la fonctionnalité de filtrage des données dans la zone Selected Objects .
Selected Objects
Pour mapper vers une base de données de destination spécifique (DB 0–DB 255) ou filtrer par préfixe de clé, faites un clic droit sur une base de données dans la zone Selected Objects , puis configurez la boîte de dialogue Edit Schema . Consultez les rubriques Mappage de schéma et Filtrer les données de tâche avec une condition SQL.
-
-
Cliquez sur Next: Advanced Settings et configurez les éléments suivants.
Paramètre
Description
Dedicated Cluster for Task Scheduling
Par défaut, DTS utilise un cluster partagé. Achetez un cluster dédié pour une meilleure stabilité de la migration. Consultez la rubrique Qu'est-ce qu'un cluster dédié DTS ?.
Retry Time for Failed Connections
Durée pendant laquelle DTS effectue de nouvelles tentatives après un échec de connexion. Valeurs valides : 10 à 1 440 minutes. Valeur par défaut : 720 minutes. Définissez une valeur d'au moins 30 minutes. Si DTS se reconnecte dans ce délai, la tâche reprend. Sinon, la tâche échoue.
RemarqueLorsque plusieurs tâches partagent la même source ou la même destination, le délai de nouvelle tentative défini le plus récemment est prioritaire. DTS facture l'instance pendant les nouvelles tentatives.
Retry Time for Other Issues
Durée pendant laquelle DTS effectue de nouvelles tentatives après des échecs DDL ou DML. Valeurs valides : 1 à 1 440 minutes. Valeur par défaut : 10 minutes. Définissez une valeur supérieure à 10 minutes. Elle doit être inférieure au Retry Time for Failed Connections.
Enable Throttling for Full Data Migration
Limite le débit de la migration complète pour réduire la charge sur la source et la destination. Configurez les paramètres 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 Types de migration inclut Full Data Migration .
Enable Throttling for Incremental Data Migration
Limite le débit de la migration incrémentielle. Configurez les paramètres RPS of Incremental Data Migration et Data migration speed for incremental migration (MB/s) . Disponible uniquement lorsque Types de migration inclut Incremental Data Migration .
Extend Expiration Time of Destination Database Key
Ajoute un temps d'expiration supplémentaire aux clés migrées vers la destination. Utilisez cette option lorsque votre application utilise des commandes telles que
expire,pexpire,expireatoupexpireatafin d'éviter l'expiration des clés avant le basculement.RemarqueCela peut retarder la libération des verrous distribués.
Environment Tag
Facultatif. Sélectionnez un tag pour étiqueter l'instance.
Configure ETL
Sélectionnez Yesalert notification settings pour configurer les règles ETL (extract, transform, load). Saisissez les instructions de traitement des données dans l'éditeur de code. Consultez la rubrique Configurer ETL dans une tâche de migration ou de synchronisation de données. Sélectionnez No pour ignorer cette étape.
Monitoring and Alerting
Sélectionnez Yes pour recevoir des alertes en cas d'échec de la tâche ou si la latence de migration dépasse un seuil. Configurez le seuil d'alerte et les paramètres de notification. Consultez la rubrique Configurer la surveillance et les alertes.
Cliquez sur Next Step: Data Verification pour configurer la vérification des données (facultatif). Consultez la rubrique Configurer une tâche de vérification des données.
Étape 4 : Exécuter le précontrôle
-
Cliquez sur Next: Save Task Settings and Precheck .
Pour afficher les paramètres API correspondants avant l'enregistrement, survolez le bouton et cliquez sur Preview OpenAPI parameters .
-
Attendez la fin du précontrôle. DTS doit réussir le précontrôle avant que la tâche de migration ne démarre.
Si un élément de vérification échoue, cliquez sur View Details à côté de l'élément ayant échoué, corrigez le problème, puis cliquez sur Precheck Again .
Si une alerte est déclenchée : si elle ne peut pas être ignorée, corrigez-la et relancez la vérification. Si elle peut être ignorée, cliquez sur Confirm Alert Details > Ignore > OK > Precheck Again . Ignorer une alerte peut entraîner une incohérence des données.
Étape 5 : Acheter et démarrer l'instance
Attendez que le Success Rate atteigne 100% , puis cliquez sur Next: Purchase Instance .
-
Sur la page Purchase Instance , configurez les éléments suivants.
Section
Paramètre
Description
New Instance Class
Resource Group
Groupe de ressources pour l'instance de migration. Par défaut : default resource group . Consultez la rubrique Qu'est-ce que Resource Management ?
Instance Class
Sélectionnez une classe d'instance en fonction de la vitesse de migration requise. Consultez la rubrique Classes d'instances pour les instances de migration de données.
Lisez et cochez la case pour accepter les Data Transmission Service (Pay-as-you-go) Service Terms .
Cliquez sur Buy And Start , puis sur OK dans la boîte de dialogue de confirmation.
Suivez la progression sur la page de migration des données.
Si la tâche inclut à la fois une migration complète et une migration incrémentielle, elle apparaît sous la forme Incremental Data Migration dans la liste des tâches.
Après la migration
Une fois la migration en cours d'exécution (ou terminée pour les migrations complètes uniquement), effectuez les étapes suivantes avant de mettre hors service l'instance source.
1. Vérifiez la cohérence des données
Comparez le nombre de clés et effectuez des vérifications ponctuelles des données dans l'instance de destination. Gardez à l'esprit que les clés expirées peuvent entraîner un nombre légèrement inférieur sur l'instance de destination.
Si vous avez configuré la vérification des données lors de la configuration de la tâche, consultez les résultats de la vérification dans la console DTS.
2. Basculez le trafic de l'application
Mettez à jour la chaîne de connexion de votre application pour qu'elle pointe vers l'instance de destination. Pour les migrations incrémentielles, attendez que la latence de migration tombe à zéro ou presque avant d'effectuer le basculement ; cela confirme que l'instance de destination est entièrement synchronisée.
3. Arrêtez et libérez la tâche DTS
Après avoir confirmé que votre application fonctionne correctement avec l'instance de destination, arrêtez la tâche de migration DTS. DTS réessaie les tâches échouées pendant sept jours maximum ; par conséquent, la libération de la tâche empêche sa reprise et l'écrasement des données sur l'instance de destination.