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 pour Oracle vers Amazon RDS pour Postgre SQL avec AWS SCT et AWS DMS en utilisant AWS CLI et AWS CloudFormation
Créée par Pinesh Singal () AWS
Environnement : PoC ou pilote | Source : Amazon RDS pour Oracle | Cible : Amazon RDS pour Postgrer SQL |
Type R : Ré-architecte | Charge de travail : Oracle ; logiciel libre | Technologies : migration ; bases de données |
AWSservices : Amazon AWS DMS RDS ; AWS SCT |
Récapitulatif
Ce modèle montre comment migrer une instance de base de données Amazon Relational Database Service (AmazonRDS) pour Oracle de plusieurs téraoctets vers une SQL instance de base de données Amazon RDS pour Postgre à l'aide de l'interface de ligne de AWS commande (). AWS CLI Cette approche permet un temps d'arrêt minimal et ne nécessite pas de connexion à la console AWS de gestion.
Ce modèle permet d'éviter les configurations manuelles et les migrations individuelles en utilisant les consoles AWS Schema Conversion Tool (AWSSCT) et AWS Database Migration Service (AWSDMS). 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 sur le AWSCLI.
Le modèle est utilisé AWS SCT pour convertir des objets de schéma de base de données d'Amazon RDS pour Oracle vers Amazon RDS pour Postgre, SQL puis pour AWS DMS migrer les données. À l'aide de scripts Python AWSCLI, 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 compte AWS actif.
Une instance de base de données Amazon RDS pour Oracle existante.
Une SQL instance de base de données Amazon RDS pour Postgre existante.
Une EC2 instance Amazon 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.AWSSCT, installé et configuré avec les pilotes Java Database Connectivity (JDBC) pour les moteurs de SQL base de données Oracle et Postgre. Pour plus d'informations, consultez la section Installation AWS SCT et installation des pilotes de base de données requis 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 documentation AWS Support et les notes de mise à jour de la version AWS DMS 3.4.4 dans la AWS DMS documentation. AWSCLIversion 2, installée et configurée avec votre identifiant de clé d'accès, votre clé d'accès secrète et le nom de AWS région par défaut pour l'instance ou le système d'exploitation (OSEC2) Amazon Elastic Compute Cloud (Amazon) sur lequel les scripts sont exécutés. Pour plus d'informations, consultez les sections Installation, mise à jour et désinstallation de la AWS CLI version 2 et Configuration de la AWS CLI dans la AWS CLI documentation.
Connaissance des AWS CloudFormation modèles. Pour plus d'informations, consultez AWS CloudFormation les concepts de la AWS CloudFormation documentation.
Python version 3, installé et configuré sur l'EC2instance Amazon 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 pour Oracle source sont les suivantes :
Versions Oracle 12c (v12.1.0.2, v12.2.0.1), 18c (v18.0.0.0) et 19c (v19.0.0.0) pour les éditions Enterprise, Standard, Standard One et Standard Two.
Bien qu'Amazon RDS prenne en charge Oracle 18c (v18.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 Oracle on Amazon RDS dans la RDS documentation Amazon.
Amazon RDS pour Oracle 11g n'est plus pris en charge.
Les exigences minimales pour votre SQL instance de base de données Amazon RDS pour Postgre cible sont les suivantes :
Postgre SQL versions 9 (versions 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 version 12.1.0.2 et versions ultérieures
Instance de base de données Amazon RDS pour SQL Postgre, versions 11.5 et ultérieures
AWSCLIversion 2
La dernière version de AWS SCT
La dernière version de Python 3
Architecture
Pile technologique source
Amazon RDS pour Oracle
Pile technologique cible
Amazon RDS pour Postgrer SQL
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 SQL données Amazon RDS pour Postgre à l'aide AWS DMS 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 Postgre SQL 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 mise à l'échelle
Vous pouvez automatiser cette migration en ajoutant des paramètres supplémentaires et des modifications liées à la sécurité pour plusieurs fonctionnalités dans un seul programme à votre script Python.
Outils
AWSL'interface de ligne de commande (AWSCLI) est un outil open source qui vous permet d'interagir avec les AWS services par le biais de commandes dans votre interface de ligne de commande.
AWS CloudFormationvous aide à configurer les AWS ressources, à les approvisionner rapidement et de manière cohérente, et à les gérer tout au long de leur cycle de vie, quels que soient les AWS comptes et les régions. Ce modèle convertit le fichier d'entrée .csv en fichier d'entrée .json à l'aide d'un script Python. Le fichier .json 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.
AWSDatabase Migration Service (AWSDMS) vous aide à migrer des banques de données vers le 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 à l'aide d'un script Python exécuté sur la ligne de commande et de créer le AWS CloudFormation modèle.
AWSSchema Conversion Tool (AWSSCT) 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 AWSCLI. | 1. Configurez les détails de configuration de l'environnement source et cible dans le
2. Modifiez les paramètres AWS SCT de configuration en fonction de vos besoins dans les fichiers suivants : | DBA |
Exécutez le script Python run_aws_sct.py. | Exécutez le script
Le script Python convertit les objets de base de données d'Oracle en Postgre SQL et crée des SQL fichiers au format PostgreSQL. Le script crée également le fichier | DBA |
Créez des objets dans Amazon RDS pour PostgreSQL. |
| DBA |
Tâche | Description | Compétences requises |
---|---|---|
Créez une instance AWS DMS de réplication. | Connectez-vous à la console AWS de gestion, ouvrez la AWS DMS console 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 | 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. Remarque : L'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 SQL base de données Postgre 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 AWSCLI. | 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 Python dms-create-task .py pour créer les AWS DMS tâches. | 1. Exécutez le script
2. En fonction de votre type de migration, vous pouvez utiliser les commandes suivantes pour créer trois types de AWS DMS tâches :
3. La AWS CloudFormation pile et AWS DMS les tâches sont créées
| DBA |
Vérifiez que AWS DMS les tâches sont prêtes. | Dans la AWS console, vérifiez le | DBA |
Tâche | Description | Compétences requises |
---|---|---|
Commencez les AWS DMS tâches. | Exécutez le script
Remarque : La date et l'heure de début doivent être au format de type de données Vous pouvez consulter l'état des AWS DMS tâches dans l'onglet Tableau des statistiques de vos tâches de migration sur 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 :
Remarque : AWS DMS les tâches peuvent s'arrêter avec un | DBA |
Résolution des problèmes
Problème | Solution |
---|---|
AWSSCTles connexions de test source et cible échouent | Configurez les versions des JDBC pilotes et les règles entrantes du groupe de VPC sécurité 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 AWS DMS terminaux |
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. |
Erreurs d'exécution de 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 contient 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 Attributs de connexion supplémentaires lors de l'utilisation d'Oracle comme source pour AWS DMS OracleSettings, et Résolution des problèmes dans la AWS DMS documentation. |
Ressources connexes
Présentation AWS DMS
(vidéo) Utilisation d'une base de données Oracle comme source pour AWS DMS
Utiliser une base de SQL données Postgre comme cible pour AWS DMS
formation sur le cloud
(AWSCLIdocumentation) cloudformation create-stack
(documentation) AWS CLI dms
(AWSCLIdocumentation)