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.

Le schéma montre le flux de travail de migration suivant :
Le script Python permet AWS SCT de se connecter aux instances de base de données source et cible.
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.
Le script Python crée des tâches de AWS DMS réplication pour les instances de base de données source et cible.
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'.json
entré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âche | Description | Compétences requises |
---|---|---|
Configurez AWS SCT pour exécuter à partir du AWS CLI. |
| DBA |
Exécutez le script | Exécutez le script
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 PDF | DBA |
Créez des objets dans Amazon RDS for PostgreSQL. |
| DBA |
Tâche | Description | Compétences requises |
---|---|---|
Créez une instance AWS DMS de réplication. | Connectez-vous à la AWS DMS console AWS Management Console, ouvrez-la 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 | 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. NoteL'attribut de connexion supplémentaire doit 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
| DBA |
Exécutez le script |
| DBA |
Vérifiez que AWS DMS les tâches sont prêtes. | Sur la AWS DMS console, vérifiez le | DBA |
Tâche | Description | Compétences requises |
---|---|---|
Commencez les AWS DMS tâches. | Exécutez le script
NoteLa date et l'heure de début doivent être au 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. |
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 :
NoteAWS DMS les tâches peuvent s'arrêter avec un | DBA |
Résolution des problèmes
Problème | Solution |
---|---|
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 Pour plus d'informations, consultez la section Comment résoudre les problèmes de connectivité des terminaux AWS DMS dans |
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 un 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
Présentation AWS DMS
(vidéo) Exemples de commandes d'opération de CloudFormation pile pour AWS CLI et PowerShell
Utilisation d'une base de données Oracle comme source pour AWS DMS
Utilisation d'une base de données PostgreSQL comme cible pour AWS DMS
formation sur le cloud
(AWS CLI documentation) create-stack (documentation
)AWS CLI dms
(AWS CLI documentation)