Utilisez Data Transmission Service (DTS) pour synchroniser une base de données Oracle gérée par l'utilisateur avec une instance PolarDB-X 2.0. DTS prend en charge la synchronisation du schéma, la synchronisation complète des données et la synchronisation incrémentielle des données pour ce flux, afin que votre base de données Oracle reste à jour avec les modifications continues apportées dans PolarDB-X 2.0.
Prérequis
Avant de commencer, assurez-vous que :
La base de données Oracle gérée par l'utilisateur est créée et dispose d'un espace de stockage disponible suffisant pour contenir toutes les données de l'instance source PolarDB-X 2.0.
Un schéma existe dans la base de données Oracle. Un schéma est créé automatiquement lorsque vous créez un utilisateur dans Oracle.
Les comptes de base de données pour la source et la destination disposent des autorisations requises. Consultez la section Autorisations requises pour les comptes de base de données.
Limites
Lors de la synchronisation du schéma, DTS synchronise les clés étrangères de la base de données source vers la base de données de destination.
Limites de la base de données source
| Limite | Détails | Solution de contournement |
|---|---|---|
| Clé primaire ou contrainte d'unicité requise | Les tables doivent posséder une contrainte PRIMARY KEY ou UNIQUE, avec tous les champs uniques. Sans cela, la base de données de destination peut contenir des enregistrements en double. | Ajoutez une contrainte PRIMARY KEY ou UNIQUE aux tables avant de créer la tâche. |
| Limite du nombre de tables lors du renommage des objets | Si vous sélectionnez des tables comme objets à synchroniser et devez renommer 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 entraîne une erreur de requête. | Répartissez le travail sur plusieurs tâches ou passez d'une synchronisation au niveau des tables à une synchronisation au niveau de la base de données. |
| Tables contenant des majuscules dans leurs noms | Seule la synchronisation du schéma est prise en charge pour ces tables. La synchronisation complète des données et la synchronisation incrémentielle des données ne sont pas disponibles. | Renommez les tables dans la source pour utiliser des minuscules avant de créer la tâche, ou limitez la portée de la tâche à la synchronisation du schéma uniquement. |
Paramètre binlog_row_image |
La journalisation binaire est activée par défaut sur PolarDB-X 2.0. Le paramètre binlog_row_image doit être défini sur full. Si ce paramètre n'est pas correctement configuré, la prévérification échoue et la tâche ne peut pas démarrer. |
Définissez binlog_row_image sur full avant de créer la tâche. Consultez la page Paramètres. |
Autres limites
Exécutez les tâches de synchronisation pendant les heures creuses. La synchronisation initiale complète des données utilise les ressources de lecture et d'écriture sur les deux bases de données et peut augmenter la charge du serveur.
Une fois la synchronisation initiale complète des données terminée, l'espace de table de destination est plus grand que celui de la source en raison de la fragmentation causée par les opérations INSERT concurrentes.
Pendant la synchronisation, écrivez les données dans la base de données de destination uniquement via DTS. Les écritures provenant d'autres sources peuvent provoquer une incohérence des données.
Au maximum, les attributs d'une seule colonne peuvent être modifiés. Les types de données de base ne peuvent pas être modifiés.
DTS crée une base de données nommée
dts_health_checket une table nomméeha_health_checkdans l'instance source, et met régulièrement à jour cette table pour faire avancer la position du journal binaire.
Facturation
| Type de synchronisation | Frais |
|---|---|
| Synchronisation du schéma et synchronisation complète des données | Gratuit |
| Synchronisation incrémentielle des données | Facturé. Consultez la section Présentation de la facturation. |
Opérations SQL pouvant être synchronisées
DTS prend en charge les opérations DML suivantes pour ce chemin de synchronisation : INSERT, UPDATE et DELETE.
|
Type d'opération |
Instruction d'opération SQL |
|
DML |
INSERT, UPDATE, DELETE |
Autorisations requises pour les comptes de base de données
Accordez les autorisations suivantes avant de configurer la tâche.
| Base de données | Autorisations requises | Références |
|---|---|---|
| Instance source PolarDB-X 2.0 | SELECT sur les objets à synchroniser (pour lire les données source), REPLICATION SLAVE et REPLICATION CLIENT (pour lire les journaux binaires pour la synchronisation incrémentielle) | Gérer les comptes de base de données et Autorisations requises pour un compte afin de synchroniser des données |
| Base de données Oracle gérée par l'utilisateur de destination | Autorisations de propriétaire sur le schéma (pour créer et écrire dans les tables du schéma cible) | CREATE USER et GRANT |
Créer une tâche de synchronisation des données
Étape 1 : Accéder à la page Tâches de synchronisation des 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 différer selon votre mode et votre disposition DMS. 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 des données dans la nouvelle console DTS.
Étape 2 : Sélectionner une région
Dans la liste déroulante à droite de Data Synchronization Tasks, sélectionnez la région où vous souhaitez créer la tâche.Page Tâches de synchronisation des 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 Create Task, configurez les paramètres suivants.
Nom de la tâche
| Paramètre | Description |
|---|---|
| Task Name | DTS attribue automatiquement un nom. Spécifiez un nom descriptif pour identifier plus facilement la tâche. Le nom n'a pas besoin d'être unique. |
Base de données source
| Paramètre | Description |
|---|---|
| Select an existing DMS database instance | Facultatif. Sélectionnez une instance DMS existante pour remplir automatiquement les paramètres ci-dessous, ou laissez le champ vide et configurez les paramètres manuellement. |
| Database Type | Sélectionnez PolarDB-X 2.0. |
| Access Method | Sélectionnez Alibaba Cloud Instance. |
| Instance Region | Sélectionnez la région où réside l'instance source PolarDB-X 2.0. |
| Replicate Data Across Alibaba Cloud Accounts | Sélectionnez No pour synchroniser au sein du même compte Alibaba Cloud. |
| Instance ID | Sélectionnez l'instance source PolarDB-X 2.0. |
| Database Account | Saisissez le compte de base de données. Consultez la section Autorisations requises pour les comptes de base de données. |
| Database Password | Saisissez le mot de passe du compte de base de données. |
Base de données de destination
| Paramètre | Description |
|---|---|
| Select an existing DMS database instance | Facultatif. Sélectionnez une instance DMS existante pour remplir automatiquement les paramètres ci-dessous, ou laissez le champ vide et configurez les paramètres manuellement. |
| Database Type | Sélectionnez Oracle. |
| Access Method | Sélectionnez Self-managed Database on ECS. Si vous utilisez une autre méthode d'accès, configurez d'abord l'environnement réseau. Consultez la section Présentation de la préparation. |
| Instance Region | Sélectionnez la région où réside la base de données Oracle. |
| ECS Instance ID | Sélectionnez l'instance ECS qui héberge la base de données Oracle. |
| Port Number | Saisissez le port de service Oracle. Par défaut : 1521. |
| Oracle Type | Sélectionnez l'architecture Oracle : Non-RAC Instance ou RAC or PDB Instance. Pour une installation Oracle autonome, sélectionnez Non-RAC Instance et saisissez le SID (par exemple, ORCL). Pour une configuration Real Application Clusters (RAC) ou Pluggable Database (PDB), sélectionnez RAC or PDB Instance et saisissez le Service Name (par exemple, orclpdb1). |
| Database Account | Saisissez le compte de base de données Oracle. Consultez la section Autorisations requises pour les comptes de base de données. |
| Database Password | Saisissez le mot de passe du compte de base de données. |
Étape 4 : Tester la connectivité
Cliquez sur Test Connectivity and Proceed en bas de la page.
Ajoutez les blocs CIDR des serveurs DTS aux paramètres de sécurité de la base de données gérée par l'utilisateur (tels que les paramètres du pare-feu) pour autoriser l'accès depuis les serveurs DTS. Ensuite, cliquez sur Test Connectivity and Proceed.
Si la base de données source ou de destination est une instance de base de données Alibaba Cloud (comme l'instance source PolarDB-X 2.0), DTS ajoute automatiquement les blocs CIDR des serveurs DTS à la liste blanche de l'instance. Si la base de données Oracle se trouve sur ECS, DTS ajoute automatiquement ses blocs CIDR de serveur aux règles du groupe de sécurité ECS. Assurez-vous que l'instance ECS peut atteindre la base de données Oracle. Si la base de données se trouve dans un centre de données sur site ou chez un fournisseur cloud tiers, ajoutez manuellement les blocs CIDR des serveurs DTS à la liste d'autorisation de la base de données. Consultez la page Ajouter les blocs CIDR des serveurs DTS aux paramètres de sécurité des bases de données sur site.
L'ajout des blocs CIDR des serveurs DTS à votre liste d'autorisation de base de données ou aux règles du groupe de sécurité ECS peut présenter des risques de sécurité. Avant de poursuivre, prenez les précautions appropriées : utilisez des identifiants forts, limitez les ports exposés, authentifiez les appels API et auditez régulièrement votre liste d'autorisation et les règles de votre groupe de sécurité. Pour une isolation plus forte, connectez DTS à votre base de données via Express Connect, VPN Gateway ou Smart Access Gateway.
Étape 5 : Configurer les objets et les paramètres de synchronisation
Configurez les paramètres suivants.
Types de synchronisation
| Paramètre | Description |
|---|---|
| Synchronization Types | Par défaut, Incremental Data Synchronization est sélectionné. Vous devez également sélectionner Schema Synchronization et Full Data Synchronization. DTS synchronise d'abord les données historiques (complètes), puis continue avec les modifications en cours (incrémentielles). |
Gestion des conflits
| Paramètre | Description |
|---|---|
| Processing Mode of Conflicting Tables | Choisissez comment DTS gère les tables de la destination qui partagent les mêmes noms que les tables de la source. Precheck and Report Errors arrête la tâche si des noms de tables en double sont détectés — recommandé dans la plupart des cas. Ignore Errors and Proceed ignore la prévérification et continue, mais peut provoquer une incohérence des données — à utiliser avec prudence. Si vous devez résoudre des conflits de nommage sans supprimer les tables de destination, utilisez le mappage des noms d'objets pour renommer les tables de destination avant d'activer cette option. Consultez la page Mapper les noms d'objets. |
Majuscules/minuscules des objets
| Paramètre | Description |
|---|---|
| Capitalization of Object Names in Destination Instance | Contrôle la mise en majuscule des noms de bases de données, de tables et de colonnes dans la destination. La valeur par défaut est DTS default policy. Consultez la page Spécifier la mise en majuscule des noms d'objets. |
Sélectionner les objets
Dans la section Source Objects, sélectionnez les objets à synchroniser et cliquez sur l'icône de flèche pour les déplacer vers Selected Objects.
Vous pouvez sélectionner des colonnes, des tables ou des bases de données comme objets de synchronisation. Si vous sélectionnez des tables ou des colonnes, DTS ne synchronise pas d'autres objets tels que les vues, les déclencheurs ou les procédures stockées.
Après avoir ajouté des objets à Selected Objects, faites un clic droit sur l'entrée de la base de données de destination et sélectionnez Edit Schema. Dans le champ Schema Name, saisissez le nom du schéma Oracle qui recevra les données synchronisées.
Utilisez des majuscules pour le nom du schéma.
Pour filtrer les lignes, faites un clic droit sur une table dans Selected Objects et spécifiez des conditions WHERE SQL. Consultez la section Utiliser des conditions SQL pour filtrer les données .
Si vous utilisez le mappage des noms d'objets pour renommer un objet, d'autres objets qui en dépendent peuvent ne pas être synchronisés.
Étape 6 : Configurer les paramètres avancés
Cliquez sur Next: Advanced Settings et configurez les paramètres suivants.
| Paramètre | Description |
|---|---|
| Select the dedicated cluster used to schedule the task | Laissez la valeur par défaut pour utiliser un cluster partagé. Pour exécuter la tâche sur un cluster dédié avec des garanties de ressources spécifiques, achetez d'abord un cluster dédié. Consultez la page 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 la page Configurer la surveillance et les alertes. |
| Retry Time for Failed Connections | La fenêtre de temps durant laquelle DTS tente de reconnecter les connexions ayant échoué après le démarrage de la tâche. Plage : 10–1440 minutes. Par défaut : 720. Définissez cette valeur sur plus de 30 minutes. Si la connexion n'est pas rétablie dans cette fenêtre, la tâche échoue. Si plusieurs tâches partagent la même source ou destination, la fenêtre de nouvelle tentative la plus courte s'applique. Pendant les nouvelles tentatives, l'instance DTS continue d'engendrer des frais. |
| The wait time before a retry when other issues occur in the source and destination databases | La fenêtre de nouvelle tentative pour les opérations DDL ou DML ayant échoué. Plage : 1–1440 minutes. Par défaut : 10. Définissez cette valeur sur plus de 10 minutes. Cette valeur doit être inférieure à la valeur de Retry Time for Failed Connections. |
| Enable Throttling for Full Data Migration | Limitez les requêtes par seconde (QPS), les enregistrements par seconde (RPS) et les octets par seconde (BPS) pour la synchronisation complète des données afin de réduire la charge sur la base de données de destination. Disponible uniquement lorsque Full Data Synchronization est sélectionné. |
| Enable Throttling for Incremental Data Synchronization | Limitez le RPS et le BPS pour la synchronisation incrémentielle afin de réduire la charge sur la base de données de destination. |
| Environment Tag | Facultatif. Attribuez une balise d'environnement (par exemple, production ou staging) pour identifier l'instance DTS. |
| Configure ETL | Sélectionnez Yes pour transformer les données pendant la synchronisation à l'aide d'instructions extract, transform et load (ETL). Consultez la page Configurer ETL dans une tâche de migration ou de synchronisation des données. |
| Whether to delete SQL operations on heartbeat tables of forward and reverse tasks | Sélectionnez Yes pour empêcher DTS d'écrire les opérations de table de heartbeat dans la base de données source. Cela évite d'affecter des fonctionnalités telles que la sauvegarde physique et le clonage, mais peut afficher un décalage de latence dans l'instance DTS. Sélectionnez No pour écrire les opérations de heartbeat, ce qui maintient la précision des métriques de latence mais peut affecter les fonctionnalités de la base de données source. |
Étape 7 : Exécuter la prévérification
Cliquez sur Next: Save Task Settings and Precheck.
Pour prévisualiser les paramètres d'API utilisés pour configurer cette tâche, survolez Next: Save Task Settings and Precheck et cliquez sur Preview OpenAPI parameters .
DTS exécute une prévérification avant que la tâche puisse démarrer. Une fois la prévérification terminée :
Si tous les éléments réussissent, passez à l'étape suivante.
Si un élément échoue, cliquez sur View Details à côté de l'élément ayant échoué, corrigez le problème et cliquez sur Precheck Again.
-
Si une alerte est déclenchée :
Si l'alerte ne peut pas être ignorée, cliquez sur View Details, corrigez le problème et relancez la prévérification.
Si l'alerte peut être ignorée, cliquez sur Confirm Alert Details, cliquez sur Ignore dans la boîte de dialogue View Details, puis cliquez sur OK. Ensuite, cliquez sur Precheck Again. Ignorer les alertes peut entraîner une incohérence des données.
Attendez que le taux de réussite atteigne 100 %, puis cliquez sur Next: Purchase Instance.
Étape 8 : Acheter une instance et démarrer la tâche
Sur la page Purchase Instance, configurez les paramètres suivants.
| Paramètre | Description |
|---|---|
| Billing Method | Subscription : Payez à l'avance pour une durée fixe. Plus rentable pour une utilisation à long terme. Pay-as-you-go : 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 | Le groupe de ressources pour l'instance. Par défaut : default resource group. Consultez la page Qu'est-ce que Resource Management ?. |
| Instance Class | Sélectionnez une spécification de synchronisation en fonction de vos exigences de débit. La vitesse de synchronisation varie selon la spécification. Consultez la page Spécifications des instances de synchronisation des données. |
| Subscription Duration | Disponible pour la méthode de facturation Subscription. Options : 1–9 mois, ou 1, 2, 3 ou 5 ans. |
Lisez et acceptez les Conditions de service Data Transmission Service (Pay-as-you-go), puis cliquez sur Buy and Start.
La tâche apparaît dans la liste des tâches. Surveillez la progression de la synchronisation à partir de là.
Étapes suivantes
Pour surveiller la latence de synchronisation et définir des alertes, consultez la page Configurer la surveillance et les alertes lors de la création d'une tâche DTS.
Pour renommer des objets dans la destination, consultez la page Mapper les noms d'objets.
Pour filtrer des lignes spécifiques pendant la synchronisation, consultez la section Utiliser des conditions SQL pour filtrer les données.