Data Transmission Service (DTS) vous permet de synchroniser en continu les données d'une instance PolarDB-X 2,0 vers une instance AnalyticDB for PostgreSQL, ce qui vous permet d'exécuter des analyses et des requêtes en temps réel sur vos données transactionnelles sans impacter la base de données source.
Prérequis
Avant de commencer, assurez-vous de disposer des éléments suivants :
Une instance AnalyticDB for PostgreSQL disposant d'un stockage disponible suffisant pour contenir toutes les données de l'instance PolarDB-X 2,0 source. Pour les instructions de configuration, consultez Créer une instance.
Une base de données créée dans l'instance de destination pour recevoir les données synchronisées. Pour les instructions de configuration, reportez-vous à la section « CREATE DATABASE » de la documentation Syntaxe SQL.
Les autorisations appropriées sur les bases de données source et de destination (voir Autorisations requises pour les comptes de base de données).
Limites
Base de données source
| Limitation | Détails |
|---|---|
| Exigences relatives aux tables | Les tables doivent posséder une contrainte PRIMARY KEY ou UNIQUE, avec tous les champs uniques. L'absence de ces contraintes peut entraîner la présence de lignes en double dans la destination. |
| Nombre de tables (lors de la modification des noms d'objets) | Si vous renommez des tables ou des colonnes dans la destination, une seule tâche prend en charge jusqu'à 5 000 tables. Le dépassement de cette limite provoque une erreur de requête. Répartissez le travail sur plusieurs tâches ou synchronisez au niveau de la base de données. |
| Journalisation binaire | La journalisation binaire doit être activée dans la console PolarDB-X 2,0 (voir Paramètres), et binlog_row_image doit être défini sur full. Le non-respect de l'une de ces exigences entraîne l'échec de la pré-vérification et empêche le démarrage de la tâche. |
| Rétention des journaux binaires | Synchronisation incrémentielle uniquement : conservez les journaux binaires pendant au moins 24 heures. Synchronisation complète + incrémentielle : conservez les journaux binaires pendant au moins 7 jours ; une fois la synchronisation complète terminée, vous pouvez définir la période de rétention sur plus de 24 heures. Si DTS ne parvient pas à lire les journaux binaires, la tâche échoue et des incohérences ou des pertes de données peuvent survenir. |
| Compatibilité MySQL | L'instance PolarDB-X doit être compatible avec MySQL V5.7. |
Autres limites
Seules les tables peuvent être sélectionnées comme objets de synchronisation. Les tables optimisées pour l'ajout (AO) ne sont pas prises en charge.
Si les mappages de colonnes entre la source et la destination sont incomplets, ou si les schémas diffèrent, les données des colonnes non mappées sont perdues.
Exécutez les tâches de synchronisation pendant les heures creuses. La synchronisation initiale des données complètes utilise les ressources de lecture et d'écriture des bases de données source et de destination, ce qui peut augmenter la charge du serveur.
Les opérations INSERT concurrentes lors de la synchronisation initiale des données complètes provoquent une fragmentation des tables dans la destination ; ainsi, l'espace de table de destination sera plus grand que celui de la source une fois la synchronisation complète terminée.
Écrivez les données dans la base de données de destination uniquement via DTS pendant la synchronisation. L'écriture via d'autres outils entraîne des incohérences de données, et les opérations DDL en ligne DMS peuvent provoquer une perte de données dans la base de données de destination.
Cas particuliers
DTS met régulièrement à jour la table dts_health_check.ha_health_check dans la base de données source pour faire avancer la position du journal binaire.
Facturation
| Type de synchronisation | Coût |
|---|---|
| Synchronisation du schéma et synchronisation complète des données | Gratuit |
| Synchronisation incrémentielle des données | Facturé. Consultez Présentation de la facturation. |
Opérations SQL prises en charge
DTS synchronise les opérations SQL suivantes :
DML : INSERT, UPDATE, DELETE
DDL: ADD COLUMN
CREATE TABLE n'est pas pris en charge. Pour synchroniser une table nouvellement créée, ajoutez-la manuellement aux objets sélectionnés. Consultez Ajouter un objet à une tâche de synchronisation de données .
Autorisations requises pour les comptes de base de données
Accordez les autorisations requises aux comptes de base de données avant de créer une tâche de synchronisation.
| Base de données | Autorisations requises |
|---|---|
| PolarDB-X 2,0 source | SELECT sur les objets à synchroniser, REPLICATION SLAVE, REPLICATION CLIENT |
| AnalyticDB for PostgreSQL de destination | Lecture et écriture sur la base de données de destination. Utilisez le compte initial ou un compte disposant de l'autorisation RDS_SUPERUSER. |
Pour plus d'informations, consultez Gérer les comptes de base de données et Autorisations requises pour la synchronisation des données.
Pour l'instance AnalyticDB for PostgreSQL de destination, consultez Créer un compte de base de données et Gérer les autorisations des comptes.
Créer une tâche de synchronisation
Étape 1 : Accéder à la page Tâches de synchronisation de données
Connectez-vous à la console DMS.
Dans la barre de navigation supérieure, cliquez sur DTS.
Dans le volet de navigation de gauche, choisissez DTS (DTS) > Data Synchronization.
La navigation réelle peut varier selon votre mode DMS et votre disposition. Consultez Mode simple et Personnaliser la disposition et le style de la console DMS . Vous pouvez également accéder directement à la page Tâches de synchronisation de données dans la nouvelle console DTS.
Étape 2 : Sélectionner une région
Dans la liste déroulante située à droite de Data Synchronization Tasks, sélectionnez la région où vous souhaitez créer la tâche.Page Tâches de synchronisation de données de la nouvelle console DTS
Dans la nouvelle console DTS, sélectionnez la région dans le coin supérieur gauche de la page.
Étape 3 : Configurer les bases de données source et de destination
Cliquez sur Create Task. Dans l'assistant de création de tâche, configurez les paramètres suivants :
Base de données source
| Paramètre | Valeur |
|---|---|
| Task Name | Un nom descriptif pour la tâche. DTS attribue automatiquement un nom, mais un nom explicite vous aide à identifier la tâche ultérieurement. Les noms de tâches n'ont pas besoin d'être uniques. |
| Select an existing DMS database instance | (Facultatif) Sélectionnez une instance enregistrée existante pour remplir automatiquement les paramètres de la base de données. Si vous ignorez cette étape, configurez les paramètres manuellement. |
| Database Type | Sélectionnez PolarDB-X 2.0. |
| Access Method | Sélectionnez Alibaba Cloud Instance. |
| Instance Region | La région de l'instance PolarDB-X 2,0. |
| Replicate Data Across Alibaba Cloud Accounts | Sélectionnez No pour une synchronisation au sein du même compte. |
| Instance ID | L'ID de l'instance PolarDB-X 2,0. |
| Database Account | Le compte pour l'instance PolarDB-X 2,0. Consultez Autorisations requises pour les comptes de base de données. |
| Database Password | Le mot de passe du compte de base de données. |
Base de données de destination
| Paramètre | Valeur |
|---|---|
| Select an existing DMS database instance | (Facultatif) Sélectionnez une instance enregistrée existante pour remplir automatiquement les paramètres de la base de données. Si vous ignorez cette étape, configurez les paramètres manuellement. |
| Database Type | Sélectionnez AnalyticDB for PostgreSQL. |
| Access Method | Sélectionnez Alibaba Cloud Instance. |
| Instance Region | La région de l'instance AnalyticDB for PostgreSQL. |
| Instance ID | L'ID de l'instance AnalyticDB for PostgreSQL. |
| Database Name | Le nom de la base de données dans l'instance de destination qui reçoit les données synchronisées. |
| Database Account | Le compte pour l'instance AnalyticDB for PostgreSQL. Consultez Autorisations requises pour les comptes de base de données. |
| Database Password | Le mot de passe du compte de base de données. |
Étape 4 : Tester la connectivité
Cliquez sur Test Connectivity and Proceed.
DTS ajoute automatiquement ses blocs CIDR de serveur à la liste d'autorisation des instances de base de données Alibaba Cloud, ainsi qu'aux règles de groupe de sécurité des instances Elastic Compute Service (ECS) hébergeant des bases de données gérées par l'utilisateur. Pour les bases de données gérées par l'utilisateur dans des centres de données sur site ou des clouds tiers, ajoutez manuellement les blocs CIDR du serveur DTS à la liste d'autorisation de la base de données. Consultez Ajouter les blocs CIDR des serveurs DTS aux paramètres de sécurité des bases de données sur site.
L'ajout de blocs CIDR de serveur DTS aux listes d'autorisation ou aux groupes de sécurité introduit des risques potentiels pour la sécurité. Avant de poursuivre, prenez des mesures de protection telles que le renforcement des identifiants, la limitation des ports exposés, l'authentification des appels API, l'audit régulier des règles de liste d'autorisation et le blocage des blocs CIDR non autorisés. Envisagez de vous connecter via Express Connect, VPN Gateway ou Smart Access Gateway (SAG) pour une sécurité accrue.
Étape 5 : Sélectionner les objets et les types de synchronisation
Configurez les paramètres suivants :
| Paramètre | Description |
|---|---|
| Synchronization Types | Sélectionnez les trois options : Schema Synchronization, Full Data Synchronization et Synchronisation incrémentielle des données. DTS présélectionne Synchronisation incrémentielle des données par défaut. La synchronisation complète des données migre d'abord les données historiques, établissant ainsi la référence pour la synchronisation incrémentielle continue. |
| Processing Mode of Conflicting Tables | Pré-vérifier et signaler les erreurs (recommandé) : DTS vérifie les conflits de noms de table avant le démarrage. En cas de conflits, la pré-vérification échoue. Utilisez le mappage des noms d'objets pour renommer les tables en conflit dans la destination. Ignorer les erreurs et continuer : ignore les vérifications de conflit. Lors de la synchronisation complète, DTS ignore les lignes conflictuelles et conserve les données de destination existantes. Lors de la synchronisation incrémentielle, les lignes conflictuelles écrasent les données de destination. Si les schémas diffèrent, l'initialisation peut échouer ou des colonnes peuvent manquer. À utiliser avec prudence. |
| Capitalization of object names in destination instance | Détermine si les noms de base de données, de table et de colonne dans la destination suivent la convention de casse de la source ou de la destination. La valeur par défaut est Politique par défaut de DTS. Consultez Spécifier la casse des noms d'objets dans l'instance de destination. |
| Source Objects | Sélectionnez une ou plusieurs tables dans Objets source et cliquez sur l'icône de flèche pour les déplacer vers Objets sélectionnés. Seules les tables sont prises en charge ; les vues, déclencheurs et procédures stockées ne sont pas synchronisés. |
| Selected Objects | Faites un clic droit sur un objet pour le renommer, définir des conditions de filtre WHERE ou choisir les opérations SQL à synchroniser. Cliquez sur Batch Edit pour renommer plusieurs objets à la fois. Notez que le renommage d'un objet peut empêcher la synchronisation des objets dépendants. |
Étape 6 : Configurer les paramètres avancés
Cliquez sur Next: Advanced Settings et configurez les éléments suivants :
| Paramètre | Description |
|---|---|
| Select the dedicated cluster used to schedule the task | Laissez la valeur par défaut (cluster partagé), sauf si vous avez acheté un cluster dédié. Consultez Qu'est-ce qu'un cluster dédié DTS ?. |
| Set Alerts | Sélectionnez Yes pour recevoir des notifications en cas d'échec de la tâche ou si la latence de synchronisation dépasse un seuil. Configurez le seuil d'alerte et les contacts. Consultez Configurer la surveillance et les alertes lors de la création d'une tâche DTS. |
| Retry Time for Failed Connections | Durée pendant laquelle DTS tente de se reconnecter après un échec de connexion au démarrage de la tâche. Définissez une valeur supérieure à 30 minutes (plage valide : 10–1 440 minutes ; par défaut : 720). Si plusieurs tâches partagent la même source ou destination, la durée de nouvelle tentative la plus courte parmi ces tâches s'applique. |
| Wait time before a retry for other issues | Durée pendant laquelle DTS tente une nouvelle action après l'échec d'une opération DDL ou DML. Définissez une valeur supérieure à 10 minutes (plage valide : 1–1 440 minutes ; par défaut : 10). Cette valeur doit être inférieure à la valeur de Retry Time for Failed Connections. |
| Enable Throttling for Full Data Migration | Configurez Queries per second (QPS) to the source database, RPS de la migration complète des données et BPS de la migration complète des données pour réduire la charge sur la destination lors de la synchronisation complète. Disponible uniquement lorsque Full Data Synchronization est sélectionné. |
| Enable Throttling for Incremental Data Synchronization | Configurez RPS of Incremental Data Migration et BPS de la migration incrémentielle des données pour réduire la charge sur la destination lors de la synchronisation incrémentielle. |
| Environment Tag | (Facultatif) Ajoutez un tag à l'instance DTS pour l'identifier. |
| Whether to delete SQL operations on heartbeat tables of forward and reverse tasks | Sélectionnez Yes pour empêcher DTS d'écrire des opérations de heartbeat dans la base de données source. Cela évite d'affecter la sauvegarde physique et le clonage, mais peut afficher un décalage de latence dans la console DTS. Sélectionnez No pour écrire les opérations de heartbeat dans la base de données source. Certaines fonctionnalités, telles que la sauvegarde physique et le clonage, peuvent être affectées. |
| Configure ETL | Sélectionnez Yes pour configurer la fonctionnalité extract, transform, load (ETL) et saisir les instructions de traitement des données dans l'éditeur de code. Consultez Configurer ETL dans une tâche de migration ou de synchronisation de données. |
Étape 7 : (Facultatif) Configurer les champs de base de données et de table
Cliquez sur Next: Configure Database and Table Fields.
Sur cette page, spécifiez le type, la colonne de clé primaire et la clé de distribution pour chaque table que vous synchronisez vers AnalyticDB for PostgreSQL. Cette étape n'est disponible que si vous avez sélectionné Schema Synchronization à l'étape 5.
Définissez Definition Status sur Tout pour afficher et modifier toutes les tables.
Dans Colonne de clé primaire, vous pouvez spécifier plusieurs colonnes pour former une clé primaire composite. Au moins une colonne de clé primaire doit également être définie comme clé de distribution. Consultez Gérer les tables et Définir la distribution des tables.
Étape 8 : Exécuter la pré-vérification
Cliquez sur Next: Save Task Settings and Precheck.
DTS exécute une pré-vérification avant de démarrer la tâche. La tâche ne peut procéder qu'après la réussite de toutes les vérifications.
Si une vérification échoue, cliquez sur View Details à côté de l'élément ayant échoué, résolvez le problème et relancez la pré-vérification.
Si une alerte est déclenchée pour un élément qui peut être ignoré en toute sécurité, cliquez sur Confirm Alert Details, puis sur Ignore, confirmez avec OK et cliquez sur Precheck Again. Ignorer les alertes peut entraîner des incohérences de données.
Pour prévisualiser les paramètres d'API utilisés pour configurer cette instance, survolez Next: Save Task Settings and Precheck et cliquez sur Preview OpenAPI parameters .
Étape 9 : Acheter une instance
Attendez que le taux de réussite de la pré-vérification atteigne 100 %, puis cliquez sur Next: Purchase Instance.
Sur la page Purchase Instance, configurez les éléments suivants :
| Paramètre | Description |
|---|---|
| Billing Method | Abonnement : payez à l'avance pour une durée de un à neuf mois, ou un, deux, trois ou cinq ans. Plus rentable pour les tâches de longue durée. Paiement à l'utilisation : facturation horaire. Adapté aux tâches de courte durée ; libérez l'instance une fois terminée pour arrêter la facturation. |
| Resource Group | Le groupe de ressources pour l'instance. Par défaut : groupe de ressources par défaut. Consultez Qu'est-ce que Resource Management ?. |
| Instance Class | La spécification de synchronisation détermine le débit et les performances. Sélectionnez en fonction de votre volume de données et de vos exigences de latence. Consultez Spécifications des instances de synchronisation de données. |
Étape 10 : Démarrer la tâche
Lisez et acceptez les Conditions de service Data Transmission Service (paiement à l'utilisation), puis cliquez sur Buy and Start.
La tâche de synchronisation démarre. Suivez sa progression dans la liste des tâches.