Utilisez Data Transmission Service (DTS) pour migrer les données d'une base de données Oracle gérée en interne vers une instance AnalyticDB for PostgreSQL. Une fois la migration terminée, vous pouvez mettre en place des entrepôts de données en temps réel sur l'instance de destination.
Prérequis
Avant de commencer, assurez-vous de disposer des éléments suivants :
Une base de données Oracle gérée en interne et une instance AnalyticDB for PostgreSQL de destination. Pour créer l'instance de destination, consultez Créer une instance.
La base de données Oracle doit s'exécuter en mode ARCHIVELOG avec des journaux d'archive accessibles et une période de rétention appropriée. Consultez la documentation Managing Archived Redo Log Files.
La journalisation supplémentaire (supplemental logging) doit être activée sur la base de données Oracle, avec les paramètres
SUPPLEMENTAL_LOG_DATA_PKetSUPPLEMENTAL_LOG_DATA_UIdéfinis sur Yes. Consultez la documentation Supplemental Logging.Une bonne connaissance des fonctionnalités et des limites de DTS pour les migrations Oracle. Utilisez Advanced Database & Application Migration (ADAM) pour évaluer votre base de données avant la migration. Consultez les rubriques Préparer une base de données Oracle et Vue d'ensemble.
Types de migration
| Type de migration | Description |
|---|---|
| Migration de schéma | Migre les schémas des types d'objets suivants : table, index, contrainte, fonction, séquence et vue. Étant donné qu'Oracle et AnalyticDB for PostgreSQL sont des bases de données hétérogènes, la cohérence du schéma après la migration n'est pas garantie. Évaluez l'impact de la conversion des types de données avant la migration. Consultez la rubrique Mappages de types de données entre bases de données hétérogènes. DTS ne prend pas en charge les déclencheurs (triggers) ; supprimez les déclencheurs sources avant la migration pour éviter toute incohérence des données. Pour les tables partitionnées, DTS ignore les définitions de partition ; définissez manuellement les partitions dans la base de données de destination. |
| Migration complète des données | Migre toutes les données existantes de la base de données source vers l'instance de destination. |
| Migration incrémentielle des données | Interroge les fichiers de journal redo de la base de données Oracle et migre les données incrémentielles en temps réel, ce qui permet d'effectuer la migration sans interrompre les services applicatifs sources. |
Choix d'une stratégie de migration :
| Stratégie | Cas d'utilisation |
|---|---|
| Migration de schéma + migration complète des données | Migration ponctuelle lorsque un temps d'arrêt est acceptable. Arrêtez les écritures sur la base de données source pendant la migration pour garantir la cohérence des données. |
| Migration de schéma + migration complète des données + migration incrémentielle des données | Maintenez les services en cours d'exécution pendant la migration, puis effectuez le basculement avec un temps d'arrêt minimal. Recommandé pour les bases de données de production. |
Opérations SQL prises en charge pour la migration incrémentielle
| Type d'opération | Instructions SQL |
|---|---|
| DML | INSERT, UPDATE, DELETE |
| DDL | ADD COLUMN |
Facturation
| Type de migration | Frais de configuration de l'instance | Frais de trafic Internet |
|---|---|---|
| Migration de schéma et migration complète des données | Gratuit | Facturé uniquement lorsque les données sont migrées depuis Alibaba Cloud via Internet. Consultez la rubrique Vue d'ensemble de la facturation. |
| Migration incrémentielle des données | Facturé. Consultez la rubrique Vue d'ensemble de la facturation. | — |
Limites
Lors de la migration de schéma, DTS migre les clés étrangères de la base de données source vers la base de données de destination. Pendant les migrations complète et 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. Les opérations de suppression en cascade sur la source pendant la migration peuvent entraîner une incohérence des données.
Limites de la base de données source :
Le serveur doit disposer d'une bande passante sortante suffisante. Une bande passante insuffisante réduit la vitesse de migration.
Pour les bases de données Oracle RAC connectées via Express Connect : spécifiez une adresse IP virtuelle (VIP) pour la base de données au lieu d'une adresse IP Single Client Access Name (SCAN). Après avoir spécifié la VIP, le basculement de nœud n'est pas pris en charge.
Pour les bases de données Oracle RAC connectées via Express Connect, VPN Gateway, Smart Access Gateway, Database Gateway ou Cloud Enterprise Network (CEN) : utilisez une seule VIP plutôt qu'une adresse IP Single Client Access Name (SCAN) lors de la configuration de la base de données source. Après avoir spécifié la VIP, le basculement de nœud n'est pas pris en charge pour la base de données Oracle RAC.
Si un champ VARCHAR2 contient une chaîne vide (traitée comme NULL dans Oracle) et que la colonne de destination correspondante possède une contrainte NOT NULL, la tâche de migration échoue.
Les tables à migrer doivent posséder des contraintes PRIMARY KEY ou UNIQUE avec tous les champs uniques. Sans ces contraintes, la base de données de destination peut contenir des enregistrements dupliqués.
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 prend en charge un maximum de 1 000 tables. Pour plus de 1 000 tables, créez plusieurs tâches ou migrez la base de données entière.
-
Pour la migration incrémentielle, exigences de rétention des journaux redo et archive : une rétention de journal insuffisante peut entraîner l'échec de la tâche, ou provoquer une incohérence ou une perte de données. Les accords de niveau de service (SLA) de DTS ne s'appliquent pas si les exigences de rétention ne sont pas respectées.
Migration incrémentielle uniquement : conservez les journaux pendant plus de 24 heures.
Migration complète + migration incrémentielle : conservez les journaux pendant au moins 7 jours. Une fois la migration complète terminée, vous pouvez réduire la période de rétention à plus de 24 heures.
Pendant la migration de schéma et la migration complète des données : n'effectuez pas d'opérations DDL sur la base de données source.
Lors d'une migration complète uniquement : n'écrivez pas de données dans la base de données source pendant la migration.
Pendant la migration : ne mettez pas à jour les champs LONGTEXT.
Autres limites :
Seules les tables peuvent être sélectionnées comme objets de migration. Les tables optimisées pour l'ajout (AO) ne sont pas prises en charge dans la destination.
Si le mappage de colonnes est utilisé pour une migration non exhaustive ou si les schémas source et destination diffèrent, les colonnes source absentes dans la destination sont perdues.
AnalyticDB for PostgreSQL ne prend pas en charge le caractère de fin de chaîne
'\0'. DTS omet le caractère de fin lors de l'écriture, ce qui provoque une incohérence des données.Exécutez les migrations pendant les heures creuses. La migration complète des données utilise les ressources de lecture et d'écriture à la fois sur la source et la destination, ce qui augmente la charge de la base de données.
La migration complète des données avec des opérations INSERT concurrentes provoque une fragmentation dans les tables de destination. Une fois la migration terminée, la taille de l'espace de table de destination sera supérieure à celle de la source.
DTS tente de reprendre les tâches ayant échoué pendant un maximum de 7 jours. Avant de basculer les charges de travail vers la destination, arrêtez ou libérez les tâches ayant échoué, ou exécutez
REVOKEpour supprimer les autorisations d'écriture des comptes DTS. Sinon, les tâches reprises risquent d'écraser les données de destination.
Mappages de types de données
Pour les mappages de types de données entre Oracle et AnalyticDB for PostgreSQL, consultez la rubrique Mappages de types de données entre bases de données hétérogènes.
Configuration du compte de base de données Oracle
Créez un compte sur la base de données Oracle et accordez les autorisations requises en fonction des types de migration que vous prévoyez d'utiliser.
Ignorez cette étape si vous disposez déjà d'un compte avec les autorisations requises.
Autorisations requises par type de migration :
| 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 gérée en interne | Autorisations de propriétaire de schéma | Autorisations de propriétaire de schéma | Autorisations granulaires |
| Instance AnalyticDB for PostgreSQL | Autorisations d'écriture sur la base de données de destination | ||
Pour créer un compte Oracle, consultez les rubriques CREATE USER et GRANT.
Pour la destination AnalyticDB for PostgreSQL, le compte initial dispose des autorisations d'écriture requises. Vous pouvez également utiliser un compte disposant de l'autorisation RDS_SUPERUSER. Consultez les rubriques Créer un compte de base de données et Gérer les utilisateurs et les autorisations.
Création d'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.
La disposition de la console peut varier. Consultez Simple mode 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 Data Migration Tasks, sélectionnez la région où réside l'instance de migration.
Dans la nouvelle console DTS, sélectionnez la région dans le coin supérieur gauche.
-
Cliquez sur Create Task. Dans l'assistant Create Data Migration Task, configurez les bases de données source et de destination.
AvertissementLisez les limites affichées en haut de la page avant de continuer. Ignorer cette étape peut entraîner l'échec de la tâche ou provoquer une incohérence des données.
Paramètres de la base de données source :
Paramètre Description Task Name Saisissez un nom descriptif pour identifier la tâche. Les noms de tâches n'ont pas besoin d'être uniques. Database Type Sélectionnez Oracle. Access Method Sélectionnez la méthode d'accès pour la base de données source. Cet exemple utilise Public IP Address. Pour les autres méthodes d'accès, configurez d'abord l'environnement requis. Consultez la rubrique Vue d'ensemble de la préparation. Instance Region Sélectionnez la région où réside la base de données Oracle source. Hostname or IP address Saisissez le point de terminaison de la base de données Oracle source. Port Number Saisissez le port de service. Par défaut : 1521. Le port doit être accessible via Internet dans cet exemple. Oracle Type Sélectionnez Non-RAC Instance (nécessite SID) ou RAC or PDB Instance (nécessite Service Name). Cet exemple utilise Non-RAC Instance. Database Account Saisissez le compte Oracle. Consultez Configuration du compte de base de données Oracle pour connaître les autorisations requises. Database Password Saisissez le mot de passe du compte. Paramètres de la base de données de destination :
Paramètre Description Database Type Sélectionnez AnalyticDB for PostgreSQL. Access Method Sélectionnez Alibaba Cloud Instance. Instance Region Sélectionnez la région où réside l'instance de destination. Instance ID Sélectionnez l'instance AnalyticDB for PostgreSQL de destination. Database Name Saisissez le nom de la base de données de destination. Database Account Saisissez le compte de la base de données de destination. Consultez Configuration du compte de base de données Oracle pour connaître les autorisations requises. Database Password Saisissez le mot de passe du compte. -
Si la base de données source possède 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 de blocs CIDR de serveur DTS à votre liste d'autorisation de base de données ou aux règles de groupe de sécurité ECS crée une exposition potentielle à la sécurité. Prenez des mesures préventives avant de continuer : utilisez des identifiants forts, limitez les ports exposés, authentifiez les appels API et examinez régulièrement les règles de la liste d'autorisation. Pour une connectivité plus sécurisée, utilisez Express Connect, VPN Gateway ou Smart Access Gateway au lieu de l'accès par adresse IP publique.
-
Configurez les objets de migration et les paramètres.
Le renommage d'un objet peut empêcher la migration des objets dépendants.
Paramètre Description Migration Types Sélectionnez les types de migration en fonction de vos besoins. Pour une migration ponctuelle, sélectionnez Schema Migration et Full Data Migration. Pour maintenir les services en cours d'exécution pendant la migration, sélectionnez également Incremental Data Migration. Si vous ne sélectionnez pas Incremental Data Migration, n'écrivez pas de données dans la base de données source pendant la migration. Processing Mode of Conflicting Tables Precheck and Report Errors : vérifie l'existence de noms de table identiques entre la source et la destination avant le démarrage. La tâche échoue à la pré-vérification si des conflits existent. Utilisez le mappage de nom d'objet pour résoudre les conflits. Consultez la rubrique Map object names. Ignore Errors and Proceed : ignore la pré-vérification pour les noms de table identiques. Si les schémas sont identiques, DTS ignore les enregistrements avec des clés primaires correspondantes. Si les schémas diffèrent, seules certaines colonnes sont migrées ou la tâche échoue. À utiliser avec prudence. Source Objects Sélectionnez les objets à migrer et cliquez sur l'icône de flèche pour les ajouter à Selected Objects. Selected Objects Pour renommer un seul objet dans la destination, faites un clic droit dessus. Consultez la rubrique Map the name of a single object. Pour renommer plusieurs objets à la fois, cliquez sur Batch Edit. Consultez la rubrique Map multiple object names at a time. Pour filtrer les lignes par condition, faites un clic droit sur une table et spécifiez les conditions de la clause WHERE. Consultez la rubrique Définir des conditions de filtre. Pour sélectionner des opérations SQL spécifiques pour la migration incrémentielle sur une table ou une base de données, faites un clic droit sur l'objet et choisissez les opérations. -
Cliquez sur Next: Advanced Settings et configurez les paramètres suivants. Vérification des données : Pour utiliser la vérification des données, consultez la rubrique Configure data verification.
Paramètres avancés :
Paramètre Description Select the dedicated cluster used to schedule the task Par défaut, DTS planifie sur un cluster partagé. Pour utiliser un cluster dédié, achetez-en un d'abord. Consultez la rubrique What is a DTS dedicated cluster? Retry Time for Failed Connections Durée pendant laquelle DTS réessaie lorsqu'il ne peut pas se connecter à la base de données source ou de destination. Plage valide : 10–1 440 minutes. Par défaut : 720 minutes. Définissez cette valeur à plus de 30 minutes afin que les problèmes réseau transitoires n'entraînent pas l'échec de la tâche. Si DTS se reconnecte dans ce délai, la tâche reprend automatiquement. RemarqueLorsque plusieurs tâches partagent la même base de données source ou de destination, le temps de nouvelle tentative le plus récemment défini s'applique à toutes. Les frais d'instance DTS continuent de s'appliquer pendant la nouvelle tentative.
The wait time before a retry when other issues occur in the source and destination databases Durée pendant laquelle DTS réessaie lorsque les opérations DDL ou DML échouent. Plage valide : 1–1 440 minutes. Par défaut : 10 minutes. Définissez cette valeur à plus de 10 minutes. Cette valeur doit être inférieure à la valeur de Retry Time for Failed Connections. Enable Throttling for Full Data Migration Limite la migration complète pour réduire la charge sur la source et la destination. Configurez Queries per second (QPS) to the source database, RPS of Full Data Migration et Data migration speed for full migration (MB/s). Disponible uniquement lorsque Full Data Migration est sélectionné. Enable Throttling for Incremental Data Migration Limite la migration incrémentielle. Configurez RPS of Incremental Data Migration et Data migration speed for incremental migration (MB/s). Disponible uniquement lorsque Incremental Data Migration est sélectionné. Environment Tag Un tag facultatif pour identifier l'instance DTS par environnement (par exemple, production ou test). Actual Write Code Le format d'encodage pour l'écriture des données dans la base de données de destination. Configure ETL Active la fonctionnalité extract, transform, and load (ETL). Sélectionnez Yes pour saisir les instructions de traitement des données. Consultez la rubrique Configure ETL in a data migration or data synchronization task. Sélectionnez No pour ignorer. Consultez la rubrique What is ETL? Monitoring and Alerting Sélectionnez Yes pour recevoir des alertes lorsque la tâche échoue ou que la latence de migration dépasse un seuil. Spécifiez le seuil d'alerte et les contacts. Consultez la rubrique Configure monitoring and alerting for a new DTS task. Sélectionnez No pour ignorer. Spécifiez les colonnes de clé primaire et les colonnes de clé de distribution pour les tables à migrer vers l'instance AnalyticDB for PostgreSQL.
-
Cliquez sur Next: Save Task Settings and Precheck.
Pour prévisualiser les paramètres d'appel API, survolez Next: Save Task Settings and Precheck et cliquez sur Preview API Call .
-
Attendez que la pré-vérification soit terminée. Attendez que le taux de réussite atteigne 100 %, puis cliquez sur Next: Purchase Instance.
Si un élément échoue, cliquez sur View Details à côté de l'élément ayant échoué, corrigez le problème, puis relancez la pré-vérification.
Si une alerte apparaît pour un élément, cliquez sur Confirm Alert Details. Dans la boîte de dialogue View Details, cliquez sur Ignore, confirmez, puis cliquez sur Precheck Again. Ignorer une alerte peut provoquer une incohérence des données.
Lisez et acceptez les Conditions de service Data Transmission Service (Pay-as-you-go) en cochant la case.
Cliquez sur Buy and Start. Surveillez la progression de la tâche sur la page Task Management.
Étapes suivantes
Une fois la migration terminée et avant de basculer les charges de travail vers l'instance de destination :
Arrêtez ou libérez toutes les tâches DTS ayant échoué, ou exécutez
REVOKEpour supprimer les autorisations d'écriture DTS sur la base de données de destination. DTS peut reprendre les tâches ayant échoué pendant un maximum de 7 jours et écraser les données de destination.Validez la cohérence des données entre la source et la destination. Consultez la rubrique Configure data verification.
Pour les mappages de types de données pris en charge entre Oracle et AnalyticDB for PostgreSQL, consultez la rubrique Mappages de types de données entre bases de données hétérogènes.