DTS prend en charge la synchronisation du schéma, des données complètes et des données incrémentielles d'une instance ApsaraDB RDS for MariaDB TX vers une instance ApsaraDB RDS for MySQL.
Prérequis
Avant de commencer, vérifiez que vous disposez des éléments suivants :
Une instance RDS MySQL de destination. Créer une instance ApsaraDB RDS for MySQL
Un espace de stockage suffisant sur l'instance de destination pour toutes les données source.
Facturation
| Type de synchronisation | Frais |
|---|---|
| Synchronisation du schéma et des données complètes | Gratuit |
| Synchronisation des données incrémentielles | Payant. Aperçu de la facturation. |
Autorisations requises pour les comptes de base de données
| Base de données | Autorisation requise | Références |
|---|---|---|
| Instance source RDS MariaDB TX | Autorisations de lecture et d'écriture sur les objets à synchroniser | Créer un compte et Modifier ou réinitialiser les autorisations de compte |
| Instance de destination RDS MySQL | Autorisations de lecture et d'écriture sur la base de données de destination | Créer un compte et Modifier les autorisations de compte |
Opérations SQL prises en charge pour la synchronisation incrémentielle
| Type d'opération | Instruction SQL |
|---|---|
| DML | INSERT, UPDATE et DELETE |
| DDL | ALTER TABLE, ALTER VIEW, CREATE FUNCTION, CREATE INDEX, CREATE PROCEDURE, CREATE TABLE, CREATE VIEW, DROP INDEX, DROP TABLE, RENAME TABLE et TRUNCATE TABLE |
L'opération RENAME TABLE peut provoquer une incohérence des données. Si vous renommez une table sélectionnée comme objet de synchronisation, ses données ne sont plus synchronisées vers la destination. Pour éviter cela, sélectionnez la base de données contenant la table comme objet de synchronisation. Assurez-vous que les bases de données avant et après le renommage sont incluses dans les objets de synchronisation.
Limitations
Exigences relatives à la base de données source
Les tables à synchroniser doivent comporter une contrainte PRIMARY KEY ou UNIQUE avec tous les champs uniques. Sinon, la destination peut contenir des enregistrements en double.
Si vous sélectionnez des tables comme objets de synchronisation et devez les renommer dans la destination, une tâche unique prend en charge jusqu'à 1 000 tables. Pour plus de 1 000 tables, utilisez plusieurs tâches ou synchronisez la base de données entière.
La journalisation binaire est activée par défaut sur les instances RDS MariaDB. Vérifiez que le paramètre
binlog_row_imageest défini surfull. Sinon, la prévérification échoue et la tâche de synchronisation ne démarre pas.-
Rétention des journaux binaires : si DTS ne peut pas obtenir les journaux binaires, la tâche peut échouer, ou une incohérence et une perte de données peuvent se produire. Le SLA DTS ne couvre pas les problèmes causés par une rétention insuffisante des journaux.
Synchronisation incrémentielle uniquement : au moins 24 heures.
Synchronisation complète et incrémentielle : au moins 7 jours. Une fois la synchronisation complète des données terminée, définissez la période de rétention sur plus de 24 heures.
Comportement des clés étrangères
Lors de la synchronisation du schéma, DTS synchronise les clés étrangères vers la destination.
Lors de la synchronisation complète et incrémentielle, DTS désactive temporairement les vérifications de contrainte de clé étrangère et les opérations en cascade au niveau de la session.
Les opérations de mise à jour et de suppression en cascade sur la base de données source pendant la synchronisation peuvent provoquer une incohérence des données.
Restrictions d'exécution
Impact sur les performances : la synchronisation complète des données consomme des ressources sur les bases de données source et de destination. Planifiez la synchronisation pendant les heures creuses.
Fragmentation des tables : les opérations INSERT simultanées lors de la synchronisation complète provoquent une fragmentation dans les tables de destination, rendant l'espace table de destination plus grand que celui de la source.
Opérations DDL sur les tables sélectionnées : si vous sélectionnez des tables spécifiques (et non une base de données entière) comme objets de synchronisation, n'utilisez pas pt-online-schema-change ou des outils similaires pendant la synchronisation. Utilisez plutôt les opérations DDL sans verrouillage de DMS.
Écritures dans la base de données de destination : utilisez uniquement DTS pour écrire dans la destination pendant la synchronisation. Si d'autres outils écrivent dans la destination, n'utilisez pas DMS pour les opérations DDL en ligne car une perte de données peut se produire.
Échec DDL dans la destination : si les instructions DDL échouent dans la destination, la tâche DTS continue de s'exécuter. Consultez les journaux des tâches pour plus de détails.
Noms de colonnes insensibles à la casse : les noms de colonnes MySQL sont insensibles à la casse. Si plusieurs colonnes source ne diffèrent que par la casse, leurs données sont écrites dans la même colonne de destination, ce qui peut provoquer des résultats inattendus.
Vérification post-synchronisation : une fois que le Status de la tâche passe à Completed, exécutez
analyze table <Table name>pour vérifier les données dans la table de destination. Si un basculement HA se produit sur l'instance MySQL source, les données peuvent exister uniquement en mémoire, entraînant une perte de données.
Procédure
Étape 1 : Ouvrir la page de synchronisation des données
Accédez à la page de synchronisation des données et sélectionnez la région de l'instance de synchronisation des données.
Console DTS
Connectez-vous à la console DTS.
Dans le volet de navigation de gauche, cliquez sur Data Synchronization.
Dans le coin supérieur gauche de la page, sélectionnez la région où réside l'instance de synchronisation des données.
Console DMS
Les opérations peuvent varier selon le mode et la disposition de la console DMS. Mode simple . 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 à droite de Data Synchronization Tasks, sélectionnez la région où réside l'instance de synchronisation des données.
Étape 2 : Configurer les bases de données source et de destination
Cliquez sur Create Task.
Configurez les bases de données source et de destination avec les paramètres suivants.
Paramètres de la tâche
| Paramètre | Description |
|---|---|
| Task Name | DTS génère automatiquement un nom de tâche. Spécifiez un nom descriptif pour identifier la tâche. Le nom n'a pas besoin d'être unique. |
Base de données source
| Paramètre | Description |
|---|---|
| Select Existing Connection | Facultatif. La sélection d'une base de données existante renseigne automatiquement les paramètres de connexion. Si aucune instance de base de données DMS n'est enregistrée, ignorez cette option. |
| Database Type | Sélectionnez MariaDB. |
| Access Method | Sélectionnez Alibaba Cloud Instance. |
| Instance Region | La région de l'instance source RDS MariaDB TX. |
| Replicate Data Across Alibaba Cloud Accounts | Indique s'il faut synchroniser entre les comptes Alibaba Cloud. Dans cet exemple, sélectionnez No. |
| Instance ID | L'ID de l'instance source RDS MariaDB TX. |
| Database Account | Le compte de base de données de l'instance source. Pour les autorisations requises, consultez Autorisations requises pour les comptes de base de données. |
| Database Password | Le mot de passe du compte de base de données. |
| Encryption | Indique s'il faut chiffrer la connexion à la base de données source. Dans cet exemple, sélectionnez Non-encrypted. |
Base de données de destination
| Paramètre | Description |
|---|---|
| Select Existing Connection | Facultatif. La sélection d'une base de données existante renseigne automatiquement les paramètres de connexion. Si aucune instance de base de données DMS n'est enregistrée, ignorez cette option. |
| Database Type | Sélectionnez MySQL. |
| Access Method | Sélectionnez Alibaba Cloud Instance. |
| Instance Region | La région de l'instance de destination RDS MySQL. |
| Replicate Data Across Alibaba Cloud Accounts | Indique s'il faut synchroniser entre les comptes Alibaba Cloud. Dans cet exemple, sélectionnez No. |
| RDS Instance ID | L'ID de l'instance de destination RDS MySQL. |
| Database Account | Le compte de base de données de l'instance de destination. Pour les autorisations requises, consultez Autorisations requises pour les comptes de base de données. |
| Database Password | Le mot de passe du compte de base de données. |
| Encryption | Indique s'il faut chiffrer la connexion. Sélectionnez Non-encrypted ou SSL-encrypted selon vos besoins. Pour utiliser SSL-encrypted, activez le chiffrement SSL sur l'instance RDS MySQL au préalable. |
Cliquez sur Test Connectivity and Proceed.
DTS ajoute automatiquement les blocs CIDR des serveurs DTS à la liste d'autorisation des instances de base de données Alibaba Cloud (telles que les instances ApsaraDB RDS for MySQL ou ApsaraDB for MongoDB). Pour les bases de données autogérées hébergées sur des instances Elastic Compute Service (ECS), DTS ajoute automatiquement les blocs CIDR aux règles du groupe de sécurité de l'instance ECS. Assurez-vous que l'instance ECS peut accéder à la base de données. Si la base de données est déployée sur plusieurs instances ECS, ajoutez manuellement les blocs CIDR des serveurs DTS aux règles du groupe de sécurité de chaque instance ECS. Pour les bases de données autogérées dans un centre de données ou chez un fournisseur de cloud tiers, ajoutez manuellement les blocs CIDR à la liste d'autorisation de la base de données. Blocs CIDR des serveurs DTS. L'ajout de blocs CIDR de serveurs DTS à la liste d'autorisation, aux règles du groupe de sécurité de l'instance ou aux règles du groupe de sécurité ECS introduit des risques de sécurité. Avant d'utiliser DTS, prenez des mesures préventives, notamment : renforcer la sécurité des noms d'utilisateur et des mots de passe, limiter les ports exposés, authentifier les appels API, examiner régulièrement la liste d'autorisation ou les règles du groupe de sécurité ECS et supprimer les blocs CIDR non autorisés, ou connecter la base de données à DTS via Express Connect, VPN Gateway ou Smart Access Gateway.
Étape 3 : Sélectionner les objets et configurer les paramètres de synchronisation
Configurez les objets de synchronisation et les paramètres avancés.
| Paramètre | Description |
|---|---|
| Synchronization Types | Par défaut, Incremental Data Synchronization est sélectionné. Sélectionnez également Schema Synchronization et Full Data Synchronization. Après la prévérification, DTS synchronise les données historiques de la source vers la destination comme base pour la synchronisation incrémentielle. |
| Method to Migrate Triggers in Source Database | La méthode pour synchroniser les déclencheurs. Ignorez cette option si aucun déclencheur ne doit être synchronisé. Synchroniser ou migrer les déclencheurs de la base de données source. Disponible uniquement lorsque Schema Synchronization est sélectionné. |
| Processing Mode of Conflicting Tables | Comment gérer les tables ayant des noms identiques dans la source et la destination. Precheck and Report Errors : signale une erreur pour les noms de table en double. Résolvez les conflits en utilisant le mappage de noms d'objets pour renommer les tables de destination. Ignore Errors and Proceed : ignore les vérifications de noms en double. Lors de la synchronisation complète, les enregistrements avec des clés primaires en double sont ignorés. Lors de la synchronisation incrémentielle, ces enregistrements écrasent les existants. Des incompatibilités de schéma peuvent provoquer un échec d'initialisation ou une synchronisation partielle. |
| Source Objects | Sélectionnez des objets dans la section Source Objects et cliquez sur l'icône de flèche vers la droite pour les ajouter à Selected Objects. Vous pouvez sélectionner des bases de données, des tables ou des colonnes. |
| Selected Objects | Pour renommer un objet dans l'instance de destination, faites un clic droit dessus dans la section Selected Objects. Mapper le nom d'un seul objet. Pour un renommage par lot, cliquez sur Batch Edit dans le coin supérieur droit de la section Selected Objects. Mapper plusieurs noms d'objets à la fois. Pour sélectionner des opérations SQL spécifiques pour une base de données ou une table, faites un clic droit sur l'objet dans la section Selected Objects. Opérations SQL prises en charge pour la synchronisation incrémentielle. Pour filtrer les données avec des conditions WHERE, faites un clic droit sur une table dans la section Selected Objects. Spécifier les conditions de filtrage. Le renommage d'objets avec le mappage de noms 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 | Par défaut, DTS planifie les tâches sur un cluster partagé. Pour améliorer la stabilité, achetez un cluster dédié DTS. |
| Monitoring and Alerting | Indique s'il faut configurer des alertes pour la tâche. Si la tâche échoue ou si la latence de synchronisation dépasse le seuil, les contacts d'alerte reçoivent des notifications. Sélectionnez No pour désactiver les alertes, ou Yes pour configurer les seuils et les notifications. Configurer la surveillance et les alertes lors de la création d'une tâche DTS. |
| Retry Time for Failed Connections | La durée de nouvelle tentative lorsque la base de données source ou de destination ne parvient pas à se connecter. Valeurs valides : 10 à 1440 minutes. Par défaut : 720 (doit être supérieur à 30). Si DTS se reconnecte dans la durée spécifiée, la tâche reprend ; sinon, la tâche échoue. Lorsque plusieurs tâches partagent la même source ou destination, la durée de nouvelle tentative la plus courte est prioritaire. DTS facture pendant la nouvelle tentative. Libérez l'instance rapidement après la libération de la source et de la destination. |
| Retry Time for Other Issues | La durée de nouvelle tentative lorsque les opérations DDL ou DML échouent. Valeurs valides : 1 à 1440 minutes. Par défaut : 10 (doit être supérieur à 10). Si les opérations réussissent dans cette durée, la tâche reprend ; sinon, la tâche échoue. Doit être inférieure à Retry Time for Failed Connections. |
| Enable Throttling for Full Data Synchronization | Limitez la synchronisation complète des données pour réduire la charge sur les serveurs de base de données. 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). Ce paramètre est disponible uniquement lorsque Full Data Synchronization est sélectionné. |
| Enable Throttling for Incremental Data Synchronization | Indique s'il faut limiter la synchronisation des données incrémentielles. Configurez les paramètres RPS of Incremental Data Synchronization et Data synchronization speed for incremental synchronization (MB/s) pour réduire la charge sur le serveur de base de données de destination. |
| Environment Tag | Le tag d'environnement pour identifier l'instance DTS. Sélectionnez un tag selon vos besoins. |
| Configure ETL | Indique s'il faut activer ETL pour le traitement des données. Sélectionnez Yes pour saisir les instructions de traitement des données. Configurer ETL dans une tâche de migration ou de synchronisation de données. Sélectionnez No pour ignorer ETL. Qu'est-ce qu'ETL ? |
Étape 5 : Exécuter la prévérification et acheter l'instance
-
Cliquez sur Next: Save Task Settings and Precheck.
Pour afficher les paramètres de l'opération API correspondante, placez le pointeur sur Next: Save Task Settings and Precheck et cliquez sur Preview OpenAPI parameters .
-
Attendez que la prévérification soit terminée. DTS effectue une prévérification avant que la tâche de synchronisation puisse démarrer.
Si la prévérification échoue, cliquez sur View Details à côté de chaque élément ayant échoué. Analysez les causes en fonction des résultats de la vérification et corrigez les problèmes. Ensuite, relancez la prévérification.
-
Si une alerte est déclenchée pour un élément :
Si l'alerte ne peut pas être ignorée, cliquez sur View Details et résolvez le problème. Ensuite, relancez la prévérification.
Si l'alerte peut être ignorée, cliquez sur Confirm Alert Details. Dans la boîte de dialogue View Details, cliquez sur Ignore, puis sur OK. Cliquez sur Precheck Again pour relancer la prévérification. Ignorer les alertes peut provoquer une incohérence des données et des risques potentiels.
Attendez que le Success Rate atteigne 100 %. Ensuite, cliquez sur Next: Purchase Instance.
-
Sur la page d'achat, configurez les paramètres suivants.
New Instance Class
Paramètre Description Billing Method Subscription : payez à l'avance. Plus rentable pour une utilisation à long terme. Pay-as-you-go : facturé à l'heure. Adapté à une utilisation à court terme. Libérez l'instance lorsqu'elle n'est plus nécessaire. Pay-as-you-go Serverless : facturé en fonction de l'utilisation réelle avec mise à l'échelle automatique. Resource Group Settings Le groupe de ressources pour l'instance de synchronisation des données. Valeur par défaut : default resource group. Qu'est-ce que Resource Management ? Instance Class DTS propose des classes d'instance avec différentes vitesses de synchronisation. Sélectionnez une classe selon vos besoins. Classes d'instance des instances de synchronisation de données. Subscription Duration Si vous sélectionnez la méthode de facturation Subscription, spécifiez la durée de l'abonnement : 1 à 9 mois, ou 1, 2, 3 ou 5 ans. DTS Insight
Paramètre Description DTS Insight Indique s'il faut activer DTS Insight pour le diagnostic intelligent. Sélectionnez une option selon vos besoins. Lisez et acceptez les Data Transmission Service (Pay-as-you-go) Service Terms.
Cliquez sur Buy and Start pour enregistrer la tâche et la démarrer immédiatement, ou cliquez sur Buy and Save pour enregistrer la tâche sans la démarrer. Dans la boîte de dialogue qui apparaît, cliquez sur OK.
La tâche apparaît dans la liste des tâches où vous pouvez surveiller sa progression.