Data Transmission Service (DTS) permet de migrer les données d'une base de données Oracle autonome vers un cluster PolarDB pour PostgreSQL. Vous pouvez opter pour la migration de schéma, la migration complète des données ou la migration incrémentielle des données, voire combiner ces trois options pour maintenir la synchronisation entre la source et la destination pendant la migration.
Avant de commencer
Avant de configurer une tâche de migration, suivez les étapes de préparation ci-dessous.
Étape 1 : Évaluer la compatibilité (recommandé)
Utilisez Advanced Database & Application Migration (ADAM) pour évaluer la compatibilité de votre base de données Oracle source avec PolarDB pour PostgreSQL. ADAM identifie les schémas, types de données et syntaxes SQL incompatibles avant la migration, ce qui réduit le risque d'échec des tâches.
Pour obtenir des instructions de configuration et connaître les limites des fonctionnalités DTS spécifiques à Oracle, consultez les rubriques Préparer une base de données Oracle et Vue d'ensemble de DTS.
Étape 2 : Préparer la base de données Oracle source
Activez le mode ARCHIVELOG. La base de données Oracle source doit s'exécuter en mode ARCHIVELOG, avec des fichiers journaux d'archive accessibles et une période de rétention appropriée. Consultez la documentation Gestion des fichiers journaux redo archivés.
Activez la journalisation supplémentaire. Définissez les paramètres
SUPPLEMENTAL_LOG_DATA_PKetSUPPLEMENTAL_LOG_DATA_UIsurYes. Consultez la documentation Journalisation supplémentaire.
Étape 3 : Préparer le cluster PolarDB pour PostgreSQL de destination
-
Créez le cluster PolarDB pour PostgreSQL. L'espace de stockage disponible du cluster doit dépasser la taille totale des données de la base de données Oracle source. Consultez la rubrique Créer un cluster PolarDB pour PostgreSQL.
RemarquePour connaître les versions de moteur de base de données prises en charge, consultez la rubrique Vue d'ensemble des scénarios de migration de données.
Créez la base de données de destination qui recevra les données migrées. Consultez la rubrique Gestion des bases de données.
Limites
Comportement des clés étrangères pendant la migration
Lors de la migration de schéma, DTS migre les clés étrangères de la source vers la destination.
Pendant la migration complète et la migration incrémentielle des données, DTS désactive temporairement les vérifications de contraintes et les opérations en cascade sur les clés étrangères au niveau de la session. Si vous effectuez des opérations en cascade ou de suppression sur la base de données source pendant la migration, des incohérences de données peuvent survenir.
Limites de la base de données source
Connectivité
| Scénario | Limite |
|---|---|
| Général | Le serveur hébergeant la base de données source doit disposer d'une bande passante sortante suffisante. Une bande passante insuffisante ralentit la migration. |
| Oracle RAC via Express Connect | Spécifiez une adresse IP virtuelle (VIP) pour la base de données source. L'utilisation d'une adresse IP Single Client Access Name (SCAN) n'est pas prise en charge. Le basculement de nœud est désactivé une fois la VIP spécifiée. |
| Oracle RAC via Express Connect, VPN Gateway, Smart Access Gateway, Database Gateway ou Cloud Enterprise Network (CEN) | Utilisez une seule VIP au lieu d'une adresse IP SCAN. Le basculement de nœud n'est pas pris en charge une fois la VIP spécifiée. |
Compatibilité des données
Si un champ VARCHAR2 de la base de données Oracle source contient une chaîne vide (qu'Oracle interprète comme NULL) et que le champ correspondant dans la destination possède une contrainte NOT NULL, la tâche de migration échoue.
Les tables à migrer doivent comporter des contraintes PRIMARY KEY ou UNIQUE, et tous les champs doivent être uniques. Sinon, la base de données de destination peut contenir des enregistrements en double.
Pour Oracle 12c et versions ultérieures, les noms de table ne peuvent pas dépasser 30 octets.
Si vous sélectionnez des tables comme objets de migration et devez renommer des tables ou des colonnes dans la destination, une seule tâche de migration prend en charge jusqu'à 1 000 tables. Au-delà, une erreur de requête se produit. Exécutez plusieurs tâches par lots ou migrez l'intégralité de la base de données.
Exigences pour la migration incrémentielle
| Mode de migration | Période de rétention des journaux requise |
|---|---|
| Migration incrémentielle des données uniquement | Plus de 24 heures |
| Migration complète des données + migration incrémentielle des données | Au moins 7 jours. Une fois la migration complète terminée, vous pouvez réduire cette durée à plus de 24 heures. |
Si DTS ne peut pas obtenir les journaux redo ou les journaux d'archive en raison d'une rétention insuffisante, la tâche de migration échoue. Dans les cas extrêmes, cela peut entraîner une incohérence ou une perte de données. L'accord de niveau de service (SLA) de DTS ne couvre pas les échecs causés par une rétention insuffisante des journaux.
Opérations à éviter sur la base de données source
N'effectuez pas d'opérations DDL modifiant les schémas de base de données ou de table pendant la migration de schéma ou la migration complète des données. La tâche échoue si des modifications DDL sont détectées.
Si vous exécutez uniquement la migration complète des données (sans migration incrémentielle), n'écrivez pas de données dans la base de données source pendant la migration. Les écritures effectuées durant la migration complète peuvent entraîner des incohérences de données.
Ne mettez pas à jour les champs LONGTEXT pendant la migration. La tâche échoue si des champs LONGTEXT sont mis à jour.
Autres limites
Les jeux de caractères des bases de données source et de destination doivent être compatibles. Des jeux de caractères incompatibles peuvent provoquer des incohérences de données ou l'échec de la tâche.
Les bases de données source et de destination doivent utiliser le même fuseau horaire.
Utilisez la fonctionnalité de migration de schéma de DTS pour migrer les schémas. Une gestion manuelle de la migration de schéma peut entraîner des échecs de tâche en raison de types de données incompatibles.
Le caractère de fin
\0ne peut pas être écrit dans le cluster PolarDB pour PostgreSQL de destination. DTS ignore silencieusement ce caractère s'il apparaît dans les données migrées, ce qui peut entraîner des incohérences de données.Exécutez les tâches de migration pendant les heures creuses. La migration complète des données consomme des ressources de lecture et d'écriture sur les deux bases de données.
Une fois la migration complète des données terminée, l'espace utilisé par le tablespace du cluster de destination sera plus important que celui de la base de données source en raison de la fragmentation causée par les opérations INSERT concurrentes.
DTS tente de relancer les tâches de migration ayant échoué pendant 7 jours maximum. Avant de basculer les charges de travail vers la base de données de destination, arrêtez ou libérez toutes les tâches ayant échoué, ou exécutez la commande
REVOKEpour supprimer les autorisations d'écriture des comptes DTS sur la base de données de destination. Sinon, une tâche reprise risque d'écraser les données dans la destination.Pendant la migration, seul DTS doit écrire des données dans la base de données de destination. Des écritures externes peuvent provoquer des incohérences de données.
Facturation
| Type de migration | Frais de configuration de tâche | Frais de trafic Internet |
|---|---|---|
| Migration de schéma | Gratuit | Gratuit (facturé uniquement lors de la migration depuis Alibaba Cloud via Internet — voir la rubrique Vue d'ensemble de la facturation) |
| Migration complète des données | Gratuit | Gratuit (facturé uniquement lors de la migration depuis Alibaba Cloud via Internet — voir la rubrique Vue d'ensemble de la facturation) |
| Migration incrémentielle des données | Facturé (voir la rubrique Vue d'ensemble de la facturation) | — |
Opérations SQL prises en charge pour la migration incrémentielle
| Type d'opération | Instructions SQL |
|---|---|
| DML | INSERT, UPDATE, DELETE |
| DDL | CREATE TABLE (exclut les instructions avec clauses de partitionnement, sous-partitionnement ou fonctions ; CREATE TABLE AS SELECT n'est pas pris en charge) ; ALTER TABLE (ADD COLUMN, ADD INDEX, DROP COLUMN, DROP INDEX, MODIFY COLUMN, RENAME COLUMN) ; DROP TABLE ; RENAME TABLE ; TRUNCATE TABLE ; CREATE INDEX |
Autorisations de compte de base de données requises
| Base de données | Migration de schéma | Migration complète des données | Migration incrémentielle des données |
|---|---|---|---|
| Base de données Oracle autonome | Autorisations de propriétaire de schéma | Autorisations de propriétaire de schéma | Autorisations fines |
| Cluster PolarDB pour PostgreSQL | Autorisations de propriétaire de schéma Remarque
Pour le cluster PolarDB pour PostgreSQL, utilisez le compte database owner créé lors de la configuration de la base de données. |
||
Pour obtenir des instructions sur la création de comptes et l'attribution d'autorisations :
Base de données Oracle autonome : Consultez les rubriques Préparer une base de données Oracle, CREATE USER et GRANT dans la documentation Oracle.
Cluster PolarDB pour PostgreSQL : Consultez les rubriques Créer un compte de base de données et Gestion des bases de données.
Pour migrer des données incrémentielles depuis une base de données Oracle, vous devez activer la journalisation d'archive et la journalisation supplémentaire sur la base de données Oracle. Consultez la section Configurer une base de données Oracle de la rubrique « Préparer une base de données Oracle ».
Créer une tâche de migration
-
Accédez à la page Tâches de migration de données.
Connectez-vous à la console Data Management (DMS).
Dans la barre de navigation supérieure, cliquez sur DTS.
Dans le volet de navigation de gauche, choisissez DTS (DTS) > Data Migration.
RemarqueLes étapes de la console DMS peuvent varier selon le mode et la disposition. Pour plus de détails, consultez les rubriques Mode simple et Personnaliser la disposition et le style de la console DMS.
Vous pouvez également accéder directement à la page Tâches de migration de données de la nouvelle console DTS.
-
Dans la liste déroulante située à côté de Tâches de migration de données, sélectionnez la région où réside l'instance de migration.
RemarqueDans la nouvelle console DTS, sélectionnez plutôt la région dans le coin supérieur gauche.
-
Cliquez sur Create Task. Dans l'assistant de création de tâche, configurez les bases de données source et de destination à l'aide des paramètres ci-dessous.
AvertissementAprès avoir configuré les bases de données source et de destination, lisez les limits affichées dans la partie supérieure de la page avant de continuer. Ignorer cette étape peut entraîner l'échec de la tâche ou des incohérences de données.
Paramètres de la base de données source
Paramètre Description Task Name Nom descriptif de la tâche. DTS attribue automatiquement un nom, mais il est recommandé d'utiliser un nom significatif pour faciliter l'identification. Les noms de tâches n'ont pas besoin d'être uniques. Select an existing DMS database instance (facultatif) Sélectionnez une instance DMS existante pour préremplir automatiquement les paramètres de la base de données, ou ignorez cette étape et configurez les paramètres manuellement. Database Type Sélectionnez Oracle. Access Method Sélectionnez l'option en fonction de l'emplacement de déploiement de la base de données source. Cet exemple utilise Base de données autonome sur ECS. Pour d'autres méthodes d'accès, consultez la rubrique Vue d'ensemble de la préparation. Instance Region Région où réside la base de données Oracle source. ECS Instance ID ID de l'instance Elastic Compute Service (ECS) hébergeant la base de données Oracle source. Port Number Port de service de la base de données Oracle source. Valeur par défaut : 1521. Oracle Type Architecture de la base de données Oracle source : Instance non-RAC (configurez le paramètre SID) ou Instance RAC ou PDB (configurez le paramètre Service Name). Cet exemple utilise Instance RAC ou PDB avec le paramètre Service Name. Database Account Compte de la base de données Oracle source. Consultez la rubrique Autorisations de compte de base de données requises. Database Password Mot de passe du compte de base de données. Paramètres de la base de données de destination
Paramètre Description Select an existing DMS database instance (facultatif) Sélectionnez une instance DMS existante pour préremplir automatiquement les paramètres de la base de données, ou ignorez cette étape et configurez les paramètres manuellement. Database Type Sélectionnez PolarDB for PostgreSQL. Access Method Sélectionnez Alibaba Cloud Instance. Instance Region Région où réside le cluster PolarDB pour PostgreSQL de destination. Instance ID ID du cluster PolarDB pour PostgreSQL de destination. Database Name Nom de la base de données de destination qui recevra les objets migrés. Database Account Compte de base de données du cluster de destination. Consultez la rubrique Autorisations de compte de base de données requises. Database Password Mot de passe du compte de base de données. Cliquez sur Test Connectivity and Proceed.
-
Si votre base de données source comporte une liste d'autorisation d'adresses IP configurée, ajoutez les blocs CIDR des serveurs DTS à la liste d'autorisation. Cliquez ensuite sur Test Connectivity and Proceed.
AvertissementL'ajout des blocs CIDR des serveurs DTS à la liste d'autorisation de votre base de données ou aux règles de groupe de sécurité de votre instance ECS introduit des risques de sécurité. Avant de continuer, prenez des mesures préventives, notamment en imposant des identifiants robustes, en limitant les ports exposés, en authentifiant les appels API et en examinant régulièrement les règles de la liste d'autorisation. Vous pouvez également connecter la base de données à DTS via Express Connect, VPN Gateway ou Smart Access Gateway pour éviter l'exposition sur Internet public.
-
Configurez les objets à migrer et les paramètres avancés. Mise en majuscule des noms d'objets dans l'instance de destination Par défaut, la stratégie par défaut DTS est appliquée. Sélectionnez une autre option pour aligner la mise en majuscule des noms d'objets avec la base de données source ou de destination. Consultez la rubrique Spécifier la mise en majuscule des noms d'objets dans l'instance de destination. Sélection des objets Dans la section Source Objects, sélectionnez un ou plusieurs objets (colonnes, tables ou bases de données) et cliquez sur l'icône
pour les déplacer vers la section Selected Objects. Dans la section Selected Objects :Pour renommer un seul objet, faites un clic droit dessus. Consultez la rubrique Mapper le nom d'un seul objet.
Pour renommer plusieurs objets à la fois, cliquez sur Batch Edit dans le coin supérieur droit. Consultez la rubrique Mapper plusieurs noms d'objets à la fois.
Pour filtrer les lignes par condition, faites un clic droit sur une table et spécifiez les conditions WHERE. Consultez la rubrique Définir des conditions de filtrage.
RemarqueSi vous ne sélectionnez pas Incremental Data Migration, n'écrivez pas de données dans la base de données source pendant la migration afin de maintenir la cohérence des données.
RemarqueLe renommage d'un objet via la fonctionnalité de mappage de nom d'objet peut empêcher la migration d'autres objets qui en dépendent.
Type de migration
Objectif Types de migration à sélectionner Migration complète uniquement (aucune continuité de service nécessaire) Migration de schéma et Migration complète des données Migration complète avec continuité de service Migration de schéma, Migration complète des données et Migration incrémentielle des données Mode de traitement des tables en conflit
Mode Comportement Vérification préalable et signalement des erreurs Vérifie la présence de tables portant des noms identiques dans les bases de données source et de destination. La vérification préalable réussit uniquement s'il n'existe aucun conflit de nom. En cas de conflits, la tâche ne peut pas démarrer. Pour résoudre les conflits, utilisez la fonctionnalité de mappage de nom d'objet pour renommer les objets migrés. Consultez la rubrique Mapper les noms d'objets. Ignorer les erreurs et continuer Ignore la vérification des conflits de nom. À utiliser avec prudence : si la source et la destination ont le même schéma, les enregistrements avec des clés primaires correspondantes ne sont pas migrés ; si les schémas diffèrent, seules certaines colonnes peuvent être migrées ou la tâche peut échouer. -
Cliquez sur Next: Advanced Settings pour configurer les paramètres avancés. Paramètres de vérification des données Pour activer la vérification des données après la migration, consultez la rubrique Configurer la vérification des données.
Paramètres avancés
Paramètre Description Select the dedicated cluster used to schedule the task Par défaut, DTS planifie les tâches sur un cluster partagé. Pour utiliser un cluster dédié, vous devez d'abord en acheter un. Consultez la rubrique Qu'est-ce qu'un cluster dédié DTS ? Retry Time for Failed Connections Durée pendant laquelle DTS retente une connexion après un échec. Valeurs valides : 10–1 440 minutes. Valeur par défaut : 720 minutes. Il est recommandé de définir ce paramètre sur une valeur supérieure à 30 minutes. Si DTS se reconnecte dans la fenêtre de nouvelle tentative, la tâche de migration reprend ; sinon, elle échoue. RemarqueLorsque plusieurs tâches partagent la même source ou destination, le délai de nouvelle tentative défini le plus récemment s'applique à toutes. Les frais de l'instance DTS continuent de s'appliquer pendant les nouvelles tentatives. Libérez l'instance rapidement après la mise hors service de la source et de la destination.
The wait time before a retry when other issues occur in the source and destination databases Durée pendant laquelle DTS retente les opérations DDL ou DML qui échouent après le démarrage de la tâche. Valeurs valides : 1–1 440 minutes. Valeur par défaut : 10 minutes. Il est recommandé de définir ce paramètre sur une valeur supérieure à 10 minutes. Cette valeur doit être inférieure à celle du paramètre Retry Time for Failed Connections. Enable Throttling for Full Data Migration Limite la charge de lecture/écriture sur les bases de données source et de destination pendant la migration complète des données. Lorsqu'elle est activée, configurez les paramètres Queries per second (QPS) to the source database, RPS de la migration complète des données et Vitesse de migration des données pour la migration complète (Mo/s). Disponible uniquement lorsque l'option Migration complète des données est sélectionnée. Enable Throttling for Incremental Data Migration Limite la charge pendant la migration incrémentielle des données. Lorsqu'elle est activée, configurez les paramètres RPS of Incremental Data Migration et Vitesse de migration des données pour la migration incrémentielle (Mo/s). Disponible uniquement lorsque l'option Migration incrémentielle des données est sélectionnée. Environment Tag Tag facultatif permettant d'identifier l'instance DTS par type d'environnement. Actual Write Code Format d'encodage pour l'écriture des données dans la base de données de destination. Sélectionnez l'option adaptée à vos besoins. Configure ETL Indique s'il faut activer l'extraction, la transformation et le chargement (ETL). Sélectionnez Yes pour saisir des 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. Sélectionnez No pour ignorer la configuration ETL. Pour une vue d'ensemble, consultez la rubrique Qu'est-ce que ETL ? Monitoring and Alerting Indique s'il faut configurer des alertes pour la tâche de migration. Sélectionnez Yes pour définir un seuil d'alerte et des contacts d'alerte. Les contacts reçoivent des notifications si la tâche échoue ou si la latence de migration dépasse le seuil. Consultez la rubrique Configurer la surveillance et les alertes pour une nouvelle tâche DTS. -
Cliquez sur Next: Save Task Settings and Precheck.
RemarquePour afficher un aperçu des paramètres API utilisés pour configurer cette instance, placez le curseur sur Suivant : Enregistrer les paramètres de la tâche et effectuer la vérification préalable et cliquez sur Preview API Call.
DTS exécute une vérification préalable avant de démarrer la tâche de migration. La tâche démarre uniquement après la réussite de la vérification préalable.
Si la vérification préalable échoue pour un élément, cliquez sur View Details à côté de l'élément ayant échoué, corrigez le problème, puis relancez la vérification préalable.
Si un élément de vérification préalable génère un avertissement : corrigez le problème s'il ne peut pas être ignoré. S'il peut être ignoré en toute sécurité, cliquez sur Confirm Alert Details > Ignore > OK > Precheck Again. Ignorer un avertissement peut entraîner des incohérences de données ou exposer votre système à des risques.
Attendez que le taux de réussite atteigne 100 %, puis cliquez sur Next: Purchase Instance.
-
Sur la page Purchase Instance, configurez la classe d'instance.
Paramètre Description Resource Group Groupe de ressources pour l'instance de migration. Valeur par défaut : groupe de ressources par défaut. Consultez la rubrique Qu'est-ce que Resource Management ? Instance Class La classe d'instance détermine la vitesse de migration. Sélectionnez l'option adaptée à vos besoins. Consultez la rubrique Spécifications des instances de migration de données. Lisez et acceptez les Conditions de service Data Transmission Service (Paiement à l'utilisation) en cochant la case.
Cliquez sur Buy and Start. Surveillez la progression de la migration sur la page Gestion des tâches.