Utilisez Data Transmission Service (DTS) pour synchroniser les données d'un cluster PolarDB for MySQL vers le moteur de table large (wide table engine) d'une instance Lindorm. DTS effectue un chargement initial complet des données, puis applique en continu les modifications incrémentielles pour maintenir la destination synchronisée.
Prérequis
Avant de commencer, assurez-vous de disposer des éléments suivants :
Une instance Lindorm utilisant le moteur LindormTable, avec un espace de stockage disponible supérieur à l'espace de stockage utilisé par le cluster source PolarDB for MySQL. Consultez la rubrique Créer une instance.
La fonctionnalité de compatibilité MySQL activée sur l'instance Lindorm de destination. Consultez la rubrique Activer la fonctionnalité de compatibilité MySQL.
Une base de données (namespace) et une table large pré-partitionnée créées dans l'instance Lindorm de destination pour recevoir les données synchronisées. Consultez les rubriques Utiliser un client MySQL pour se connecter à LindormTable et l'utiliser, Utiliser Lindorm-cli pour se connecter au moteur de table large et l'utiliser, Utiliser Lindorm Shell pour accéder à LindormTable, CREATE TABLE et Mappage des types de données.
-
La journalisation binaire activée sur le cluster source PolarDB for MySQL, avec le paramètre
loose_polar_log_bindéfini surON. Consultez les rubriques Activer la journalisation binaire et Modifier les paramètres.L'activation de la journalisation binaire pour un cluster PolarDB for MySQL entraîne des frais supplémentaires pour l'espace de stockage occupé par les journaux binaires.
Une rétention des journaux binaires d'au moins trois jours sur le cluster source (sept jours recommandés). Consultez la rubrique Modifier la période de rétention. Une rétention insuffisante peut provoquer une incohérence ou une perte de données et peut affecter l'accord de niveau de service (SLA) de DTS.
Des comptes de base de données disposant des autorisations requises. Consultez la section Autorisations requises pour les comptes de base de données.
Les objets créés dans l'instance Lindorm de destination doivent respecter les exigences spécifiées dans la rubrique Quotas et limites .
Facturation
|
Type de synchronisation |
Frais |
|
Synchronisation complète des données |
Gratuit |
|
Synchronisation incrémentielle des données |
Facturé. Consultez la rubrique Présentation de la facturation. |
Opérations SQL prises en charge pour la synchronisation incrémentielle
|
Type d'opération |
Instructions SQL |
|
DML |
INSERT, UPDATE, DELETE |
|
DDL |
CREATE TABLE, DROP TABLE, ADD COLUMN |
En raison des limitations du moteur LindormTable, DTS supprime les attributs supplémentaires des instructions ADD COLUMN. Par exemple, si la source exécuteALTER TABLE test ADD COLUMN col INT DEFAULT 0;, DTS exécuteALTER TABLE test ADD COLUMN col INT;sur la destination.
Autorisations requises pour les comptes de base de données
|
Base de données |
Autorisations requises |
Référence |
|
Cluster source PolarDB for MySQL |
Autorisations en lecture et écriture |
|
|
Instance Lindorm de destination |
Autorisations en lecture et écriture sur le namespace de destination |
Limitations
La synchronisation du schéma n'est pas prise en charge. Seules la synchronisation complète des données et la synchronisation incrémentielle des données sont disponibles.
Les données de type BIT ne peuvent pas être synchronisées.
Les données à synchroniser doivent contenir au moins un champ qui n'est pas une clé primaire. La synchronisation exclusive des champs de clé primaire n'est pas prise en charge.
Les tables à synchroniser doivent posséder des contraintes PRIMARY KEY ou UNIQUE avec tous les champs uniques. Dans le cas contraire, la destination peut contenir des enregistrements en double.
Lorsque vous sélectionnez des tables comme objets de synchronisation et que vous renommez des tables ou des colonnes dans la destination, une seule tâche prend en charge un maximum de 1 000 tables. Le dépassement de cette limite provoque une erreur de requête. Dans ce cas, configurez plusieurs tâches ou synchronisez la base de données entière.
DTS ne synchronise pas les nœuds en lecture seule du cluster source PolarDB for MySQL.
DTS ne synchronise pas les tables externes Object Storage Service (OSS) depuis le cluster source PolarDB for MySQL.
DTS ne prend pas en charge le basculement primaire/secondaire pendant la synchronisation complète des données. Si un basculement se produit, reconfigurez la tâche de synchronisation.
Les données ne peuvent être écrites que dans le moteur de table large de l'instance Lindorm.
Les chaînes vides de type VARBINARY sont traitées comme des valeurs nulles dans DTS et l'instance Lindorm.
Si la précision du type DECIMAL diffère entre les champs source et destination, la tâche échoue.
Les données de l'instance Lindorm doivent respecter les exigences décrites dans la rubrique Limites des demandes de données. Dans le cas contraire, la tâche échoue.
N'effectuez pas d'opérations DDL sur la base de données source pendant la synchronisation complète des données, car cela entraînerait l'échec de la tâche. DTS interroge la source durant cette phase, ce qui crée des verrous de métadonnées pouvant également bloquer les opérations DDL sur la source.
N'utilisez pas d'outils tels que pt-online-schema-change pour effectuer des opérations DDL en ligne sur les objets synchronisés pendant la synchronisation. Cela provoquerait l'échec de la tâche.
Si des données non gérées par DTS sont écrites dans la destination pendant la synchronisation, une incohérence des données peut survenir.
Pendant la synchronisation initiale complète des données, les opérations INSERT concurrentes provoquent une fragmentation des tables dans la destination. Une fois la synchronisation initiale complète terminée, l'espace de stockage de la table de destination sera supérieur à celui de la source.
Pendant la synchronisation initiale complète des données, DTS utilise les ressources en lecture et écriture des deux bases de données, ce qui peut augmenter la charge du serveur. Planifiez la synchronisation pendant les heures creuses, par exemple lorsque la charge CPU des deux bases de données est inférieure à 30 %.
DTS exécute périodiquement
CREATE DATABASE IF NOT EXISTSsur la base de données source pour faire avancer la position du fichier de journal binaire.En cas d'échec d'une instance DTS, l'équipe DTS tentera une récupération dans un délai de 8 heures. La récupération peut impliquer le redémarrage de l'instance ou l'ajustement des paramètres de l'instance DTS (les paramètres de la base de données ne sont pas modifiés). Les paramètres susceptibles d'être ajustés sont décrits dans la rubrique Modifier les paramètres de l'instance.
La synchronisation des données de type VECTOR n'est pas prise en charge.
Configurer une tâche de synchronisation
Étape 1 : Ouvrir la page Synchronisation des données
Utilisez l'une des méthodes suivantes :
Console DTS
Connectez-vous à la console DTS
Dans le volet de navigation de gauche, cliquez sur Data Synchronization.
Dans le coin supérieur gauche, sélectionnez la région où réside la tâche de synchronisation.
Console DMS
Remarque
Les étapes réelles 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 et choisissez DTS (DTS) > Data Synchronization.
Dans la liste déroulante située à droite de Data Synchronization Tasks, sélectionnez la région où réside l'instance de synchronisation.
Étape 2 : Configurer les bases de données source et de destination
Cliquez sur Create Task.
-
Configurez les paramètres de la tâche comme décrit dans le tableau suivant.
Section
Paramètre
Description
N/A
Nom de la tâche
Saisissez un nom descriptif pour identifier la tâche. Un nom unique n'est pas requis ; DTS génère automatiquement un nom par défaut.
Base de données source
Sélectionner une connexion existante
Si l'instance source est déjà enregistrée auprès de DTS, sélectionnez-la dans la liste déroulante — DTS remplit automatiquement les paramètres. Sinon, configurez les paramètres manuellement. Dans la console DMS, sélectionnez dans la liste déroulante Select a DMS database instance.
Type de base de données
Sélectionnez PolarDB for MySQL.
Access Method
Sélectionnez Alibaba Cloud Instance.
Région de l'instance
Sélectionnez la région où réside le cluster source PolarDB for MySQL.
Répliquer les données entre les comptes Alibaba Cloud
Sélectionnez No pour synchroniser au sein du même compte Alibaba Cloud.
ID du cluster PolarDB
Sélectionnez l'ID du cluster source PolarDB for MySQL.
Compte de base de données
Saisissez le compte de base de données pour le cluster source. Consultez la section Autorisations requises pour les comptes de base de données.
Mot de passe de la base de données
Saisissez le mot de passe du compte de base de données.
Chiffrement
Sélectionnez une option de chiffrement SSL selon vos besoins. Consultez la rubrique Définir le chiffrement SSL.
Base de données de destination
Sélectionner une connexion existante
Si l'instance de destination est déjà enregistrée auprès de DTS, sélectionnez-la dans la liste déroulante. Sinon, configurez les paramètres manuellement. Dans la console DMS, sélectionnez dans la liste déroulante Select a DMS database instance.
Type de base de données
Sélectionnez Lindorm.
Access Method
Sélectionnez Alibaba Cloud Instance.
Région de l'instance
Sélectionnez la région où réside l'instance Lindorm de destination.
ID de l'instance
Sélectionnez l'ID de l'instance Lindorm de destination.
Compte de base de données
Saisissez le compte de base de données pour l'instance Lindorm de destination. Consultez la section Autorisations requises pour les comptes de base de données.
Mot de passe de la base de données
Saisissez le mot de passe du compte de base de données.
-
Cliquez sur Test Connectivity and Proceed.
Assurez-vous que les plages CIDR des serveurs DTS sont ajoutées aux paramètres de sécurité des deux bases de données pour autoriser l'accès. Consultez la rubrique Ajouter les adresses IP des serveurs DTS à une liste d'autorisation . Si la source ou la destination est une base de données autogérée avec une Access Method autre que Alibaba Cloud Instance , cliquez sur Test Connectivity dans la boîte de dialogue CIDR Blocks of DTS Servers .
Étape 3 : Sélectionner les objets à synchroniser
À l'étape Configure Objects, configurez les paramètres suivants.
|
Paramètre |
Description |
|
Synchronization Types |
Incremental Data Synchronization est sélectionné par défaut. Ajoutez éventuellement Full Data Synchronization. La synchronisation du schéma n'est pas disponible pour cette paire source-destination. |
|
Processing Mode of Conflicting Tables |
Utilisez la valeur par défaut. |
|
Capitalization of Object Names in Destination Instance |
Contrôle la casse des noms de bases de données, de tables et de colonnes dans la destination. DTS default policy est sélectionné par défaut. Consultez la rubrique Spécifier la casse des noms d'objets dans l'instance de destination. |
|
Source Objects |
Sélectionnez des objets dans Source Objects et cliquez sur l'icône |
|
Selected Objects |
Si les noms des bases de données (namespaces), des tables ou des colonnes dans la destination diffèrent de ceux de la source, utilisez la fonctionnalité de mappage des noms d'objets. Consultez la rubrique Mapper les noms d'objets. Pour filtrer les lignes avec des conditions WHERE, faites un clic droit sur une table dans Selected Objects et spécifiez les conditions. Consultez la rubrique Spécifier les conditions de filtrage. Pour sélectionner des opérations SQL spécifiques pour la synchronisation incrémentielle, faites un clic droit sur un objet dans Selected Objects et choisissez les opérations. |
Le renommage des objets avec la fonctionnalité de mappage des noms d'objets peut empêcher la synchronisation des objets dépendants.
Étape 4 : Configurer les paramètres avancés
Cliquez sur Next: Advanced Settings et configurez les paramètres suivants.
|
Paramètre |
Description |
|
Dedicated Cluster for Task Scheduling |
DTS utilise le cluster partagé par défaut. Pour une stabilité accrue, achetez un cluster dédié. Consultez la rubrique Qu'est-ce qu'un cluster dédié DTS ?. |
|
Retry Time for Failed Connections |
Durée pendant laquelle DTS tente de nouvelles connexions après un échec. Valeurs valides : 10 à 1 440 minutes. Valeur 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. Si plusieurs tâches partagent la même source ou destination, le délai de nouvelle tentative le plus court s'applique. Pendant la nouvelle tentative, l'instance DTS continue d'engendrer des frais. |
|
Retry Time for Other Issues |
Durée pendant laquelle DTS tente de nouvelles exécutions 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 à Retry Time for Failed Connections. |
|
Enable Throttling for Full Data Synchronization |
Limite la charge que DTS impose aux sources et destinations pendant la synchronisation complète des données. Configurez Queries per second (QPS) to the source database, RPS of Full Data Migration et Data migration speed for full migration (MB/s) selon vos besoins. Disponible uniquement lorsque Full Data Synchronization est sélectionné. |
|
Enable Throttling for Incremental Data Synchronization |
Limite la charge pendant la synchronisation incrémentielle des données. Configurez RPS of Incremental Data Synchronization et Data synchronization speed for incremental synchronization (MB/s) selon vos besoins. |
|
Whether to delete SQL operations on heartbeat tables of forward and reverse tasks |
Contrôle si DTS écrit les opérations de la table de heartbeat dans la base de données source. Yesparamètres de notification d'alerte : n'écrit pas les opérations de heartbeat (une valeur de latence peut apparaître sur la tâche). No : écrit les opérations de heartbeat (peut affecter la sauvegarde physique et le clonage de la base de données source). |
|
Environment Tag |
Sélectionnez éventuellement un tag pour identifier l'environnement. |
|
Configure ETL |
Spécifie s'il faut activer la fonctionnalité extract, transform, and load (ETL). Yes : 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. No : ignorer la configuration ETL. Consultez la rubrique Qu'est-ce que l'ETL ? |
|
Monitoring and Alerting |
Configure des alertes lorsque la tâche échoue ou que la latence de synchronisation dépasse un seuil. Yes : configurez le seuil d'alerte et les contacts de notification. Consultez la rubrique Configurer la surveillance et les alertes lors de la création d'une tâche DTS. No : aucune alerte. |
Étape 5 : Exécuter une vérification préalable
Cliquez sur Next: Save Task Settings and Precheck.
Pour prévisualiser les paramètres API pour cette configuration de tâche, survolez Next: Save Task Settings and Precheck et cliquez sur Preview OpenAPI parameters avant de continuer.
DTS exécute une vérification préalable avant que la tâche ne puisse démarrer. Si la vérification préalable échoue :
Cliquez sur View Details à côté de chaque élément ayant échoué, résolvez les problèmes, puis cliquez sur Precheck Again.
Si un élément d'alerte peut être ignoré, cliquez sur Confirm Alert Details, puis sur Ignore, et cliquez sur Precheck Again. Ignorer les alertes peut entraîner une incohérence des données.
Étape 6 : Acheter une instance
Attendez que le Success Rate atteigne 100%, puis cliquez sur Next: Purchase Instance.
-
Sur la page buy, configurez les paramètres de l'instance.
Section
Paramètre
Description
New Instance Class
Billing Method
Subscription : payez à l'avance pour une période fixe. Plus rentable pour une utilisation à long terme. Paiement à l'utilisation : facturé à l'heure. Convient pour une utilisation à court terme ; libérez l'instance lorsqu'elle n'est plus nécessaire pour arrêter la facturation.
Resource Group Settings
Le groupe de ressources pour l'instance de synchronisation. Par défaut : default resource group. Consultez la rubrique Qu'est-ce que Resource Management ?
Instance Class
La vitesse de synchronisation varie selon la classe d'instance. Sélectionnez une classe en fonction de vos besoins en débit. Consultez la rubrique Classes d'instance des instances de synchronisation de données.
Subscription Duration
Disponible uniquement pour la méthode de facturation par abonnement. Options : 1 à 9 mois, ou 1, 2, 3 ou 5 ans.
Lisez et acceptez les Data Transmission Service (Pay-as-you-go) Service Terms.
Cliquez sur Buy and Start, puis sur OK dans la boîte de dialogue.
La tâche apparaît dans la liste des tâches. Surveillez sa progression à cet endroit.