Convertir VARCHAR2 (1) type de données pour Oracle en type de données booléen pour Amazon Aurora PostgreSQL - Recommandations AWS

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Convertir VARCHAR2 (1) type de données pour Oracle en type de données booléen pour Amazon Aurora PostgreSQL

Créée par Naresh Damera (AWS)

Récapitulatif

Lors d'une migration d'Amazon Relational Database Service (Amazon RDS) pour Oracle vers Amazon Aurora PostgreSQL Compatible Edition, il est possible que vous rencontriez une incompatibilité des données lors de la validation de la migration dans Amazon Web Services (AWS) Database Migration Service (AWS DMS). Pour éviter cette incompatibilité, vous pouvez convertir VARCHAR2 (1) type de données en type booléen.

VARCHAR2 le type de données stocke des chaînes de texte de longueur variable et VARCHAR2 (1) indique que la chaîne comporte 1 caractère ou 1 octet. Pour plus d'informations VARCHAR2, voir les types de données intégrés d'Oracle (documentation Oracle).

Dans ce modèle, dans la colonne de la table de données source d'échantillons, les données VARCHAR2 (1) sont soit un Y, pour Oui, soit un N, pour Non.  Ce modèle inclut des instructions pour utiliser AWS DMS et AWS Schema Conversion Tool (AWS SCT) pour convertir ce type de données des valeurs Y et N dans VARCHAR2 (1) en valeurs vraies ou fausses dans le booléen.

Public cible

Ce modèle est recommandé pour ceux qui ont déjà migré des bases de données Oracle vers des bases de données compatibles avec Aurora PostgreSQL à l'aide d'AWS DMS. Lorsque vous terminez la migration, respectez les recommandations de la section Conversion d'Oracle vers Amazon RDS pour PostgreSQL ou Amazon Aurora PostgreSQL (documentation AWS SCT).

Conditions préalables et limitations

Prérequis

Versions du produit

Architecture

Pile technologique source

Instance de base de données Amazon RDS for Oracle

Pile technologique cible

Instance de base de données compatible avec Amazon Aurora PostgreSQL

Architecture source et cible

Modification du type de données de VARCHAR2 (1) à un type booléen

Outils

Services AWS

Autres services

  • Oracle SQL Developer est un environnement de développement intégré qui simplifie le développement et la gestion des bases de données Oracle dans les déploiements traditionnels et basés sur le cloud. Dans ce modèle, vous utilisez cet outil pour vous connecter à l'instance de base de données Amazon RDS for Oracle et interroger les données.

  • pgAdmin est un outil de gestion open source pour PostgreSQL. Il fournit une interface graphique qui vous permet de créer, de gérer et d'utiliser des objets de base de données. Dans ce modèle, vous utilisez cet outil pour vous connecter à l'instance de base de données Aurora et interroger les données.

Épopées

TâcheDescriptionCompétences requises

Créez un rapport de migration de base de données.

  1. Dans AWS SCT, créez un rapport d'évaluation de la migration de base de données. Pour plus d'informations, consultez la section Création de rapports d'évaluation de la migration.

  2. Passez en revue et exécutez les actions figurant dans le rapport d'évaluation de la migration. Pour plus d'informations, consultez la section Éléments d'action du rapport d'évaluation.

DBA, Développeur

Désactivez les contraintes liées aux clés étrangères sur la base de données cible.

Dans PostgreSQL, les clés étrangères sont implémentées à l'aide de déclencheurs. Pendant la phase de chargement complet, AWS DMS charge chaque table une par une. Nous vous recommandons vivement de désactiver les contraintes liées aux clés étrangères lors d'un chargement complet en utilisant l'une des méthodes suivantes :

  • Désactivez temporairement tous les déclencheurs depuis l'instance, et terminez le chargement complet.

  • Utilisez le paramètre session_replication_role dans PostgreSQL.

S'il n'est pas possible de désactiver les contraintes liées aux clés étrangères, créez une tâche de migration AWS DMS pour les données principales spécifiques à la table parent et à la table enfant.

DBA, Développeur

Désactivez les clés primaires et les clés uniques de la base de données cible.

À l'aide des commandes suivantes, désactivez les clés primaires et les contraintes sur la base de données cible. Cela permet d'améliorer les performances de la tâche de chargement initiale.

ALTER TABLE <table> DISABLE PRIMARY KEY;
ALTER TABLE <table> DISABLE CONSTRAINT <constraint_name>;
DBA, Développeur

Créez la tâche de chargement initiale.

Dans AWS DMS, créez la tâche de migration pour le chargement initial. Pour obtenir des instructions, consultez la section Création d'une tâche. Pour la méthode de migration, choisissez Migrer les données existantes. Cette méthode de migration est appelée Full Load dans l'API. Ne commencez pas encore cette tâche.

DBA, Développeur

Modifiez les paramètres de tâche pour la tâche de chargement initiale.

Modifiez les paramètres des tâches pour ajouter la validation des données. Ces paramètres de validation doivent être créés dans un fichier JSON. Pour obtenir des instructions et des exemples, consultez la section Spécification des paramètres des tâches. Ajoutez les validations suivantes :

  • Pour vérifier que les VARCHAR2 (1) données sont correctement converties en booléens dans la base de données cible, ajoutez le code dans le script de validation des données dans la section Informations supplémentaires de ce modèle. Le script de validation convertit les valeurs booléennes de 1 en Y et de 0 en N dans la table cible, puis il compare les valeurs de la table cible à celles de la table source.

Pour valider le reste de la migration des données, activez la validation des données dans la tâche. Pour plus d'informations, consultez la section Paramètres des tâches de validation des données.

Administrateur AWS, DBA

Créez la tâche de réplication en cours.

Dans AWS DMS, créez la tâche de migration qui synchronise la base de données cible avec la base de données source. Pour obtenir des instructions, consultez la section Création d'une tâche. Pour la méthode de migration, sélectionnez Répliquer uniquement les modifications de données. Ne commencez pas encore cette tâche.

DBA
TâcheDescriptionCompétences requises

Créez des exemples de données pour les tests.

Dans la base de données source, créez un exemple de table contenant des données à des fins de test.

Developer

Vérifiez qu'il n'y a pas d'activités conflictuelles.

Utilisez le pg_stat_activity pour vérifier toute activité sur le serveur susceptible d'affecter la migration. Pour plus d'informations, consultez The Statistics Collector (documentation PostgreSQL).

Administrateur AWS

Démarrez les tâches de migration vers AWS DMS.

Dans la console AWS DMS, sur la page du tableau de bord, lancez le chargement initial et les tâches de réplication en cours que vous avez créées dans l'épopée précédente.

Administrateur AWS

Surveillez les tâches et les états de chargement des tables.

Pendant la migration, surveillez l'état des tâches et les états des tables. Lorsque la tâche de chargement initiale est terminée, dans l'onglet Statistiques du tableau :

  • L'état de chargement doit être Table terminée.

  • L'état de validation doit être validé.

Administrateur AWS

Vérifiez les résultats de la migration.

À l'aide de pgAdmin, interrogez la table sur la base de données cible. Une requête réussie indique que les données ont été migrées avec succès.

Developer

Ajoutez des clés primaires et des clés étrangères dans la base de données cible.

Créez la clé primaire et la clé étrangère dans la base de données cible. Pour plus d'informations, consultez ALTER TABLE (site Web de PostgreSQL).

DBA

Nettoyez les données de test.

Dans les bases de données source et cible, nettoyez les données créées pour les tests unitaires.

Developer
TâcheDescriptionCompétences requises

Terminez la migration.

Répétez l'épopée précédente, testez les tâches de migration en utilisant les données source réelles. Cela permet de migrer les données de la base de données source vers la base de données cible.

Developer

Vérifiez que les bases de données source et cible sont synchronisées.

Vérifiez que les bases de données source et cible sont synchronisées. Pour plus d'informations et d'instructions, consultez la section Validation des données AWS DMS.

Developer

Arrêtez la base de données source.

Arrêtez la base de données Amazon RDS for Oracle. Pour obtenir des instructions, consultez Arrêter temporairement une instance de base de données Amazon RDS. Lorsque vous arrêtez la base de données source, le chargement initial et les tâches de réplication en cours dans AWS DMS sont automatiquement arrêtés. Aucune action supplémentaire n'est requise pour arrêter ces tâches.

Developer

Ressources connexes

Références AWS

Autres références

Tutoriel et vidéos

Informations supplémentaires

Script de validation des données

Le script de validation des données suivant convertit 1 en Y et 0 en N. Cela permet à la tâche AWS DMS de mener à bien et de réussir la validation de la table.

{ "rule-type": "validation", "rule-id": "5", "rule-name": "5", "rule-target": "column", "object-locator": { "schema-name": "ADMIN", "table-name": "TEMP_CHRA_BOOL", "column-name": "GRADE" }, "rule-action": "override-validation-function", "target-function": "case grade when '1' then 'Y' else 'N' end"         }

L'caseinstruction du script effectue la validation. Si la validation échoue, AWS DMS insère un enregistrement dans la table public.awsdms_validation_failures_v1 de l'instance de base de données cible. Cet enregistrement inclut le nom de la table, l'heure de l'erreur et des détails sur les valeurs non concordantes dans les tables source et cible.

Si vous n'ajoutez pas ce script de validation des données à la tâche AWS DMS et que les données sont insérées dans la table cible, la tâche AWS DMS affiche l'état de validation sous la forme d'enregistrements incompatibles.

Lors de la conversion AWS SCT, la tâche de migration AWS DMS change le type de données VARCHAR2 (1) en type booléen et ajoute une contrainte de clé primaire sur la colonne. "NO"