Vous pouvez utiliser Data Transmission Service (DTS) pour migrer des données d'une instance ApsaraDB RDS for MySQL Enterprise Edition vers une instance Cluster Edition avec un temps d'arrêt minimal, tout en maintenant votre application opérationnelle pendant le processus.
Prérequis
Avant de commencer, assurez-vous de disposer des éléments suivants :
Une instance source ApsaraDB RDS for MySQL Enterprise Edition et une instance de destination Cluster Edition. Consultez la rubrique 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 sur l'instance source.
Le paramètre
binlog_formatdéfini surROWet le paramètrebinlog_row_imagedéfini surFULLsur l'instance source. Consultez la documentation Modifier les paramètres d'une instance. Si ces paramètres ne sont pas configurés correctement, la vérification préalable échoue et la tâche de migration ne peut pas démarrer.
Autorisations requises
Accordez les autorisations suivantes aux comptes de base de données utilisés par DTS.
| Base de données | Migration du schéma | Migration complète des données | Migration incrémentielle des données |
|---|---|---|---|
| Instance source ApsaraDB RDS for MySQL Enterprise Edition | SELECT | SELECT | Lecture et écriture |
| Instance de destination ApsaraDB RDS for MySQL Cluster Edition | Lecture et écriture | Lecture et écriture | Lecture et écriture |
Pour créer des comptes et accorder des autorisations, consultez les rubriques Créer un compte et Modifier les autorisations d'un compte.
Types de migration
DTS prend en charge trois types de migration que vous pouvez combiner selon vos besoins.
La migration du schéma copie les schémas des objets sélectionnés — tables, vues, déclencheurs, procédures stockées et fonctions stockées — de la source vers la destination. Lors de la migration du schéma :
DTS migre les clés étrangères de la source vers la destination.
L'attribut SECURITY passe de DEFINER à INVOKER pour les vues, les procédures stockées et les fonctions. Pour appeler ces objets sur la destination, accordez des autorisations de lecture et d'écriture à INVOKER.
DTS ne migre pas les comptes utilisateurs.
Pendant la migration complète des données et la migration incrémentielle des données, DTS désactive temporairement la vérification des contraintes et les opérations en cascade sur les clés étrangères au niveau de la session. Si vous effectuez des opérations de mise à jour et de suppression en cascade sur la base de données source pendant la migration des données, des incohérences de données peuvent survenir.
La migration complète des données copie toutes les données historiques des objets sélectionnés de la source vers la destination.
La migration incrémentielle des données réplique continuellement les modifications de la source vers la destination une fois la migration complète des données terminée, maintenant ainsi la synchronisation entre les deux instances pendant que votre application continue de fonctionner.
Choisir votre approche de migration
| Objectif | Sélectionnez |
|---|---|
| Migration ponctuelle avec une fenêtre de maintenance planifiée | Migration du schéma + Migration complète des données |
| Minimiser le temps d'arrêt — maintenir l'application opérationnelle pendant la migration | Migration du schéma + Migration complète des données + Migration incrémentielle des données |
Si vous exécutez uniquement la migration complète des données (sans migration incrémentielle), arrêtez toutes les écritures sur la base de données source pendant la migration pour éviter toute incohérence des données.
Opérations SQL prises en charge par la migration incrémentielle des données
| Type d'opération | Instructions SQL |
|---|---|
| DML | INSERT, UPDATE, DELETE |
| DDL | ALTER TABLE, ALTER VIEW; CREATE FUNCTION, CREATE INDEX, CREATE PROCEDURE, CREATE TABLE, CREATE VIEW; DROP INDEX, DROP TABLE; RENAME TABLE; TRUNCATE TABLE |
Les opérations RENAME TABLE peuvent provoquer des incohérences de données. Si vous renommez une table pendant la migration et que cette table a été sélectionnée comme objet de migration, ses données ne seront pas répliquées vers la destination. Pour éviter cela, sélectionnez la base de données (et non des tables individuelles) comme objet de migration, et assurez-vous que les noms de base de données avant et après le renommage sont inclus dans le périmètre de migration.
Facturation
| Type de migration | Frais de configuration de l'instance | Frais de trafic Internet |
|---|---|---|
| Migration du schéma + migration complète des données | Gratuit | Facturé uniquement lorsque les données sont migrées depuis Alibaba Cloud via Internet |
| Migration incrémentielle des données | Facturé | — |
Pour plus de détails sur les tarifs, consultez la rubrique Présentation de la facturation.
Limites
Base de données source
Le serveur source doit disposer d'une bande passante sortante suffisante. Une bande passante insuffisante réduit la vitesse de migration.
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 destination.
Si vous sélectionnez des tables comme objets de migration et devez renommer des tables ou des colonnes dans la destination, la limite est de 1 000 tables par tâche. Pour les migrations plus importantes, divisez l'opération en plusieurs tâches ou sélectionnez la base de données entière comme objet de migration.
-
Exigences de conservation des journaux binaires :
Migration incrémentielle uniquement : conservez les journaux binaires pendant plus de 24 heures
Migration complète + incrémentielle : conservez les journaux binaires pendant au moins 7 jours
Une fois la migration complète terminée, vous pouvez réduire la période de conservation à plus de 24 heures. Le fait de descendre en dessous de ces seuils peut empêcher DTS de récupérer les journaux binaires, ce qui peut entraîner l'échec de la tâche ou une perte de données. L'accord de niveau de service (SLA) du service DTS ne couvre pas la fiabilité du service si ces exigences ne sont pas respectées.
Pendant la migration du 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. La tâche échouerait.
Pendant la migration complète des données uniquement : n'écrivez pas de données dans la base de données source. Si vous devez maintenir les écritures, incluez la migration incrémentielle des données.
Généralités
Utilisez la même version du moteur MySQL pour les instances source et de destination afin de garantir la compatibilité.
Planifiez la migration pendant les heures creuses. La migration complète des données utilise les ressources de lecture et d'écriture sur les deux instances, ce qui augmente la charge du serveur.
Après la migration complète des données, l'espace de table sur la destination peut être plus grand que sur la source en raison de la fragmentation causée par les opérations INSERT concurrentes.
Pour les colonnes FLOAT et DOUBLE, DTS utilise
ROUND(COLUMN, PRECISION)pour lire les valeurs. Si vous ne spécifiez pas de précision, DTS applique par défaut 38 chiffres pour FLOAT et 308 chiffres pour DOUBLE. Vérifiez que ces valeurs par défaut répondent à vos exigences avant de commencer.DTS retente automatiquement les tâches ayant échoué pendant un maximum de 7 jours. Avant de basculer les charges de travail vers la destination, arrêtez ou libérez toutes les tâches ayant échoué, ou exécutez
REVOKEpour supprimer l'accès en écriture de DTS à la destination. Sinon, les données source pourraient écraser les données de destination lors de la reprise d'une tâche ayant échoué.Si le nom de la base de données source n'est pas valide, créez manuellement la base de données de destination avant de configurer la tâche. Consultez Gérer les bases de données. Pour les noms de base de données valides, DTS crée automatiquement la base de données de destination.
Configurer la tâche de migration
Étape 1 : Accéder à la page des 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, puis choisissez DTS (DTS) > Data Migration.
Les étapes peuvent varier selon le mode de la console DMS. Consultez les rubriques Mode simple et Personnaliser la disposition et le style de la console DMS. Vous pouvez également accéder directement à la page Data Migration de la nouvelle console DTS.
Étape 2 : Sélectionner la 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 de données.
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 de création de la tâche de migration de données, configurez les bases de données source et de destination comme suit.
Après avoir configuré les bases de données source et de destination, lisez les Limits affichées en haut de la page avant de poursuivre.
Base de données source
| Paramètre | Valeur |
|---|---|
| Select an existing DMS database instance | (Facultatif) Sélectionnez une instance existante pour remplir automatiquement les paramètres ci-dessous. |
| Database Type | MySQL |
| Access Method | Alibaba Cloud Instance |
| Instance Region | La région où réside l'instance source |
| Replicate Data Across Alibaba Cloud Accounts | No |
| RDS Instance ID | L'ID de l'instance Enterprise Edition source |
| Database Account | Le compte de base de données disposant des autorisations requises (voir Autorisations requises) |
| Database Password | Le mot de passe du compte |
| Encryption | Sélectionnez Non-encrypted ou SSL-encrypted. Pour utiliser le chiffrement SSL, activez-le d'abord sur l'instance RDS. Consultez la rubrique Utiliser un certificat cloud pour activer le chiffrement SSL. |
Base de données de destination
| Paramètre | Valeur |
|---|---|
| Select an existing DMS database instance | (Facultatif) Sélectionnez une instance existante pour remplir automatiquement les paramètres ci-dessous. |
| Database Type | MySQL |
| Access Method | Alibaba Cloud Instance |
| Instance Region | La région où réside l'instance de destination |
| RDS Instance ID | L'ID de l'instance Cluster Edition de destination |
| Database Account | Le compte de base de données disposant des autorisations en lecture et en écriture |
| Database Password | Le mot de passe du compte |
| Encryption | Sélectionnez Non-encrypted ou SSL-encrypted. |
É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 ApsaraDB RDS.
Pour les bases de données autogérées sur des instances Elastic Compute Service (ECS), DTS ajoute ses blocs CIDR aux règles du groupe de sécurité ECS. Si la base de données s'exécute sur plusieurs instances ECS, ajoutez manuellement les blocs CIDR DTS au groupe de sécurité de chaque instance. Pour les bases de données autogérées dans des centres de données ou sur des clouds tiers, ajoutez manuellement les blocs CIDR DTS à la liste d'autorisation d'adresses IP de la base de données. Pour obtenir la liste complète des blocs CIDR, consultez la rubrique Ajouter les blocs CIDR des serveurs DTS.
L'ajout des blocs CIDR des serveurs DTS à votre liste d'autorisation ou à vos règles de groupe de sécurité introduit des risques de sécurité. Prenez des mesures préventives, notamment en renforçant les identifiants de compte, en limitant les ports exposés, en authentifiant les appels API, en auditant régulièrement la liste d'autorisation et les règles de groupe de sécurité, et en envisageant des options de connectivité privée telles que Express Connect, VPN Gateway ou Smart Access Gateway.
Étape 5 : Sélectionner les objets et configurer les paramètres de migration
Configurez les paramètres suivants.
| Paramètre | Description |
|---|---|
| Migration Types | Sélectionnez les types de migration en fonction de votre approche. Consultez Choisir votre approche de migration. |
| Processing Mode of Conflicting Tables | Precheck and Report Errors : échoue lors de la vérification préalable si la destination contient des tables portant les mêmes noms que celles de la source. Utilisez cette option pour détecter les conflits avant le début de la migration. Ignore Errors and Proceed : ignore la vérification des conflits de noms. Lors de la migration complète des données, les enregistrements existants dans la destination sont conservés. Lors de la migration incrémentielle des données, les enregistrements existants sont écrasés. Si les schémas diffèrent entre la source et la destination, seules certaines colonnes peuvent être migrées, ou la tâche peut échouer. Utilisez cette option avec prudence. |
| Capitalization of Object Names in Destination Instance | La valeur par défaut est DTS default policy. Ajustez ce paramètre si la base de données de destination a des exigences spécifiques concernant la casse. Consultez la rubrique Spécifier la casse des noms d'objets dans l'instance de destination. |
| Source Objects | Sélectionnez un ou plusieurs objets, puis cliquez sur l'icône de flèche vers la droite pour les déplacer vers Selected Objects. Vous pouvez sélectionner des colonnes, des tables ou des bases de données entières. La sélection de tables ou de colonnes exclut les vues, les déclencheurs et les procédures stockées de la migration. |
| Selected Objects | Pour renommer un seul objet, faites un clic droit dessus et sélectionnez une option de renommage. Pour renommer plusieurs objets, cliquez sur Batch Edit. Consultez la rubrique Mapper les noms d'objets. Pour filtrer les lignes avec une condition WHERE, faites un clic droit sur l'objet et spécifiez la condition. Consultez Spécifier les conditions de filtre. Pour sélectionner les opérations DML ou DDL à répliquer de manière incrémentielle, faites un clic droit sur l'objet et configurez les opérations. |
Le renommage d'un objet peut entraîner l'échec de la migration des objets dépendants.
Étape 6 : Configurer les paramètres avancés
Cliquez sur Next: Advanced Settings.
Data Verification Settings : pour activer la vérification des données, consultez la rubrique Configurer une tâche de vérification des données.
Advanced Settings :
| Paramètre | Description |
|---|---|
| Monitoring and Alerting | Sélectionnez Yes pour recevoir des alertes lorsque la tâche échoue ou lorsque 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](https://www.alibabacloud.com/help/en/dts/user-guide/configure-monitoring-and-alerting-1#section-r6s-w5c-kmz). |
| Copy the temporary table of the Online DDL tool that is generated in the source table to the destination database | Contrôle la manière dont DTS gère les tables temporaires issues des outils DDL en ligne. Yes : migre les données de la table temporaire. Peut entraîner une latence si le volume de données est important. No, Adapt to DMS Online DDL : migre uniquement le DDL d'origine de DMS ; les données de la table temporaire sont ignorées. Les tables de la destination peuvent être verrouillées. No, Adapt to gh-ost : migre uniquement le DDL d'origine de l'outil gh-ost ; les données de la table temporaire sont ignorées. Utilisez des expressions régulières par défaut ou personnalisées pour filtrer les tables fantômes. Les tables de la destination peuvent être verrouillées. Important
N'utilisez pas pt-online-schema-change sur la base de données source pendant la migration, car cela entraînerait l'échec de la tâche DTS. |
| Retry Time for Failed Connections | La période pendant laquelle DTS tente de reconnecter une connexion perdue. Plage valide : 10 à 1 440 minutes. Valeur par défaut : 720 minutes. Définissez cette valeur à au moins 30 minutes. Si DTS se reconnecte dans ce délai, la tâche reprend automatiquement ; sinon, elle échoue. DTS facture l'instance pendant les tentatives de reconnexion. Si plusieurs tâches partagent la même source ou la même destination, la valeur définie le plus récemment s'applique. |
| Configure ETL | Sélectionnez Yes pour utiliser la fonctionnalité ETL (extraction, transformation et chargement) afin de transformer les données pendant la migration. Consultez les rubriques [Qu'est-ce que l'ETL ?](https://www.alibabacloud.com/help/en/dts/user-guide/what-is-etl#task-2101705) et [Configurer l'ETL dans une tâche de migration ou de synchronisation de données](https://www.alibabacloud.com/help/en/dts/user-guide/configure-etl-in-a-data-migration-or-data-synchronization-task#task-2189872). |
Étape 7 : Exécuter la vérification préalable
Cliquez sur Next: Save Task Settings and Precheck.
DTS exécute automatiquement une vérification préalable. La tâche ne peut pas démarrer tant que tous les éléments de vérification préalable n'ont pas réussi.
Si un élément de vérification préalable échoue, cliquez sur View Details, corrigez le problème, puis cliquez sur Precheck Again.
Si une alerte est déclenchée et peut être ignorée, cliquez sur Confirm Alert Details, puis sur Ignore, ensuite sur OK, et enfin sur Precheck Again. Ignorer les alertes peut entraîner une incohérence des données.
Pour afficher les paramètres API pour cette configuration, placez le pointeur sur Next: Save Task Settings and Precheck et cliquez sur Preview OpenAPI parameters .
Étape 8 : Acheter l'instance de migration
Attendez que le Success Rate atteigne 100 %, puis cliquez sur Next: Purchase Instance.
Sur la page Purchase Instance, configurez les éléments suivants :
| Paramètre | Description |
|---|---|
| Resource Group | Le groupe de ressources pour l'instance de migration. La valeur par défaut est 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. Les classes supérieures prennent en charge une migration plus rapide. Consultez la rubrique Classes d'instances des instances de migration de données. |
Étape 9 : Démarrer la migration
Lisez et acceptez les Data Transmission Service (Pay-as-you-go) Service Terms en cochant la case correspondante.
Cliquez sur Buy and Start, puis sur OK dans le message de confirmation.
Suivez la progression de la migration sur la page Data Migration.