Sélectionner vos préférences de cookies

Nous utilisons des cookies essentiels et des outils similaires qui sont nécessaires au fonctionnement de notre site et à la fourniture de nos services. Nous utilisons des cookies de performance pour collecter des statistiques anonymes afin de comprendre comment les clients utilisent notre site et d’apporter des améliorations. Les cookies essentiels ne peuvent pas être désactivés, mais vous pouvez cliquer sur « Personnaliser » ou « Refuser » pour refuser les cookies de performance.

Si vous êtes d’accord, AWS et les tiers approuvés utiliseront également des cookies pour fournir des fonctionnalités utiles au site, mémoriser vos préférences et afficher du contenu pertinent, y compris des publicités pertinentes. Pour accepter ou refuser tous les cookies non essentiels, cliquez sur « Accepter » ou « Refuser ». Pour effectuer des choix plus détaillés, cliquez sur « Personnaliser ».

Migrer Amazon RDS for Oracle vers Amazon RDS for PostgreSQL avec et en utilisant et AWS SCTAWS DMSAWS CLIAWS CloudFormation - 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.

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.

Migrer Amazon RDS for Oracle vers Amazon RDS for PostgreSQL avec et en utilisant et AWS SCTAWS DMSAWS CLIAWS CloudFormation

Créée par Pinesh Singal (AWS)

Récapitulatif

Ce modèle montre comment migrer une instance de base de données Amazon Relational Database Service (Amazon RDS) de plusieurs téraoctets pour Oracle vers une instance de base de données Amazon RDS for PostgreSQL à l'aide du (). AWS Command Line Interface AWS CLI Cette approche permet un temps d'arrêt minimal et ne nécessite pas de connexion au AWS Management Console.

Ce modèle permet d'éviter les configurations manuelles et les migrations individuelles en utilisant les consoles AWS Schema Conversion Tool (AWS SCT) et AWS Database Migration Service (AWS DMS). La solution met en place une configuration unique pour plusieurs bases de données et effectue les migrations en utilisant AWS SCT et AWS DMS dans le AWS CLI.

Le modèle est utilisé AWS SCT pour convertir des objets de schéma de base de données d'Amazon RDS for Oracle vers Amazon RDS for PostgreSQL, AWS DMS puis pour migrer les données. À l'aide de scripts Python AWS CLI, vous créez des AWS SCT objets et des AWS DMS tâches à l'aide d'un AWS CloudFormation modèle.

Conditions préalables et limitations

Prérequis

  • Un actif Compte AWS.

  • Une instance de base de données Amazon RDS pour Oracle existante.

  • Une instance de base de données Amazon RDS pour PostgreSQL existante. 

  • Une instance Amazon Elastic Compute Cloud (Amazon EC2) ou une machine locale avec un système d'exploitation Windows ou Linux pour exécuter des scripts.

  • Compréhension des types de tâches de AWS DMS migration suivants :full-load,cdc,full-load-and-cdc.  Pour plus d'informations, consultez la section Création d'une tâche dans la AWS DMS documentation. 

  • AWS SCT, installé et configuré avec les pilotes Java Database Connectivity (JDBC) pour les moteurs de base de données Oracle et PostgreSQL. Pour plus d'informations, consultez la section Installation et configuration AWS SCT dans la AWS SCT documentation. 

  • Le AWSSchemaConversionToolBatch.jar fichier du AWS SCT dossier installé, copié dans votre répertoire de travail.

  • Le cli-sct-dms-cft.zip fichier (joint), téléchargé et extrait dans votre répertoire de travail.

  • Version la plus récente du moteur d'instance de AWS DMS réplication. Pour plus d'informations, consultez la section Comment créer une instance de AWS DMS réplication dans la AWS Support documentation et les notes AWS DMS de publication

  • AWS CLI version 2, installée et configurée avec votre identifiant de clé d'accès, votre clé d'accès secrète et le Région AWS nom par défaut de l' EC2 instance ou du système d'exploitation sur lequel les scripts sont exécutés. Pour plus d'informations, consultez les sections Installation ou mise à jour vers la dernière version AWS CLI et Configuration des paramètres correspondants AWS CLI dans la AWS CLI documentation. 

  • Connaissance des AWS CloudFormation modèles. Pour plus d'informations, consultez la section AWS CloudFormation Fonctionnement de la AWS CloudFormation documentation. 

  • Python version 3, installé et configuré sur l' EC2 instance ou le système d'exploitation sur lequel les scripts sont exécutés. Pour plus d'informations, consultez la documentation Python

Limites

  • Les exigences minimales pour votre instance de base de données Amazon RDS for Oracle source sont les suivantes : 

    • Versions Oracle 12c (12.1.0.2, 12.2.0.1), 18c (18.0.0.0) et 19c (19.0.0.0) pour les éditions Enterprise, Standard, Standard One et Standard Two.

    • Bien qu'Amazon RDS prenne en charge Oracle 18c (18.0.0.0), cette version est sur le point de devenir obsolète car Oracle ne fournit plus de correctifs pour 18c après cette date. end-of-support Pour plus d'informations, consultez Amazon RDS pour Oracle dans la documentation Amazon RDS.

    • Amazon RDS pour Oracle 11g n'est plus pris en charge.

  • Les exigences minimales pour votre instance de base de données Amazon RDS pour PostgreSQL cible sont les suivantes : 

    • PostgreSQL versions 9 (9.5 et 9.6), 10.x, 11.x, 12.x et 13.x

Versions du produit

  • Instance de base de données Amazon RDS pour Oracle, versions 12.1.0.2 et ultérieures

  • Instance de base de données Amazon RDS pour PostgreSQL version 11.5 et ultérieure

  • AWS CLI version 2 

  • La dernière version de AWS SCT

  • La dernière version de Python 3

Architecture

Pile technologique source

  • Amazon RDS for Oracle

Pile technologique cible

  • Amazon RDS for PostgreSQL

Architecture source et cible

Le schéma suivant montre la migration d'une instance de base de données Amazon RDS pour Oracle vers une instance de base de données Amazon RDS for AWS DMS PostgreSQL à l'aide de scripts Python.

Migration d'une instance de base de données RDS pour Oracle vers une instance de base de données RDS pour PostgreSQL à l'aide d'AWS DMS et de Python.

Le schéma montre le flux de travail de migration suivant :

  1. Le script Python permet AWS SCT de se connecter aux instances de base de données source et cible.

  2. L'utilisateur AWS SCT commence par le script Python, convertit le code Oracle en code PostgreSQL et l'exécute sur l'instance de base de données cible.

  3. Le script Python crée des tâches de AWS DMS réplication pour les instances de base de données source et cible.

  4. L'utilisateur déploie des scripts Python pour démarrer les AWS DMS tâches, puis les arrête une fois la migration des données terminée.

Automatisation et évolutivité

Vous pouvez automatiser cette migration en ajoutant des paramètres et des modifications liées à la sécurité à votre script Python, afin de fournir des fonctionnalités supplémentaires. 

Outils

  • AWS Command Line Interface (AWS CLI) est un outil open source qui vous permet d'interagir avec les services AWS par le biais de commandes dans votre shell de ligne de commande.

  • AWS CloudFormationvous aide à configurer les ressources AWS, à les approvisionner rapidement et de manière cohérente, et à les gérer tout au long de leur cycle de vie dans toutes Comptes AWS les régions. Ce modèle convertit le fichier .csv d'entrée en fichier d'.jsonentrée à l'aide d'un script Python. Le .json fichier est utilisé dans AWS CLI les commandes pour créer une AWS CloudFormation pile qui crée plusieurs tâches de AWS DMS réplication avec Amazon Resource Names (ARNs), des types de migration, des paramètres de tâches et des mappages de tables.

  • AWS Database Migration Service (AWS DMS) vous aide à migrer les banques de données vers AWS Cloud ou entre des combinaisons de configurations cloud et sur site. Ce modèle est utilisé AWS DMS pour créer, démarrer et arrêter des tâches avec un script Python qui s'exécute sur la ligne de commande et pour créer le AWS CloudFormation modèle.

  • AWS Schema Conversion Tool (AWS SCT) prend en charge les migrations de bases de données hétérogènes en convertissant automatiquement le schéma de base de données source et la majorité du code personnalisé dans un format compatible avec la base de données cible. Ce modèle nécessite que le AWSSchemaConversionToolBatch.jar fichier se trouve dans le AWS SCT répertoire installé.

Code

Le cli-sct-dms-cft.zip fichier (joint) contient le code source complet de ce modèle.

Épopées

TâcheDescriptionCompétences requises

Configurez AWS SCT pour exécuter à partir du AWS CLI.

  1. Configurez les détails de configuration de l'environnement source et cible dans le database_migration.txt fichier en utilisant le format suivant :

    #source_vendor,source_hostname,source_dbname,source_user,source_pwd,source_schema,source_port,source_sid,target_vendor,target_hostname,target_user,target_pwd,target_dbname,target_port ORACLE,myoracledb.cokmvis0v46q.us-east-1.rds.amazonaws.com,ORCL,orcl,orcl1234,orcl,1521,ORCL,POSTGRESQL,mypgdbinstance.cokmvis0v46q.us-east-1.rds.amazonaws.com,pguser,pgpassword,pgdb,5432
  2. Modifiez les paramètres AWS SCT de configuration en fonction de vos besoins dans les fichiers suivants :project_settings.xml,Oracle_PG_Test_Batch.xml, etORACLE-orcl-to-POSTGRESQL.xml.

DBA

Exécutez le script run_aws_sct.py Python.

Exécutez le script run_aws_sct.py Python à l'aide de la commande suivante :

$ python run_aws_sct.py database_migration.txt

Le script Python convertit les objets de base de données d'Oracle en PostgreSQL et crée des fichiers SQL au format PostgreSQL. Le script crée également le fichier PDFDatabase migration assessment report, qui fournit des recommandations détaillées et des statistiques de conversion pour les objets de base de données.

DBA

Créez des objets dans Amazon RDS for PostgreSQL.

  1. Modifiez manuellement les fichiers SQL générés par AWS SCT, si nécessaire.

  2. Exécutez les fichiers SQL et créez des objets dans votre instance de base de données Amazon RDS for PostgreSQL.

DBA

Configurer AWS SCT et créer des objets de base de données dans AWS CLI

TâcheDescriptionCompétences requises

Configurez AWS SCT pour exécuter à partir du AWS CLI.

  1. Configurez les détails de configuration de l'environnement source et cible dans le database_migration.txt fichier en utilisant le format suivant :

    #source_vendor,source_hostname,source_dbname,source_user,source_pwd,source_schema,source_port,source_sid,target_vendor,target_hostname,target_user,target_pwd,target_dbname,target_port ORACLE,myoracledb.cokmvis0v46q.us-east-1.rds.amazonaws.com,ORCL,orcl,orcl1234,orcl,1521,ORCL,POSTGRESQL,mypgdbinstance.cokmvis0v46q.us-east-1.rds.amazonaws.com,pguser,pgpassword,pgdb,5432
  2. Modifiez les paramètres AWS SCT de configuration en fonction de vos besoins dans les fichiers suivants :project_settings.xml,Oracle_PG_Test_Batch.xml, etORACLE-orcl-to-POSTGRESQL.xml.

DBA

Exécutez le script run_aws_sct.py Python.

Exécutez le script run_aws_sct.py Python à l'aide de la commande suivante :

$ python run_aws_sct.py database_migration.txt

Le script Python convertit les objets de base de données d'Oracle en PostgreSQL et crée des fichiers SQL au format PostgreSQL. Le script crée également le fichier PDFDatabase migration assessment report, qui fournit des recommandations détaillées et des statistiques de conversion pour les objets de base de données.

DBA

Créez des objets dans Amazon RDS for PostgreSQL.

  1. Modifiez manuellement les fichiers SQL générés par AWS SCT, si nécessaire.

  2. Exécutez les fichiers SQL et créez des objets dans votre instance de base de données Amazon RDS for PostgreSQL.

DBA
TâcheDescriptionCompétences requises

Créez une instance AWS DMS de réplication.

Connectez-vous à la AWS DMS console AWS Management Console, ouvrez-la et créez une instance de réplication configurée en fonction de vos besoins.

Pour plus d'informations, consultez les sections Création d'une instance de réplication dans la AWS DMS documentation et Comment créer une instance de AWS DMS réplication dans la AWS Support documentation.

DBA

Créez le point de terminaison source.

Sur la AWS DMS console, choisissez Endpoints, puis créez un point de terminaison source pour la base de données Oracle en fonction de vos besoins. 

Note

L'attribut de connexion supplémentaire doit numberDataTypeScale comporter une -2 valeur.

Pour plus d'informations, consultez la section Création de points de terminaison source et cible dans la AWS DMS documentation.

DBA

Créez le point de terminaison cible.

Sur la AWS DMS console, choisissez Endpoints, puis créez un point de terminaison cible pour la base de données PostgreSQL en fonction de vos besoins.  

Pour plus d'informations, consultez la section Création de points de terminaison source et cible dans la AWS DMS documentation.

DevOps ingénieur

Configurez les détails de AWS DMS réplication à exécuter à partir du AWS CLI.

Configurez les points de terminaison AWS DMS source et cible ainsi que les détails de réplication dans le dms-arn-list.txt fichier avec l'ARN du point de terminaison source, l'ARN du point de terminaison cible et l'ARN de l'instance de réplication en utilisant le format suivant :

#sourceARN,targetARN,repARN arn:aws:dms:us-east-1:123456789012:endpoint:EH7AINRUDZ5GOYIY6HVMXECMCQ arn:aws:dms:us-east-1:123456789012:endpoint:HHJVUV57N7O3CQF4PJZKGIOYY5 arn:aws:dms:us-east-1:123456789012:rep:LL57N77AQQAHHJF4PJFHNEDZ5G
DBA

Exécutez le script dms-create-task.py Python pour créer les AWS DMS tâches.

  1. Exécutez le script dms-create-task.py Python à l'aide de la commande suivante :

    $ python dms-create-task.py database_migration.txt dms-arn-list.txt <cft-stack-name> <migration-type>

    où :

    • database_migration.txtest le fichier texte de migration de base de données.

    • dms-arn-list.txtest la liste des ARN pour AWS DMS.

    • <cft-stack-name>est le nom de AWS CloudFormation pile défini par l'utilisateur.

    • <migration-type> a pour valeur full-load, cdc ou full-load-and-cdc.

  2. En fonction de votre type de migration, vous pouvez utiliser les commandes suivantes pour créer trois types de AWS DMS tâches :

    • $ python dms-create-task.py database_migration.txt dms-arn-list.txt dms-cli-cft-stack full-load

    • $ python dms-create-task.py database_migration.txt dms-arn-list.txt dms-cli-cft-stack cdc

    • $ python dms-create-task.py database_migration.txt dms-arn-list.txt dms-cli-cft-stack full-load-and-cdc

DBA

Vérifiez que AWS DMS les tâches sont prêtes.

Sur la AWS DMS console, vérifiez le Ready statut de vos AWS DMS tâches dans la section État.

DBA

Configurez et créez AWS DMS des tâches à l'aide AWS CLI des AWS CloudFormation

TâcheDescriptionCompétences requises

Créez une instance AWS DMS de réplication.

Connectez-vous à la AWS DMS console AWS Management Console, ouvrez-la et créez une instance de réplication configurée en fonction de vos besoins.

Pour plus d'informations, consultez les sections Création d'une instance de réplication dans la AWS DMS documentation et Comment créer une instance de AWS DMS réplication dans la AWS Support documentation.

DBA

Créez le point de terminaison source.

Sur la AWS DMS console, choisissez Endpoints, puis créez un point de terminaison source pour la base de données Oracle en fonction de vos besoins. 

Note

L'attribut de connexion supplémentaire doit numberDataTypeScale comporter une -2 valeur.

Pour plus d'informations, consultez la section Création de points de terminaison source et cible dans la AWS DMS documentation.

DBA

Créez le point de terminaison cible.

Sur la AWS DMS console, choisissez Endpoints, puis créez un point de terminaison cible pour la base de données PostgreSQL en fonction de vos besoins.  

Pour plus d'informations, consultez la section Création de points de terminaison source et cible dans la AWS DMS documentation.

DevOps ingénieur

Configurez les détails de AWS DMS réplication à exécuter à partir du AWS CLI.

Configurez les points de terminaison AWS DMS source et cible ainsi que les détails de réplication dans le dms-arn-list.txt fichier avec l'ARN du point de terminaison source, l'ARN du point de terminaison cible et l'ARN de l'instance de réplication en utilisant le format suivant :

#sourceARN,targetARN,repARN arn:aws:dms:us-east-1:123456789012:endpoint:EH7AINRUDZ5GOYIY6HVMXECMCQ arn:aws:dms:us-east-1:123456789012:endpoint:HHJVUV57N7O3CQF4PJZKGIOYY5 arn:aws:dms:us-east-1:123456789012:rep:LL57N77AQQAHHJF4PJFHNEDZ5G
DBA

Exécutez le script dms-create-task.py Python pour créer les AWS DMS tâches.

  1. Exécutez le script dms-create-task.py Python à l'aide de la commande suivante :

    $ python dms-create-task.py database_migration.txt dms-arn-list.txt <cft-stack-name> <migration-type>

    où :

    • database_migration.txtest le fichier texte de migration de base de données.

    • dms-arn-list.txtest la liste des ARN pour AWS DMS.

    • <cft-stack-name>est le nom de AWS CloudFormation pile défini par l'utilisateur.

    • <migration-type> a pour valeur full-load, cdc ou full-load-and-cdc.

  2. En fonction de votre type de migration, vous pouvez utiliser les commandes suivantes pour créer trois types de AWS DMS tâches :

    • $ python dms-create-task.py database_migration.txt dms-arn-list.txt dms-cli-cft-stack full-load

    • $ python dms-create-task.py database_migration.txt dms-arn-list.txt dms-cli-cft-stack cdc

    • $ python dms-create-task.py database_migration.txt dms-arn-list.txt dms-cli-cft-stack full-load-and-cdc

DBA

Vérifiez que AWS DMS les tâches sont prêtes.

Sur la AWS DMS console, vérifiez le Ready statut de vos AWS DMS tâches dans la section État.

DBA
TâcheDescriptionCompétences requises

Commencez les AWS DMS tâches.

Exécutez le script dms-start-task.py Python à l'aide de la commande suivante :

$ python dms-start-task.py start '<cdc-start-datetime>'
Note

La date et l'heure de début doivent être au 'YYYY-MM-DDTHH:MI:SS' format 'DD-MON-YYYY' ou (par exemple, '01-Dec-2019' ou'2018-03-08T12:12:12').

Vous pouvez consulter l'état des AWS DMS tâches dans l'onglet Tableau des statistiques de la page Tâches de la AWS DMS console.

DBA

Validez les données.

  1. Une fois la migration à chargement complet terminée, la tâche continue de s'exécuter pour CDC.

  2. Lorsque le CDC est terminé ou qu'aucune autre modification ne doit être migrée, passez en revue et validez les résultats et les données de la tâche de migration dans vos bases de données Oracle et PostgreSQL.

    Vous pouvez valider vos données en vérifiant les colonnes de statut et de nombre (Validation state,Validation pending, Validation failedValidation suspended, etValidation details) dans l'onglet Statistiques des tables de votre tâche de migration de base de données sur la page Tâches de la AWS DMS console. 

Pour plus d'informations, consultez la section validation AWS DMS des données dans la AWS DMS documentation.

DBA

Arrêtez les AWS DMS tâches.

Exécutez le script Python à l'aide de la commande suivante :

$ python dms-start-task.py stop
Note

AWS DMS les tâches peuvent s'arrêter avec un failed statut, en fonction de l'état de validation. Pour plus d'informations, consultez la section suivante, .

DBA

Démarrez et arrêtez les AWS DMS tâches à l'aide du AWS CLI

TâcheDescriptionCompétences requises

Commencez les AWS DMS tâches.

Exécutez le script dms-start-task.py Python à l'aide de la commande suivante :

$ python dms-start-task.py start '<cdc-start-datetime>'
Note

La date et l'heure de début doivent être au 'YYYY-MM-DDTHH:MI:SS' format 'DD-MON-YYYY' ou (par exemple, '01-Dec-2019' ou'2018-03-08T12:12:12').

Vous pouvez consulter l'état des AWS DMS tâches dans l'onglet Tableau des statistiques de la page Tâches de la AWS DMS console.

DBA

Validez les données.

  1. Une fois la migration à chargement complet terminée, la tâche continue de s'exécuter pour CDC.

  2. Lorsque le CDC est terminé ou qu'aucune autre modification ne doit être migrée, passez en revue et validez les résultats et les données de la tâche de migration dans vos bases de données Oracle et PostgreSQL.

    Vous pouvez valider vos données en vérifiant les colonnes de statut et de nombre (Validation state,Validation pending, Validation failedValidation suspended, etValidation details) dans l'onglet Statistiques des tables de votre tâche de migration de base de données sur la page Tâches de la AWS DMS console. 

Pour plus d'informations, consultez la section validation AWS DMS des données dans la AWS DMS documentation.

DBA

Arrêtez les AWS DMS tâches.

Exécutez le script Python à l'aide de la commande suivante :

$ python dms-start-task.py stop
Note

AWS DMS les tâches peuvent s'arrêter avec un failed statut, en fonction de l'état de validation. Pour plus d'informations, consultez la section suivante, .

DBA

Résolution des problèmes

ProblèmeSolution

AWS SCT les connexions de test source et cible échouent.

Configurez les versions du pilote JDBC et les règles entrantes du groupe de sécurité VPC pour accepter le trafic entrant.

L'exécution du test du point de terminaison source ou cible échoue.

Vérifiez si les paramètres du point de terminaison et l'instance de réplication sont en Available état. Vérifiez si l'état de la connexion du terminal estSuccessful

Pour plus d'informations, consultez la section Comment résoudre les problèmes de connectivité des terminaux AWS DMS dans la AWS Support documentation.

L'exécution à chargement complet échoue.

Vérifiez si les types et les tailles de données des bases de données source et cible correspondent. 

Pour plus d'informations, consultez la section Résolution des problèmes liés aux tâches de migration AWS DMS dans la AWS DMS documentation.

Vous rencontrez des erreurs lors de l'exécution de la validation.

Vérifiez si la table possède une clé primaire car les tables non primaires ne sont pas validées.

Si la table contient une clé primaire et des erreurs, vérifiez que l'attribut de connexion supplémentaire du point de terminaison source en possède unnumberDataTypeScale=-2.

Pour plus d'informations, consultez les sections Paramètres du point de terminaison lors de l'utilisation d'Oracle comme source pour AWS DMSOracleSettings, et Résolution des problèmes dans la AWS DMS documentation.

Ressources connexes

Pièces jointes

Pour accéder au contenu supplémentaire associé à ce document, décompressez le fichier suivant : attachment.zip

ConfidentialitéConditions d'utilisation du sitePréférences de cookies
© 2025, Amazon Web Services, Inc. ou ses affiliés. Tous droits réservés.