Migrez Amazon RDS for Oracle vers Amazon RDS for PostgreSQL en mode SSL à l'aide d'AWS DMS - 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.

Migrez Amazon RDS for Oracle vers Amazon RDS for PostgreSQL en mode SSL à l'aide d'AWS DMS

Créée par Pinesh Singal (AWS)

Environnement : PoC ou pilote

Source : Amazon RDS pour Oracle

Cible : Amazon RDS PostgreSQL

Type R : Ré-architecte

Charge de travail : Oracle ; logiciel libre

Technologies : migration ; sécurité, identité, conformité ; bases de données

Services AWS : AWS DMS ; Amazon RDS

Récapitulatif

Ce modèle fournit des conseils pour la migration d'une instance de base de données Amazon Relational Database Service (Amazon RDS) pour Oracle vers une base de données Amazon RDS for PostgreSQL sur le cloud Amazon Web Services (AWS). Pour chiffrer les connexions entre les bases de données, le modèle utilise l'autorité de certification (CA) et le mode SSL dans Amazon RDS et AWS Database Migration Service (AWS DMS).

Le modèle décrit une stratégie de migration en ligne avec peu ou pas de temps d'arrêt pour une base de données source Oracle de plusieurs téraoctets comportant un grand nombre de transactions. Pour la sécurité des données, le modèle utilise le protocole SSL lors du transfert des données.

Ce modèle utilise AWS Schema Conversion Tool (AWS SCT) pour convertir le schéma de base de données Amazon RDS for Oracle en schéma Amazon RDS for PostgreSQL. Le modèle utilise ensuite AWS DMS pour migrer les données de la base de données Amazon RDS for Oracle vers la base de données Amazon RDS for PostgreSQL.

Conditions préalables et limitations

Prérequis

  • Un compte AWS actif 

  • Autorité de certification (CA) de base de données Amazon RDS configurée uniquement avec rds-ca-2019 (le certificat rds-ca-2015 a expiré le 5 mars 2020)

  • AWS SCT

  • AWS DMS

  • pgAdmin

  • Outils SQL (par exemple, SQL Developer ou SQL*Plus)

Limites

  • Base de données Amazon RDS for Oracle : la configuration minimale requise concerne les versions 19c d'Oracle pour les éditions Enterprise et Standard Two.

  • Base de données Amazon RDS for PostgreSQL : la configuration minimale requise est celle de PostgreSQL version 12 et ultérieure (pour les versions 9.x et ultérieures).

Versions du produit

  • Instance de base de données Amazon RDS for Oracle version 12.1.0.2

  • Instance de base de données Amazon RDS for PostgreSQL version 11.5

Architecture

Pile technologique source

  • Une instance de base de données Amazon RDS for Oracle avec la version 12.1.0.2.v18.

Pile technologique cible

  • AWS DMS

  • Une instance de base de données Amazon RDS for PostgreSQL avec la version 11.5.

Architecture cible

Le schéma suivant montre l'architecture de l'architecture de migration des données entre les bases de données Oracle (source) et PostgreSQL (cible). L'architecture inclut les éléments suivants :

  • Un cloud privé virtuel (VPC)

  • Une zone de disponibilité

  • Un sous-réseau privé

  • Une base de données Amazon RDS for Oracle

  • Une instance de réplication AWS DMS

  • Une base de données RDS pour PostgreSQL

Pour chiffrer les connexions pour les bases de données source et cible, les modes CA et SSL doivent être activés dans Amazon RDS et AWS DMS.

Dans un sous-réseau privé, les données sont transférées entre Amazon RDS pour Oracle et AWS DMS, et entre AWS DMS et Amazon RDS pour PostgreSQL.

Outils

Services AWS

Autres services

  • 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.

Épopées

TâcheDescriptionCompétences requises

Créez l'instance de base de données Oracle.

Connectez-vous à votre compte AWS, ouvrez l'AWS Management Console et accédez à la console Amazon RDS. Sur la console, choisissez Créer une base de données, puis Oracle.

AWS, DBA en général

Configurez les groupes de sécurité.

Configurez les groupes de sécurité entrants et sortants.

AWS général

Créez un groupe d'options.

Créez un groupe d'options dans le même VPC et le même groupe de sécurité que la base de données Amazon RDS for Oracle. Pour Option, choisissez SSL. Pour Port, choisissez 2484 (pour les connexions SSL).

AWS général

Configurez les paramètres des options.

Utilisez les paramètres suivants :

  • SQLNET.CIPHER_SUITE: SSL_RSA_WITH_AES_256_CBC_SHA

  • SQLNET.SSL_VERSION: 1.2 or 1.0

AWS général

Modifiez l'instance de base de données RDS pour Oracle.

Définissez le certificat CA comme rds-ca-2019. Sous Groupe d'options, attachez le groupe d'options créé précédemment.

DBA, AWS général

Vérifiez que l'instance de base de données RDS pour Oracle est disponible.

Assurez-vous que l'instance de base de données Amazon RDS for Oracle est opérationnelle et que le schéma de base de données est accessible.

Pour vous connecter au RDS pour Oracle DB, utilisez la sqlplus commande depuis la ligne de commande.

$ sqlplus orcl/****@myoracledb.cokmvis0v46q.us-east-1.rds.amazonaws.com:1521/ORCL SQL*Plus: Release 12.1.0.2.0 Production on Tue Oct 15 18:11:07 2019 Copyright (c) 1982, 2016, Oracle. All rights reserved. Last Successful login time: Mon Dec 16 2019 23:17:31 +05:30 Connected to: Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options SQL>
DBA

Créez des objets et des données dans la base de données RDS pour Oracle.

Créez des objets et insérez des données dans le schéma.

DBA
TâcheDescriptionCompétences requises

Créez la base de données RDS pour PostgreSQL.

Sur la page Créer une base de données de la console Amazon RDS, choisissez PostgreSQL pour créer une instance de base de données Amazon RDS for PostgreSQL.

DBA, AWS général

Configurez les groupes de sécurité.

Configurez les groupes de sécurité entrants et sortants.

AWS général

Créez un groupe de paramètres.

Si vous utilisez PostgreSQL version 11.x, créez un groupe de paramètres pour définir les paramètres SSL. Dans PostgreSQL version 12, le groupe de paramètres SSL est activé par défaut.

AWS général

Modifiez les paramètres.

Modifiez le rds.force_ssl paramètre sur 1 (activé).

Par défaut, le ssl paramètre est 1 (activé). En définissant le rds.force_ssl paramètre sur1, vous forcez toutes les connexions à se connecter uniquement via le mode SSL.

AWS général

Modifiez l'instance de base de données RDS pour PostgreSQL.

Définissez le certificat CA comme rds-ca-2019. Attachez le groupe de paramètres par défaut ou le groupe de paramètres créé précédemment, selon votre version de PostgreSQL.

DBA, AWS général

Vérifiez que l'instance de base de données RDS pour PostgreSQL est disponible.

Assurez-vous que la base de données Amazon RDS for PostgreSQL est opérationnelle.

La psql commande établit une connexion SSL avec sslmode set depuis la ligne de commande.

L'une des options consiste sslmode=1 à définir le groupe de paramètres et à utiliser une psql connexion sans inclure le sslmode paramètre dans la commande.

Le résultat suivant indique que la connexion SSL est établie.

$ psql -h mypgdbinstance.cokmvis0v46q.us-east-1.rds.amazonaws.com -p 5432 "dbname=pgdb user=pguser" Password for user pguser: psql (11.3, server 11.5) SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 256, compression: off) Type "help" for help. pgdb=>

Une deuxième option consiste à le définir sslmode=1 dans le groupe de paramètres et à inclure le sslmode paramètre dans la psql commande.

Le résultat suivant indique que la connexion SSL est établie.

$ psql -h mypgdbinstance.cokmvis0v46q.us-east-1.rds.amazonaws.com -p 5432 "dbname=pgdb user=pguser sslmode=require" Password for user pguser: psql (11.3, server 11.5) SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 256, compression: off) Type "help" for help. pgdb=>
DBA
TâcheDescriptionCompétences requises

Installer AWS SCT.

Installez la dernière version de l'application AWS SCT.

AWS général

Configurez AWS SCT avec des pilotes JDBC.

Téléchargez les pilotes Java Database Connectivity (JDBC) pour Oracle (ojdbc8.jar) et PostgreSQL (postgresql-42.2.5.jar).

Pour configurer les pilotes dans AWS SCT, choisissez Paramètres, Paramètres globaux, Pilotes.

AWS général

Créez le projet AWS SCT.

Créez le projet et le rapport AWS SCT en utilisant Oracle comme moteur de base de données source et Amazon RDS for PostgreSQL comme moteur de base de données cible :

  1. Testez les connexions à la base de données Oracle source et à la base de données Amazon RDS for PostgreSQL cible en fournissant les détails de connexion.

    Pour la base de données Oracle source, les autorisations ou privilèges suivants sont requis :

    • CONNECT

    • SELECT_CATALOG_ROLE

    • SELECT ANY DICTIONARY

    • SELECT on SYS.USER$ TO <sct_user>

    Pour plus d'informations, consultez la section Utilisation de la base de données Oracle comme source pour AWS SCT.

    Les connexions source et cible doivent réussir avant qu'AWS SCT puisse démarrer le rapport de migration.

  2. Après le rapport, entrez le schéma à convertir, puis choisissez Terminer.

AWS général

Validez les objets de base de données

  1. Choisissez Charger le schéma.

    AWS SCT affiche la source et les objets cibles convertis, y compris les objets présentant des erreurs. Mettez à jour tous les objets incorrects dans la base de données cible.

  2. Passez en revue les erreurs et éliminez-les à l'aide d'une intervention manuelle.

  3. Une fois toutes les erreurs corrigées, choisissez à nouveau Charger le schéma.

  4. Choisissez Appliquer à la base de données.

  5. Connectez-vous à pgAdmin ou à n'importe quel outil prenant en charge une connexion à une base de données PostgreSQL, et vérifiez le schéma et les objets.

DBA, AWS général
TâcheDescriptionCompétences requises

Créez une instance de réplication.

  1. Connectez-vous à votre compte, ouvrez l'AWS Management Console et accédez à la console AWS DMS.

  2. Créez une instance de réplication avec des paramètres valides pour le VPC, le groupe de sécurité, la zone de disponibilité et des attributs de connexion supplémentaires.

AWS général

Importez le certificat.

  1. Téléchargez le certificat rds-ca-2019-root.pem.

  2. Sur la page Certificats, importez le certificat en tant querds-ca-2019-root.

AWS général

Créez le point de terminaison source.

  1. Créez un point de terminaison source pour Amazon RDS pour Oracle en choisissant Select RDS DB instance, puis en sélectionnant l'instance DB RDS for Oracle que vous avez créée. Les détails de configuration du point de terminaison seront automatiquement renseignés.

  2. Choisissez Fournir les informations d'accès manuellement. Pour Port, assurez-vous de saisir 2484.

  3. En mode SSL (Secure Socket Layer), choisissez verify-ca, , puis le certificat CA que vous avez créé précédemment.

  4. Sous Paramètres du point de terminaison, ajoutez l'attribut de connexion supplémentaire NumberDataTypeScale=-2 pour prendre en charge le type de NUMBER données sans taille.

Pour plus d'informations, consultez la section Utilisation d'une base de données Oracle comme source pour AWS Database Migration Service.

AWS général

Créez le point de terminaison cible.

  1. Créez un point de terminaison cible pour Amazon RDS pour PostgreSQL en choisissant Select RDS DB instance, puis en sélectionnant votre instance DB RDS for PostgreSQL. Les détails de configuration du point de terminaison seront automatiquement renseignés.

  2. Choisissez Fournir les informations d'accès manuellement. Pour Port, assurez-vous de saisir 2484.

Pour plus d'informations, consultez la section Utilisation d'une base de données PostgreSQL comme cible pour AWS Database Migration Service.

AWS général

Testez les points de terminaison.

  1. Testez les points de terminaison source et cible pour confirmer que les deux sont efficaces et disponibles.

  2. Si un test échoue, assurez-vous que les règles entrantes du groupe de sécurité sont valides.

AWS général

Créez des tâches de migration.

Pour créer une tâche de migration pour le chargement complet et la capture des données modifiées (CDC) ou pour la validation des données, procédez comme suit :

  1. Pour créer une tâche de migration de base de données, choisissez l'instance de réplication, le point de terminaison de la base de données source et le point de terminaison de la base de données cible. Spécifiez le type de migration comme suit :

    • Migrer les données existantes (chargement complet)

    • Répliquer les modifications de données uniquement (CDC)

    • Migrer les données existantes et répliquer les modifications en cours (chargement complet et CDC)

  2. Sous Mappages de tables, vous pouvez configurer les règles de sélection et les règles de transformation au format GUI ou JSON :

    • Sous Règles de sélection, sélectionnez le schéma, entrez le nom de la table et sélectionnez l'action (Inclure ou Exclure) à configurer ; par exemple, Schéma ORCL, nom de table %, Action Include.

    • Sous Règles de transformation, effectuez l'une des opérations suivantes :

      • Sélectionnez le schéma et choisissez l'action (majuscule, préfixe, suffixe) ; par exemple, Target Schema ORCL, Action Make en minuscules.

      • Sélectionnez le schéma, entrez le nom de la table et choisissez l'action (majuscule, préfixe, suffixe) ; par exemple, Target Schema ORCL, Table %, Action Make en minuscules.

  3. Activez la surveillance d'Amazon CloudWatch Logs.

  4. Pour les règles de mappage, ajoutez le code JSON suivant.

    { "rules": [ { "rule-type": "transformation", "rule-id": "1", "rule-name": "1", "rule-target": "table", "object-locator": { "schema-name": "%", "table-name": "%" }, "rule-action": "convert-lowercase", "value": null, "old-value": null }, { "rule-type": "transformation", "rule-id": "2", "rule-name": "2", "rule-target": "schema", "object-locator": { "schema-name": "ORCL", "table-name": "%" }, "rule-action": "convert-lowercase", "value": null, "old-value": null }, { "rule-type": "selection", "rule-id": "3", "rule-name": "3", "object-locator": { "schema-name": "ORCL", "table-name": "DEPT" }, "rule-action": "include", "filters": [] } ] }
AWS général

Planifiez le cycle de production.

Confirmez les interruptions de service auprès des parties prenantes telles que les propriétaires d'applications pour exécuter AWS DMS dans les systèmes de production.

Responsable de la migration

Exécutez la tâche de migration .

  1. Démarrez la tâche AWS DMS dont le statut est Ready et surveillez les journaux des tâches de migration sur Amazon CloudWatch pour détecter toute erreur.

    Si vous avez choisi Migrer les données existantes et répliquer les modifications en cours comme type de migration, et que le statut est Chargement complet de la réplication en cours, le chargement complet avec la migration des données CDC est terminé et la validation est en cours.

  2. Après avoir démarré la migration, vous pouvez obtenir des informations supplémentaires sur la connexion SSL dans. CloudWatch Pour Oracle, CloudWatch affiche la chaîne de connexion suivante.

    2019-12-17T09:15:11 [SOURCE_UNLOAD ]I: Connecting to Oracle: Beginning session (oracle_endpoint_conn.c:834)

    La chaîne de connexion PostgreSQL sera similaire à l'exemple suivant.

    2019-12-17T09:15:11 [TARGET_LOAD ]I: Going to connect to ODBC connection string: PROTOCOL=7.4-0;DRIVER={PostgreSQL};SERVER=mypgdbinstance.cokmvis0v46q.us-east-1.rds.amazonaws.com;DATABASE=pgdb;PORT=5432;sslmode=require;UID=pguser; (odbc_endpoint_imp.c:2218)

AWS général

Validez les données.

Passez en revue les résultats et les données des tâches de migration dans les bases de données Oracle source et PostgreSQL cible :

  1. Connectez-vous à pgAdmin et vérifiez les données de votre base de données PostgreSQL à l'aide du schéma. ORCL

  2. Pour le CDC, vérifiez les modifications en cours en insérant ou en mettant à jour des données dans la base de données Oracle source.

DBA

Arrêtez la tâche de migration.

Une fois la validation des données terminée avec succès, arrêtez la tâche de migration.

AWS général
TâcheDescriptionCompétences requises

Supprimez les tâches AWS DMS.

  1. Sur la console AWS DMS, accédez à Tâches de migration de base de données et arrêtez toute tâche AWS DMS en cours ou en cours d'exécution.

  2. Sélectionnez la ou les tâches, choisissez Actions, puis cliquez sur Supprimer.

AWS général

Supprimez les points de terminaison AWS DMS.

Sélectionnez les points de terminaison source et cible que vous avez créés, choisissez Actions, puis choisissez Supprimer.

AWS général

Supprimez l'instance de réplication AWS DMS.

Choisissez l'instance de réplication, sélectionnez Actions, puis sélectionnez Supprimer.

AWS général

Supprimez la base de données PostgreSQL.

  1. Sur la console Amazon RDS, sélectionnez Databases.

  2. Sélectionnez l'instance de base de données PostgreSQL que vous avez créée, choisissez Actions, puis choisissez Supprimer.

AWS général

Supprimez la base de données Oracle.

Sur la console Amazon RDS, sélectionnez l'instance de base de données Oracle, choisissez Actions, puis choisissez Supprimer.

AWS général

Résolution des problèmes

ProblèmeSolution

Les connexions de test source et cible AWS SCT é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 Oracle échoue.

Vérifiez les paramètres du point de terminaison et vérifiez si l'instance de réplication est disponible.

L'exécution à chargement complet de la tâche AWS DMS échoue.

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

La tâche de migration de validation AWS DMS renvoie des erreurs.

  1. Vérifiez si la table possède une clé primaire. Les tables sans clé primaire ne sont pas validées.

  2. Si la table contient une clé primaire mais renvoie des erreurs, vérifiez l'attribut de connexion supplémentaire dans le point de terminaison source. L'attribut de connexion supplémentaire doit numberDataTypeScale=-2 prendre en charge le type de NUMBER données sans taille de manière dynamique en fonction des données disponibles dans le tableau.

Ressources connexes

Bases de données

Connexion à la base de données SSL

AWS SCT

AWS DMS

Pièces jointes

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