Utilisez Data Transmission Service (DTS) pour migrer des données d'une instance PolarDB-X 2,0 vers une instance ApsaraDB RDS for MySQL avec un temps d'arrêt minimal. DTS prend en charge la migration de schéma, la migration complète des données et la migration incrémentielle des données, ce qui vous permet de maintenir la base de données source en ligne tout au long du processus.
Prérequis
Avant de commencer, assurez-vous de disposer des éléments suivants :
Une instance PolarDB-X 2,0 compatible avec MySQL 5.7
Une instance de destination ApsaraDB RDS for MySQL. Pour plus d'informations, consultez Créer une instance ApsaraDB RDS for MySQL
Un espace de stockage disponible sur l'instance de destination supérieur à la taille totale des données de l'instance source
Facturation
| Type de migration | Frais de configuration de l'instance | Frais de trafic Internet |
|---|---|---|
| Migration de schéma + migration complète des données | Gratuit | Facturé uniquement lors d'une migration depuis Alibaba Cloud via Internet. Consultez la Présentation de la facturation. |
| Migration incrémentielle des données | Facturé. Consultez la Présentation de la facturation. |
Autorisations requises
Accordez les autorisations suivantes aux comptes de base de données utilisés par DTS.
| Base de données | Migration de schéma | Migration complète des données | Migration incrémentielle des données |
|---|---|---|---|
| PolarDB-X 2,0 | SELECT | SELECT | REPLICATION SLAVE, REPLICATION CLIENT, SELECT |
| ApsaraDB RDS for MySQL | Lecture et écriture | Lecture et écriture | Lecture et écriture |
Pour obtenir des instructions sur la création de comptes et l'attribution d'autorisations sur l'instance source PolarDB-X 2,0 et l'instance de destination ApsaraDB RDS for MySQL, consultez les rubriques Créer un compte et Modifier les autorisations d'un compte.
Limites
Base de données source
| Catégorie | Limite |
|---|---|
| Bande passante | Le serveur de la base de données source doit disposer d'une bande passante sortante suffisante. Une bande passante faible réduit la vitesse de migration. |
| Structure de table | Les tables doivent comporter des contraintes PRIMARY KEY ou UNIQUE, et tous les champs doivent être uniques. Les tables dépourvues de ces contraintes peuvent générer des enregistrements en double dans la base de données de destination. |
| Nombre de tables | Si vous sélectionnez des tables comme objets et devez les renommer dans la base de données de destination, une seule tâche prend en charge jusqu'à 1 000 tables. Pour plus de 1 000 tables, créez plusieurs tâches ou migrez au niveau de la base de données. |
| Opérations DDL pendant la migration | Pendant la migration de schéma et la migration complète des données, n'exécutez pas d'opérations DDL modifiant les schémas de base de données ou de tables. Cela entraînerait l'échec de la tâche. |
| Modifications réseau | Si vous modifiez le type de réseau de l'instance PolarDB-X pendant la migration, mettez à jour en conséquence les paramètres de connexion réseau dans la tâche DTS. |
| Écritures pendant la migration complète | Lors d'une migration complète des données uniquement (sans migration incrémentielle), n'effectuez aucune écriture dans la base de données source. Pour garantir la cohérence, sélectionnez conjointement la migration de schéma, la migration complète des données et la migration incrémentielle des données. |
Exigences relatives à la migration incrémentielle des données
Pour la migration incrémentielle des données, la base de données source doit satisfaire aux exigences suivantes :
La journalisation binaire est activée et le paramètre
binlog_row_imageest défini surfull. Si cette configuration n'est pas effectuée, la prévérification échoue et la tâche ne peut pas démarrer.-
Période de rétention des journaux binaires : si les journaux ne sont pas conservés assez longtemps, DTS peut ne pas parvenir à les lire, ce qui entraîne l'échec de la tâche. Dans des cas exceptionnels, une perte de données ou une incohérence peut survenir. Une fois la migration complète terminée, vous pouvez réduire la période de rétention à plus de 24 heures.
Migration incrémentielle uniquement : conservez les journaux pendant plus de 24 heures
Migration complète + migration incrémentielle : conservez les journaux pendant au moins 7 jours
DTS ne garantit pas le contrat de niveau de service (SLA) si la rétention des journaux binaires ne respecte pas ces exigences.
Autres limites
Évaluez l'impact sur les performances des bases de données source et de destination avant la migration. Effectuez les migrations pendant les heures creuses. Lors de la migration complète des données, DTS utilise les ressources de lecture et d'écriture des bases de données source et de destination, ce qui peut augmenter la charge sur les serveurs de base de données.
Pendant la migration complète des données, les opérations INSERT simultanées provoquent une fragmentation dans les tables de destination. Après la migration complète, l'espace de table de destination est plus grand que celui de la source.
DTS tente de relancer les tâches ayant échoué pendant une durée maximale de 7 jours. Avant de basculer les charges de travail vers la base de données de destination, arrêtez ou libérez toute tâche ayant échoué, ou exécutez la commande
REVOKEpour supprimer les autorisations d'écriture de DTS sur la base de données de destination. Sinon, une reprise de tâche échouée écrasera les données dans la destination.
Précautions
DTS met régulièrement à jour la table
dts_health_check.ha_health_checkdans la base de données source pour faire avancer la position du journal binaire.DTS crée automatiquement des bases de données dans l'instance de destination ApsaraDB RDS for MySQL. Si le nom de la base de données source n'est pas valide, créez manuellement la base de données avant de configurer la tâche de migration. Pour plus d'informations, consultez la rubrique Gérer les bases de données.
Types de migration
DTS prend en charge trois types de migration que vous pouvez combiner selon vos besoins :
| Type de migration | Fonction | Recommandé pour |
|---|---|---|
| Migration de schéma | Migre les schémas des objets sélectionnés de la source vers la destination | À inclure systématiquement |
| Migration complète des données | Migre toutes les données existantes de la source vers la destination | Copie initiale des données |
| Migration incrémentielle des données | Réplique continuellement les modifications de la source vers la destination une fois la migration complète terminée | Minimiser le temps d'arrêt |
Pour effectuer une migration avec un temps d'arrêt minimal, sélectionnez les trois types. La migration incrémentielle maintient la synchronisation entre les bases de données source et de destination, ce qui vous permet d'effectuer le basculement lorsque vous êtes prêt.
Objets de migration pris en charge
| Type d'objet | Pris en charge | Notes |
|---|---|---|
| Tables (avec contraintes PRIMARY KEY ou UNIQUE) | Oui | |
| Index | Oui | Migrés dans le cadre de la migration de schéma |
| Vues, déclencheurs, procédures stockées | Non | Non migrés lorsque vous sélectionnez des tables ou des colonnes comme objets. Pour migrer ces éléments, sélectionnez la base de données comme objet. |
| Tables sans contraintes PRIMARY KEY ou UNIQUE | Non | Peut entraîner des enregistrements en double dans la destination |
Opérations SQL prises en charge pendant la migration incrémentielle
| Type | Opérations |
|---|---|
| DML | INSERT, UPDATE, DELETE |
| DDL | ALTER TABLE ; CREATE FUNCTION, CREATE INDEX, CREATE TABLE ; DROP INDEX, DROP TABLE ; RENAME TABLE ; TRUNCATE TABLE |
Les opérations RENAME TABLE peuvent provoquer une incohérence des données. Si vous sélectionnez une table comme objet de migration et la renommez pendant la migration, les données de cette table ne seront pas migrées vers la destination. Pour éviter cela, sélectionnez la base de données entière comme objet de migration plutôt que des tables individuelles.
Créer une tâche de migration
Étape 1 : Accéder aux tâches de migration de données
Connectez-vous à la console Data Management (DMS).
Dans la barre de navigation supérieure, placez le pointeur sur DTS.
Choisissez DTS (DTS) > Data Migration.
Vous pouvez également accéder directement à la page Data Migration de la nouvelle console DTS. La navigation peut varier selon le mode de la console DMS. Pour plus d'informations, consultez les rubriques Mode simple et Personnaliser la disposition et le style de la console DMS.
Étape 2 : Sélectionner une région
Dans la liste déroulante située à droite de Data Migration Tasks, sélectionnez la région où réside votre instance de migration.
Dans la nouvelle console DTS, sélectionnez la région dans le coin supérieur gauche.
Étape 3 : Configurer les bases de données source et de destination
Cliquez sur Create Task.
Sur la page Create Data Migration Task, examinez les Limits affichées en haut de la page avant de continuer.
-
Configurez la base de données source :
Paramètre Valeur Task Name Saisissez un nom explicite. Le nom n'a pas besoin d'être unique. Select a DMS database instance Sélectionnez une base de données existante ou configurez-en une nouvelle. Database Type PolarDB-X 2.0 Access Method Alibaba Cloud Instance Instance Region La région de l'instance PolarDB-X source Instance ID L'ID de l'instance PolarDB-X source Database Account Le compte disposant des autorisations requises (consultez la section Autorisations requises) Database Password Le mot de passe du compte -
Configurez la base de données de destination :
Paramètre Valeur Select a DMS database instance Sélectionnez une base de données existante ou configurez-en une nouvelle. Database Type MySQL Access Method Alibaba Cloud Instance Instance Region La région de l'instance de destination ApsaraDB RDS for MySQL RDS Instance ID L'ID de l'instance de destination ApsaraDB RDS for MySQL Database Account Le compte disposant des autorisations de lecture et d'écriture Database Password Le mot de passe du compte Connection Method Sélectionnez Non-encrypted ou SSL-encrypted. Pour utiliser le chiffrement SSL, activez d'abord SSL sur l'instance RDS. Consultez la rubrique Utiliser un certificat cloud pour activer le chiffrement SSL.
Étape 4 : Tester la connectivité
Cliquez sur Test Connectivity and Proceed.
DTS ajoute automatiquement ses blocs CIDR de serveur à la liste d'autorisation d'adresses IP des instances de base de données Alibaba Cloud. Pour les bases de données gérées par l'utilisateur, vous devrez peut-être ajouter manuellement ces blocs CIDR. Pour plus d'informations, consultez la rubrique Blocs CIDR des serveurs DTS.
L'ajout des blocs CIDR des serveurs DTS à la liste d'autorisation de votre base de données ou aux règles de groupe de sécurité introduit des risques de sécurité. Prenez des mesures préventives telles que l'utilisation d'identifiants robustes, la limitation des ports exposés, l'authentification des appels API et l'audit régulier des règles de liste d'autorisation. Vous pouvez également vous connecter via Express Connect, VPN Gateway ou Smart Access Gateway.
Étape 5 : Sélectionner les objets et les types de migration
Configurez les paramètres suivants :
| Paramètre | Description |
|---|---|
| Migration Types | Sélectionnez Schema Migration et Full Data Migration pour une migration ponctuelle. Ajoutez Incremental Data Migration pour maintenir la synchronisation des données et minimiser le temps d'arrêt. |
| Processing Mode of Conflicting Tables | Precheck and Report Errors : fait échouer la prévérification si la source et la destination contiennent des tables portant des noms identiques. Utilisez le mappage des noms d'objets pour résoudre les conflits. Ignore Errors and Proceed : ignore la vérification. Lors de la migration complète, les enregistrements de destination existants avec des clés primaires correspondantes sont conservés. Lors de la migration incrémentielle, ils sont écrasés. Procédez avec prudence. |
| Source Objects | Sélectionnez des objets dans Source Objects et déplacez-les vers Selected Objects à l'aide de l'icône |
| Selected Objects | Cliquez avec le bouton droit sur un objet pour le renommer, ajouter des conditions de filtrage ou sélectionner des opérations SQL spécifiques à migrer. Pour renommer plusieurs objets à la fois, cliquez sur Batch Edit. Remarque : le renommage d'un objet peut entraîner l'échec des objets dépendants. Consultez les rubriques Mapper les noms d'objets et Spécifier les conditions de filtrage. |
Étape 6 : Configurer les paramètres avancés
Cliquez sur Next: Advanced Settings et configurez les éléments suivants :
| Paramètre | Description |
|---|---|
| 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 votre seuil. Configurez le seuil d'alerte et les paramètres de notification. Consultez la rubrique Configurer la surveillance et les alertes. |
| Retry Time for Failed Connections | Plage de temps pendant laquelle DTS tente de reconnecter les connexions échouées. Valeurs valides : 10–1440 minutes. Par défaut : 720 minutes. Définissez une valeur supérieure à 30 minutes. Si DTS se reconnecte dans ce délai, la tâche reprend. Sinon, la tâche échoue. Remarque : la facturation DTS se poursuit pendant les tentatives de reconnexion. |
| Configure ETL | Sélectionnez Yes pour activer la fonctionnalité extract, transform, and load (ETL) et saisir les instructions de traitement des données. 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. |
| Whether to delete SQL operations on heartbeat tables of forward and reverse tasks | Yes : DTS n'écrit pas de SQL de pulsation dans la base de données source, mais la latence de migration peut apparaître dans les métriques. No : DTS écrit du SQL de pulsation, ce qui peut affecter les opérations de sauvegarde physique et de clonage sur la source. |
Étape 7 : Exécuter la prévérification
Cliquez sur Next: Save Task Settings and Precheck.
Pour afficher un aperçu des paramètres API de cette tâche, placez le pointeur sur Next: Save Task Settings and Precheck et cliquez sur Preview OpenAPI parameters.
DTS exécute automatiquement une prévérification. Résolvez tous les problèmes avant de continuer :
Éléments ayant échoué : cliquez sur View Details, corrigez le problème signalé, puis cliquez sur Precheck Again.
Éléments d'alerte bloquant la tâche : cliquez sur View Details, corrigez le problème, puis exécutez à nouveau la prévérification.
Éléments d'alerte pouvant être ignorés : cliquez sur Confirm Alert Details > Ignore > OK, puis cliquez sur Precheck Again. Ignorer les alertes peut entraîner une incohérence des données.
Étape 8 : Acheter une instance
Attendez que le Success Rate atteigne 100 %.
Cliquez sur Next: Purchase Instance.
-
Sur la page Purchase Instance, configurez l'instance :
Paramètre Description 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 des instances de migration de données. Cochez la case 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.
Surveillez la progression de la tâche sur la page Data Migration.
Basculer vers la base de données de destination
Avant de basculer vos applications vers la base de données de destination :
Arrêtez les écritures dans la base de données source.
Attendez que la latence de migration incrémentielle atteigne 0 et confirmez que l'écart de données entre la source et la destination est comblé. Attendez que les deux valeurs restent stables avant de continuer.
Arrêtez ou libérez la tâche de migration.
Mettez à jour les chaînes de connexion de votre application pour qu'elles pointent vers l'instance de destination ApsaraDB RDS for MySQL.
DTS tente de relancer les tâches ayant échoué pendant une durée maximale de 7 jours. Si vous n'arrêtez pas la tâche avant le basculement, une reprise de tâche risque d'écraser les données dans la base de données de destination. Arrêtez la tâche ou exécutez la commande REVOKE pour supprimer les autorisations d'écriture de DTS avant d'effectuer le basculement.