Data Transmission Service (DTS) migre les données d'une base de données TiDB auto-gérée vers un cluster AnalyticDB for MySQL V3.0. DTS prend en charge la migration de schéma, la migration complète des données et la migration incrémentielle des données.
Fonctionnement de la migration
La migration s'effectue en trois phases séquentielles au maximum :
Migration de schéma — DTS réplique les définitions de table vers le cluster de destination.
Migration complète des données — DTS lit toutes les données existantes depuis TiDB et les charge dans AnalyticDB for MySQL V3.0.
Migration incrémentielle des données (facultative) — DTS lit les événements de modification depuis un cluster Kafka et les applique à la destination, maintenant ainsi la synchronisation entre la source et la destination lors du basculement.
Choisissez votre parcours :
Migration complète uniquement (schéma + données complètes) : Remplissez les Prérequis, puis accédez à la section Créer une tâche de migration.
Migration complète + incrémentielle : Remplissez les Prérequis, puis Configurez la collecte incrémentielle des données, et enfin Créez une tâche de migration.
Prérequis
Avant de commencer :
Créez un cluster AnalyticDB for MySQL V3.0 dont l'espace de stockage disponible est supérieur à la taille totale des données de la base de données TiDB source. Consultez la rubrique Créer un cluster.
Accordez les autorisations de compte de base de données requises, répertoriées dans la section Autorisations requises.
(Uniquement pour la migration incrémentielle) Configurez un cluster Kafka. Consultez la section Configurer la collecte incrémentielle des données.
Autorisations requises
|
Base de données |
Autorisations requises |
|
Base de données TiDB |
SELECT sur les objets à migrer, SHOW VIEW |
|
Cluster AnalyticDB for MySQL V3.0 |
Autorisations de lecture et d'écriture sur la base de données de destination. Consultez la rubrique Créer un compte de base de données. |
Facturation
|
Type de migration |
Frais de configuration de l'instance |
Frais de trafic Internet |
|
Migration de schéma et migration complète des données |
Gratuit |
Facturé uniquement si la Méthode d'accès pour la destination est Adresse IP publique. Consultez la rubrique Présentation de la facturation. |
|
Migration incrémentielle des données |
Facturé. Consultez la rubrique Présentation de la facturation. |
Configurer la collecte incrémentielle des données
Ignorez cette section si vous avez uniquement besoin d'une migration de schéma et d'une migration complète des données.
La migration incrémentielle des données nécessite que TiDB diffuse les événements de modification vers un cluster Kafka. Choisissez l'une des méthodes suivantes en fonction de votre version de TiDB.
Choisir une méthode
|
Méthode |
Cas d'utilisation |
|
TiDB Binlog |
Clusters TiDB utilisant déjà Pump et Drainer pour la réplication binlog |
|
TiCDC |
TiDB v4.0 et versions ultérieures ; méthode privilégiée pour les nouveaux déploiements |
Configurer les paramètres Kafka
Avant de vous connecter à DTS, augmentez les valeurs des paramètres Kafka suivants. Sans ces modifications, le cluster Kafka risque de rejeter les charges utiles volumineuses des journaux binaires provenant de TiDB.
|
Composant |
Paramètre |
Action |
|
Courtier Kafka |
|
Augmentez la valeur pour prendre en charge les messages de journal binaire TiDB |
|
Courtier Kafka |
|
Augmentez la valeur pour qu'elle corresponde à |
|
Consommateur Kafka |
|
Augmentez la valeur pour qu'elle corresponde à |
Préparer un cluster Kafka
Utilisez l'une des options suivantes :
Cluster Kafka auto-géré — Déployez votre propre cluster. Consultez le site officiel d'Apache Kafka.
Instance ApsaraMQ for Kafka — Créez une instance gérée. Consultez la rubrique Présentation de la prise en main. Déployez l'instance dans le même réseau privé virtuel (VPC) que le serveur de base de données TiDB.
Déployez le serveur de base de données TiDB, Pump (si vous utilisez TiDB Binlog), Drainer et le cluster Kafka sur le même réseau interne afin de minimiser la latence réseau.
Une fois le cluster Kafka prêt, créez un topic avec exactly one partition. DTS lit uniquement depuis la partition ID 0. Des partitions supplémentaires entraîneront une perte de données.
Utiliser TiDB Binlog
Déployez Pump et Drainer sur des serveurs situés sur le même réseau interne que la base de données TiDB. Consultez la rubrique Déploiement du cluster TiDB Binlog.
Modifiez le fichier de configuration de Drainer pour qu'il pointe vers le cluster Kafka. Consultez le Guide d'utilisation du client consommateur Binlog.
Vérifiez que le serveur TiDB peut atteindre le cluster Kafka.
Ajoutez les blocs CIDR des serveurs DTS à la liste d'autorisation de la base de données TiDB. Consultez la rubrique Ajouter les blocs CIDR des serveurs DTS.
Utiliser TiCDC
Installez TiCDC à l'aide de TiUP pour ajouter un nouveau nœud TiCDC ou étendre un nœud existant dans le cluster TiDB. Consultez la rubrique Déployer et maintenir TiCDC.
Créez un flux de modifications (changefeed) pour répliquer les données incrémentielles vers Kafka. Utilisez la commande
tiup cdc cli changefeed createcomme point de départ. Consultez la rubrique Répliquer des données vers Kafka.Vérifiez que le serveur TiDB peut atteindre le cluster Kafka.
Limites
Passez en revue ces limites avant de démarrer la tâche.
Base de données source
Le serveur TiDB doit disposer d'une bande passante sortante suffisante. Une bande passante faible réduit la vitesse de migration.
Les tables à migrer doivent posséder des contraintes PRIMARY KEY ou UNIQUE avec tous les champs uniques. Les tables dépourvues de ces contraintes peuvent générer des enregistrements en double dans la destination.
Si vous renommez des tables ou des colonnes pendant la migration, une seule tâche prend en charge jusqu'à 1 000 tables. Pour plus de 1 000 tables, divisez la migration en plusieurs tâches ou migrez la base de données entière en une seule tâche.
Si vous souhaitez migrer des données incrémentielles depuis la base de données TiDB source, vous devez déployer un cluster Kafka et installer les composants associés pour que la base de données TiDB collecte les données incrémentielles.
Les index préfixés ne peuvent pas être migrés. Si la base de données source contient des index préfixés, la tâche de migration peut échouer.
Migration incrémentielle
DTS lit les données uniquement depuis la partition ID 0 du topic Kafka. Configurez le topic avec exactement une partition.
Après avoir créé une tâche de migration incrémentielle, effectuez rapidement des opérations sur la base de données source ou insérez des données de test pour mettre à jour les informations de décalage (offset) de la tâche. De longs délais avant le premier événement de données peuvent provoquer l'échec de la tâche.
Destination et comportement de la tâche
Spécifiez une clé primaire personnalisée dans la base de données de destination ou configurez la colonne Primary Key Column à l'étape Configurations for Databases, Tables, and Columns. L'absence de configuration de clé primaire entraîne l'échec de la migration des données.
Si le cluster AnalyticDB for MySQL V3.0 fait l'objet d'une sauvegarde pendant l'exécution de la tâche DTS, la tâche échoue.
Si l'utilisation du disque sur les nœuds AnalyticDB for MySQL V3.0 dépasse 80 %, la tâche de migration est retardée et des erreurs sont renvoyées. Estimez l'espace disque requis avant de commencer.
La migration complète des données augmente la charge sur les bases de données source et de destination. Exécutez les migrations pendant les heures creuses, lorsque la charge CPU est inférieure à 30 %.
La migration complète des données utilise des opérations INSERT concurrentes, ce qui provoque une fragmentation dans les tables de destination. Une fois la migration complète terminée, la taille de l'espace de table de destination est supérieure à celle de la source.
Si d'autres sources écrivent dans la destination pendant la migration, une incohérence des données peut survenir.
DTS utilise la fonction
ROUND(COLUMN,PRECISION)pour récupérer les valeurs FLOAT et DOUBLE. La précision par défaut est de 38 chiffres pour FLOAT et de 308 chiffres pour DOUBLE. Vérifiez que ces valeurs par défaut répondent à vos exigences avant de commencer.Lors de la migration de schéma, DTS ne prend pas en charge la migration des vues matérialisées vers l'instance AnalyticDB for MySQL de destination. Pour utiliser des vues matérialisées, créez-les manuellement dans l'instance de destination une fois la migration terminée.
DTS tente automatiquement de reprendre les tâches ayant échoué pendant sept jours au maximum. Avant de basculer les charges de travail vers la destination, arrêtez ou libérez toutes les tâches ayant échoué, ou exécutez l'instruction
REVOKEpour supprimer les autorisations d'écriture des comptes DTS. Sinon, une tâche reprise risque d'écraser les données de destination.Si des instructions DDL échouent dans la destination, la tâche DTS continue de s'exécuter. Consultez les instructions DDL ayant échoué dans les journaux de la tâche. Voir la rubrique Afficher les journaux de tâche.
En cas d'échec d'une tâche DTS, l'assistance technique DTS tente de la restaurer dans un délai de 8 heures. Pendant la restauration, la tâche peut être redémarrée et ses paramètres (et non ceux de la base de données) peuvent être modifiés. Pour obtenir la liste des paramètres susceptibles de changer, consultez la rubrique Modifier les paramètres d'instance.
Si la destination est un cluster AnalyticDB for MySQL, DTS prend uniquement en charge l'écriture de types de données nativement pris en charge par AnalyticDB for MySQL. Cela inclut les types de données de base et les types de données complexes tels que ARRAY, MAP et JSON. Les types de données tels que MULTIVALUE ne sont pas pris en charge.
Opérations SQL prises en charge pour la migration incrémentielle
|
Type d'opération |
Instructions prises en charge |
|
DML |
INSERT, UPDATE, DELETE. Les instructions UPDATE sont automatiquement converties en REPLACE INTO. Si UPDATE cible la clé primaire, elle est convertie en DELETE suivi de INSERT. |
|
DDL |
CREATE TABLE, DROP TABLE, RENAME TABLE, TRUNCATE TABLE, ADD COLUMN, DROP COLUMN |
Mappages de types de données
Pour le mappage complet entre les types de données TiDB et AnalyticDB for MySQL V3.0, consultez la rubrique Mappages de types de données entre bases de données hétérogènes.
Créer une tâche de migration
Étape 1 : Accéder à la page Data Migration
Utilisez soit la console DTS, soit la console DMS.
Console DTS
Connectez-vous à la 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ù résidera l'instance de migration.
Console DMS
Les étapes peuvent varier selon le mode et la disposition de la console DMS. Consultez les rubriques Mode simple et Personnaliser la disposition et le style de la console DMS .
Connectez-vous à la console DMS.
Dans la barre de navigation supérieure, placez le pointeur sur Data + AI > DTS (DTS) > Data Migration.
Dans la liste déroulante à droite de Data Migration Tasks, sélectionnez la région où résidera l'instance de migration.
Étape 2 : Configurer les bases de données source et de destination
Cliquez sur Create Task.
Saisissez un Task Name. DTS génère automatiquement un nom ; spécifiez un nom descriptif pour faciliter l'identification ultérieure de la tâche.
-
Configurez la base de données source :
Paramètre
Description
Select Existing Connection
Sélectionnez une instance de base de données enregistrée pour remplir automatiquement les paramètres ci-dessous, ou laissez vide et saisissez manuellement les détails de connexion.
Database Type
Sélectionnez TiDB.
Access Method
Sélectionnez la méthode d'accès en fonction de l'emplacement de déploiement de TiDB. Cet exemple utilise Self-managed Database on ECS. Pour d'autres méthodes d'accès, préparez d'abord l'environnement requis. Consultez la rubrique Présentation de la préparation.
Instance Region
La région où réside la base de données TiDB.
ECS Instance ID
L'ID de l'instance ECS hébergeant TiDB.
Port Number
Le port du service TiDB. Par défaut : 4000.
Database Account
Le compte de la base de données TiDB.
Database Password
Le mot de passe du compte de base de données.
Migrate Incremental Data
Sélectionnez Yes si vous souhaitez une migration incrémentielle des données, puis saisissez les détails du cluster Kafka dans la section Configuration du cluster Kafka.
-
Configurez la base de données de destination :
Paramètre
Description
Select Existing Connection
Sélectionnez une instance enregistrée pour remplir automatiquement les paramètres ci-dessous, ou laissez vide et saisissez manuellement les détails de connexion.
Database Type
Sélectionnez AnalyticDB for MySQL 3.0.
Access Method
Sélectionnez Alibaba Cloud Instance.
Instance Region
La région où réside le cluster de destination.
Instance ID
L'ID du cluster AnalyticDB for MySQL V3.0 de destination.
Database Account
Le compte de base de données pour le cluster de destination. Consultez la section Autorisations requises.
Database Password
Le mot de passe du compte de base de données.
-
Cliquez sur Test Connectivity and Proceed. Dans la boîte de dialogue CIDR Blocks of DTS Servers, cliquez sur Test Connectivity.
Les blocs CIDR DTS doivent être ajoutés aux paramètres de sécurité des bases de données source et de destination. Consultez la rubrique Ajouter les blocs CIDR des serveurs DTS .
Étape 3 : Configurer les objets à migrer
Sur la page Configure Objects, définissez les paramètres suivants :
|
Paramètre |
Description |
|
Migration Types |
Sélectionnez les phases de migration à exécuter : Schema Migration, Full Data Migration et, éventuellement, Incremental Data Migration. Si Schema Migration n'est pas sélectionné, créez la base de données et la table de destination avant de démarrer la tâche. Si Incremental Data Migration n'est pas sélectionné, évitez d'écrire dans la base de données source pendant la migration afin de maintenir la cohérence des données. |
|
Merge Tables |
Yes ajoute une colonne |
|
Processing Mode of Conflicting Tables |
Precheck and Report Errors : échoue la vérification préalable si la source et la destination comportent des tables portant le même nom. Utilisez le mappage de noms d'objets pour renommer les tables conflictuelles avant de commencer. Ignore Errors and Proceed : ignore la vérification préalable. Lors de la migration complète, DTS conserve les enregistrements de destination existants pour les clés primaires conflictuelles. Lors de la migration incrémentielle, DTS les écrase. Si les schémas diffèrent entre la source et la destination, seules les colonnes correspondantes sont migrées ou la tâche peut échouer. |
|
Capitalization of Object Names in Destination Instance |
Contrôle la casse des noms de base de données, de tables et de colonnes dans la destination. Par défaut : DTS default policy. Consultez la rubrique Spécifier la casse des noms d'objets dans l'instance de destination. |
|
Source Objects |
Sélectionnez les tables ou bases de données à migrer, puis cliquez sur l'icône de flèche pour les déplacer vers Selected Objects. |
|
Selected Objects |
Faites un clic droit sur un objet pour le renommer ou ajouter des conditions de filtre WHERE. Cliquez sur Batch Edit pour renommer plusieurs objets à la fois. Le renommage d'un objet peut empêcher la migration des objets dépendants. |
Cliquez sur Next: Advanced Settings.
Étape 4 : Configurer les paramètres avancés
|
Paramètre |
Description |
|
Retry Time for Failed Connections |
Durée pendant laquelle DTS effectue des tentatives après un échec de connexion. Plage valide : 10–1 440 minutes. Par défaut : 720 minutes. Définissez une valeur d'au moins 30 minutes. Si plusieurs tâches partagent la même base de données source ou de destination, la valeur définie le plus récemment s'applique. DTS facture l'instance pendant les périodes de nouvelle tentative. |
|
Retry Time for Other Issues |
Durée pendant laquelle DTS effectue des tentatives après des échecs DDL ou DML. Plage valide : 1–1 440 minutes. Par défaut : 10 minutes. Définissez une valeur d'au moins 10 minutes. Elle doit être inférieure à Retry Time for Failed Connections. |
|
Enable Throttling for Full Data Migration |
Limite l'utilisation des ressources de lecture/écriture pendant la migration complète. Configurez QPS (queries per second) 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 |
Limite l'utilisation des ressources pendant la migration incrémentielle. Configurez RPS of Incremental Data Migration et Data migration speed for incremental migration (MB/s). Disponible uniquement lorsque Incremental Data Migration est sélectionné. |
|
Environment Tag |
Un tag facultatif pour identifier l'instance DTS. |
|
Configure ETL |
Sélectionnez Yes pour activer l'extraction, la transformation et le chargement (ETL) et saisir les instructions de traitement des données. Consultez la rubrique Configurer ETL dans une tâche de migration ou de synchronisation de données. Sélectionnez No pour ignorer. |
|
Monitoring and Alerting |
Sélectionnez Yes pour recevoir des notifications en cas d'échec de la tâche ou si la latence de migration dépasse un seuil. Configurez les seuils d'alerte et les contacts. Consultez la rubrique Configurer la surveillance et les alertes. |
Étape 5 : Configurer la vérification des données (facultatif)
Cliquez sur Next Step: Data Verification pour configurer une tâche de vérification des données. Consultez la rubrique Configurer une tâche de vérification des données.
Étape 6 : Configurer les champs de base de données et de table (facultatif)
Cliquez sur Next: Configure Database and Table Fields pour définir le Type, Primary Key Column, Distribution Key, Partition Key, Partitioning Rules et Partition Lifecycle pour les tables de destination.
Cette étape est disponible uniquement si Schema Migration est sélectionné. Définissez Definition Status sur All pour afficher et modifier toutes les tables. Pour former une clé primaire composite, spécifiez plusieurs colonnes dans Primary Key Column et désignez-en une ou plusieurs comme Distribution Key et Partition Key . Consultez la rubrique CREATE TABLE .
Étape 7 : Exécuter la vérification préalable
Cliquez sur Next: Save Task Settings and Precheck.
Pour afficher les paramètres API pour cette configuration de tâche, survolez le bouton et cliquez sur Preview OpenAPI parameters avant de continuer.
DTS exécute une vérification préalable avant de démarrer la migration. Si la vérification préalable échoue :
Cliquez sur View Details à côté de l'élément ayant échoué, résolvez le problème, puis cliquez sur Precheck Again.
Pour les éléments d'alerte pouvant être ignorés en toute sécurité, 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 et démarrer la tâche
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. Par défaut : default resource group. Consultez la rubrique Qu'est-ce que Resource Management ?.
Instance Class
La classe d'instance détermine la vitesse de migration. Consultez la rubrique Classes d'instances des instances de migration de données.
Lisez et acceptez les Conditions de service Data Transmission Service (paiement à l'utilisation).
Cliquez sur Buy and Start, puis cliquez sur OK dans la boîte de dialogue de confirmation.
Surveillez la progression de la tâche sur la page Data Migration.
Les tâches sans migration incrémentielle s'arrêtent automatiquement une fois terminées. Le statut indique Completed.
Les tâches avec migration incrémentielle s'exécutent en continu. Le statut indique Running. Arrêtez la tâche manuellement après le basculement.
Configuration du cluster Kafka
Lorsque Migrate Incremental Data est défini sur Yes, configurez le cluster Kafka avec les paramètres suivants :
|
Paramètre |
Description |
|
Kafka Cluster Type |
L'emplacement de déploiement du cluster Kafka. Cet exemple utilise Self-managed Database on ECS. Si vous sélectionnez Express Connect, VPN Gateway, or Smart Access Gateway, sélectionnez également un VPC dans Connected VPC et spécifiez Domain Name or IP. |
|
Kafka Data Source Component |
Sélectionnez Use the default binlog format of the TiDB database ou Use the TiCDC Canal-JSON format en fonction de votre configuration. |
|
ECS Instance ID |
L'ID de l'instance ECS hébergeant le cluster Kafka. |
|
Port Number |
Le port du service Kafka. |
|
Kafka Cluster Account |
Le nom d'utilisateur Kafka. Laissez vide si l'authentification est désactivée. |
|
Kafka Cluster Password |
Le mot de passe Kafka. Laissez vide si l'authentification est désactivée. |
|
Kafka Version |
La version du cluster Kafka. Sélectionnez 1.0 si la version est 1.0 ou ultérieure. |
|
Encryption |
Sélectionnez Non-encrypted ou SCRAM-SHA-256 en fonction de vos exigences de sécurité. |
|
Topic |
Le topic Kafka qui reçoit les données incrémentielles. |