AnalyticDB for MySQL prend en charge l'analyse multidimensionnelle avec une latence de l'ordre de la milliseconde. Grâce à Data Transmission Service (DTS), vous pouvez synchroniser des données depuis RDS MySQL ou RDS MySQL Serverless vers AnalyticDB for MySQL, ce qui vous permet de mettre rapidement en place des systèmes de BI d'entreprise, de requêtes interactives et de rapports en temps réel.
ou RDS MySQL Serverless
Prérequis
Toutes les tables à synchroniser dans l'instance source RDS MySQL doivent disposer d'une clé primaire.
Un cluster de destination AnalyticDB for MySQL a été créé. Pour plus d'informations, consultez Créer un cluster.
Assurez-vous que le cluster de destination AnalyticDB for MySQL dispose d'un espace de stockage suffisant.
Limites
Lors de l'initialisation complète des données, DTS consomme des ressources de lecture et d'écriture sur les bases de données source et de destination, ce qui peut augmenter leur charge. Lorsque les bases de données présentent de faibles performances, des spécifications limitées ou des charges de travail élevées (par exemple, un grand nombre d'instructions SQL lentes, des tables sans clés primaires ou des interblocages sur la base de données de destination), la pression sur la base de données peut s'accroître davantage et entraîner une indisponibilité des services. Par conséquent, évaluez les performances des bases de données source et de destination avant de démarrer la synchronisation des données. Il est recommandé d'effectuer la synchronisation pendant les heures creuses (par exemple, lorsque la charge CPU des bases de données source et de destination est inférieure à 30 %).
-
N'utilisez pas d'outils tels que gh-ost ou pt-online-schema-change pour effectuer des opérations DDL en ligne sur les objets à synchroniser dans la base de données source pendant la synchronisation des données. Dans le cas contraire, la tâche de synchronisation échoue.
En raison des limites d'utilisation de AnalyticDB for MySQL, si l'utilisation du disque de n'importe quel nœud du cluster dépasse 80 %, le cluster est verrouillé. Avant de commencer, estimez l'espace de stockage requis pour les objets à synchroniser et assurez-vous que le cluster de destination dispose d'une capacité suffisante.
Les index de préfixe ne peuvent pas être synchronisés. Si la base de données source contient des index de préfixe, la synchronisation des données peut échouer.
Si le cluster de destination AnalyticDB for MySQL 3,0 effectue une sauvegarde pendant l'exécution de la tâche DTS, la tâche échoue.
Facturation
|
Type de synchronisation |
Tarification |
|
Synchronisation du schéma et synchronisation complète des données |
Gratuit. |
|
Synchronisation incrémentielle des données |
Facturé. Pour plus d'informations, consultez Présentation de la facturation. |
Opérations SQL prises en charge
Opérations DDL : CREATE TABLE, DROP TABLE, RENAME TABLE, TRUNCATE TABLE, ADD COLUMN, DROP COLUMN et MODIFY COLUMN
Opérations DML : INSERT, UPDATE et DELETE
Si vous modifiez le type de données d'un champ dans la table source pendant la synchronisation des données, la tâche de synchronisation signale une erreur et est interrompue. Vous pouvez résoudre manuellement le problème en suivant les instructions à la fin de cette rubrique. Pour plus d'informations, consultez Résoudre les échecs de synchronisation causés par des modifications de type de champ.
Si vous modifiez le type de données d'un champ dans la table source pendant la synchronisation des données, la tâche de synchronisation signale une erreur et est interrompue. Vous pouvez résoudre manuellement le problème en suivant les instructions à la fin de cette rubrique. Pour plus d'informations, consultez Résoudre les échecs de synchronisation causés par des modifications de type de champ.
Autorisations de compte de base de données requises
|
Base de données |
Autorisations requises |
|
RDS MySQL |
Les autorisations REPLICATION CLIENT, REPLICATION SLAVE et SHOW VIEW, ainsi que l'autorisation SELECT sur tous les objets à synchroniser. |
|
AnalyticDB for MySQL |
Les autorisations READ et WRITE. |
Mappages de types de données
Les types de données de MySQL et de AnalyticDB for MySQL n'ont pas de correspondance un à un. Lors de l'initialisation du schéma, DTS mappe les types de données en fonction des définitions de type de données. Pour plus d'informations, consultez Initialisation du schéma : mappages de types de données.
Procédure
-
Achetez une tâche de synchronisation de données. Pour plus d'informations, consultez Acheter une instance DTS.
RemarqueLors de l'achat de la tâche, définissez l'instance source sur MySQL, l'instance de destination sur AnalyticDB MySQL et la topologie de synchronisation sur One-way Synchronization.
Connectez-vous à la console Data Transmission Service.
Dans le volet de navigation de gauche, cliquez sur Data Synchronization.
-
En haut de la page Data Synchronization, sélectionnez la région de l'instance de synchronisation de données.
Recherchez l'instance de synchronisation de données achetée, puis cliquez sur Configure Synchronization Channel.
-
Configurez les instances source et de destination pour le canal de synchronisation.
Section
Paramètre
Description
S.O.
Nom de la tâche de synchronisation
DTS génère automatiquement un nom de tâche. Nous vous recommandons de spécifier un nom descriptif pour une identification facile. Le nom n'a pas besoin d'être unique.
Informations sur l'instance source
Type d'instance
Sélectionnez RDS Instance.
Région de l'instance
La région de l'instance source que vous avez sélectionnée lors de l'achat de l'instance de synchronisation de données. Ce paramètre ne peut pas être modifié.
ID de l'instance
Sélectionnez l'ID de l'instance RDS source.
Compte de base de données
Saisissez le compte de base de données de l'instance RDS source. Pour plus d'informations sur les autorisations requises, consultez Autorisations de compte de base de données requises.
RemarqueSi le type de base de données de l'instance RDS source est MySQL 5.5 ou MySQL 5.6, vous n'avez pas besoin de configurer Database Account et Database Password.
Mot de passe de la base de données
Saisissez le mot de passe du compte de base de données.
Méthode de connexion
Sélectionnez Non-encrypted ou SSL-encrypted selon vos besoins. Si vous sélectionnez SSL-encrypted, vous devez activer le chiffrement SSL pour l'instance RDS au préalable. Pour plus d'informations, consultez Utiliser un certificat cloud pour activer le chiffrement SSL.
ImportantActuellement, le paramètre Encryption ne peut être défini que dans les régions de Chine continentale et de Chine (Hong Kong).
Informations sur l'instance de destination
Type d'instance
Fixé sur ADS. Ce paramètre ne peut pas être modifié.
Région de l'instance
La région de l'instance de destination que vous avez sélectionnée lors de l'achat de l'instance de synchronisation de données. Ce paramètre ne peut pas être modifié.
Version
Sélectionnez 3,0.
Base de données
Sélectionnez l'ID du cluster de destination AnalyticDB for MySQL.
Compte de base de données
Saisissez le compte de base de données du cluster de destination AnalyticDB for MySQL. Pour plus d'informations sur les autorisations requises, consultez Autorisations de compte de base de données requises.
Mot de passe de la base de données
Saisissez le mot de passe du compte de base de données.
-
Dans le coin inférieur droit de la page, cliquez sur Set Whitelist and Next.
Si la base de données source ou de destination est une instance de base de données Alibaba Cloud, telle qu'une instance ApsaraDB RDS for MySQL ou ApsaraDB for MongoDB, DTS ajoute automatiquement les blocs CIDR des serveurs DTS à la liste blanche d'adresses IP de l'instance. Si la base de données source ou de destination est une base de données autogérée hébergée sur une instance Elastic Compute Service (ECS), DTS ajoute automatiquement les blocs CIDR des serveurs DTS aux règles du groupe de sécurité de l'instance ECS, et vous devez vous assurer que l'instance ECS peut accéder à la base de données. Si la base de données autogérée est hébergée sur plusieurs instances ECS, vous devez ajouter manuellement les blocs CIDR des serveurs DTS aux règles du groupe de sécurité de chaque instance ECS. Si la base de données source ou de destination est une base de données autogérée déployée dans un centre de données ou fournie par un fournisseur de services cloud tiers, vous devez ajouter manuellement les blocs CIDR des serveurs DTS à la liste blanche d'adresses IP de la base de données pour permettre à DTS d'y accéder. Pour plus d'informations, consultez Ajouter les adresses IP des serveurs DTS à la liste blanche.
AvertissementL'ajout des blocs CIDR d'adresses IP publiques des serveurs DTS, qu'il soit automatique ou manuel, peut poser des risques de sécurité. En utilisant ce produit, vous reconnaissez et acceptez ces risques potentiels. Vous devez mettre en œuvre des protections de sécurité de base. Ces protections incluent, mais ne se limitent pas au renforcement de la sécurité des mots de passe, à la restriction des ports ouverts pour les blocs CIDR, à l'utilisation de l'authentification pour la communication API interne et à la révision et à la restriction régulières des blocs CIDR inutiles. Vous pouvez également vous connecter à la base de données via un réseau interne, tel qu'une ligne louée, un VPN Gateway ou un Smart Access Gateway.
-
Configurez la stratégie de synchronisation et les objets.
Paramètre
Description
Synchronisation initiale
Par défaut, vous devez sélectionner à la fois Initial Schema Synchronization et Initial Full Data Synchronization. Une fois la vérification préalable terminée, DTS initialise le schéma et les données des objets à synchroniser depuis l'instance source vers le cluster de destination, servant de référence pour la synchronisation incrémentielle ultérieure.
Mode de traitement des tables cibles existantes
-
Precheck and Report Errors : vérifie si la base de données de destination contient des tables portant les mêmes noms. Si aucune table portant le même nom n'existe, la vérification réussit. Si des tables portant les mêmes noms existent, une erreur est signalée lors de la vérification préalable et la tâche de synchronisation ne démarre pas.
RemarqueS'il est difficile de supprimer ou de renommer les tables portant les mêmes noms dans la base de données de destination, vous pouvez modifier les noms de ces tables dans la base de données de destination. Pour plus d'informations, consultez Renommer les objets synchronisés dans l'instance de destination.
-
Ignore Errors and Proceed : ignore la vérification des tables portant les mêmes noms dans la base de données de destination.
AvertissementSi vous sélectionnez Ignore Errors and Proceed, une incohérence des données peut survenir, ce qui présente des risques pour votre activité. Par exemple :
-
Si les schémas de table sont identiques et qu'un enregistrement de la base de données de destination possède la même valeur de clé primaire qu'un enregistrement de la base de données source, l'enregistrement de la base de données de destination est conservé. Autrement dit, l'enregistrement de la base de données source n'est pas synchronisé avec la base de données de destination.
-
Si les schémas de table sont différents, l'initialisation des données peut échouer, seules les données de certaines colonnes peuvent être synchronisées ou la synchronisation peut échouer.
-
Fusionner plusieurs tables
-
Si vous sélectionnez Yes : DTS ajoute une colonne
__dts_data_sourceà chaque table pour stocker la source des données, et la synchronisation DDL n'est plus prise en charge. -
Si vous sélectionnez No : option par défaut. La synchronisation DDL est prise en charge.
RemarqueLa fonctionnalité de fusion de tables fonctionne au niveau de la tâche plutôt qu'au niveau de la table. Si vous souhaitez fusionner uniquement certaines tables, créez deux tâches de synchronisation de données distinctes.
Type de synchronisation
Sélectionnez les types d'opérations à synchroniser en fonction de vos besoins métier. Pour plus d'informations sur les opérations de synchronisation prises en charge, consultez Opérations SQL prises en charge. Tous les types d'opérations sont sélectionnés par défaut.
Objets à synchroniser
Dans la zone Source Objects, sélectionnez les objets à synchroniser, puis cliquez sur l'icône
pour les déplacer vers la zone Selected Objects.Vous pouvez sélectionner des bases de données ou des tables comme objets à synchroniser.
Remarque-
Si vous sélectionnez une base de données entière comme objet de synchronisation, toutes les modifications de schéma dans la base de données sont synchronisées avec la base de données de destination.
-
Si vous sélectionnez une table comme objet de synchronisation, seules les opérations ADD COLUMN sur la table sont synchronisées avec la base de données de destination.
-
Par défaut, les noms des objets synchronisés restent inchangés. Si vous souhaitez que les objets synchronisés aient des noms différents dans le cluster de destination, utilisez la fonctionnalité de mappage de noms d'objets. Pour plus d'informations, consultez Renommer les objets synchronisés dans l'instance de destination.
Mappage de bibliothèque, de table et de colonne
Modifiez les noms des objets synchronisés dans l'instance de destination. Pour plus d'informations, consultez Mapper des bases de données, des tables et des colonnes.
Répliquer les tables temporaires lors des DDL en ligne DMS
Si vous utilisez Data Management (DMS) pour effectuer des modifications DDL en ligne sur la base de données source, vous pouvez choisir de synchroniser ou non les tables temporaires générées par les modifications DDL.
-
Yes : Synchronise les tables temporaires générées par les modifications DDL en ligne.
RemarqueSi une grande quantité de données de tables temporaires est générée par les modifications DDL en ligne, la tâche de synchronisation des données peut être retardée.
-
No : Ne synchronise pas les tables temporaires générées par les modifications DDL en ligne. Seules les opérations DDL d'origine de la base de données source sont synchronisées.
RemarqueCette option entraîne le verrouillage des tables dans la base de données de destination.
Durée de nouvelle tentative de connexion
Si DTS ne parvient pas à se connecter à l'instance source ou de destination, il effectue des nouvelles tentatives pendant 720 minutes (12 heures) par défaut. Vous pouvez également spécifier une durée de nouvelle tentative personnalisée. Si DTS se reconnecte à l'instance source ou de destination dans le délai spécifié, la tâche de synchronisation reprend automatiquement. Dans le cas contraire, la tâche échoue.
RemarqueVous êtes facturé pour le temps d'exécution de la tâche pendant les nouvelles tentatives de connexion. Personnalisez la durée de nouvelle tentative en fonction de vos besoins métier, ou libérez l'instance DTS dès que les instances source et de destination sont libérées.
-
Une fois les configurations précédentes terminées, cliquez sur Next dans le coin inférieur droit de la page.
-
Définissez les types des tables à synchroniser dans la base de données de destination.
Le tableau de configuration comprend également les colonnes ADB Table Group, ADB Table Name, Number of Partitions et Definition Status. Lorsque vous survolez un nom de base de données ou de table, DTS affiche le nom de la table source.
RemarqueSi vous sélectionnez Initial Schema Synchronization, vous devez définir les tables à synchroniser dans AnalyticDB for MySQL, y compris le Type, la colonne de clé primaire et la colonne de partition. Pour plus d'informations, consultez CREATE TABLE.
-
Une fois les configurations précédentes terminées, cliquez sur Precheck and Start dans le coin inférieur droit de la page.
RemarqueAvant le démarrage officiel de la tâche de synchronisation, une vérification préalable est effectuée. La tâche de synchronisation ne peut démarrer qu'après la réussite de la vérification préalable.
-
Si la vérification préalable échoue, cliquez sur l'icône
à côté d'un élément de vérification spécifique pour afficher les détails de l'échec.Suivez l'invite pour corriger le problème et exécutez à nouveau la vérification préalable.
Si vous n'avez pas besoin de corriger les éléments de vérification d'avertissement, vous pouvez également sélectionner Ignore, Ignore Warning Items and Rerun Precheck pour ignorer les éléments de vérification d'avertissement et exécuter à nouveau la vérification préalable.
Lorsque Precheck Passed s'affiche dans la boîte de dialogue Precheck, fermez la boîte de dialogue Precheck. La tâche de synchronisation démarre.
-
Attendez que l'initialisation du lien soit terminée et que la tâche passe à l'état Synchronizing.
Vous pouvez accéder à la page Data Synchronization pour afficher l'état de la tâche de synchronisation.
La liste des tâches de synchronisation sur cette page comprend des colonnes pour Instance ID/Task Name, Status, Sync Overview (latence et vitesse), Billing Method, Synchronization Topology et Actions. Depuis la colonne Actions, vous pouvez effectuer des opérations telles que Pause Synchronization, Switch to Subscription et Upgrade. L'en-tête de la page permet de rechercher par nom de tâche et de filtrer ou de trier par état.
Résoudre les échecs de synchronisation causés par des modifications de type de champ
Si vous modifiez le type de données d'un champ dans la table source pendant la synchronisation des données, la tâche de synchronisation signale une erreur et est interrompue. Vous pouvez résoudre manuellement le problème en suivant ces étapes.
Dans l'instance de destination, créez une nouvelle table B (par exemple, customer_new) basée sur la table A ayant échoué (par exemple, customer), et ajustez les types de champs de la table B aux types requis.
Exécutez l'instruction INSERT INTO SELECT pour copier les données de la table A vers la nouvelle table B. Assurez-vous que les données des deux tables sont cohérentes.
Renommez ou supprimez la table A ayant échoué, puis renommez la table B en customer.
Dans la console DTS, redémarrez la tâche de synchronisation des données.