

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 d'Oracle 8i ou 9i vers Amazon RDS for PostgreSQL à l'aide de vues matérialisées et d'AWS DMS
<a name="migrate-from-oracle-8i-or-9i-to-amazon-rds-for-postgresql-using-materialized-views-and-aws-dms"></a>

*Kumar Babu PG et Pragnesh Patel, Amazon Web Services*

## Résumé
<a name="migrate-from-oracle-8i-or-9i-to-amazon-rds-for-postgresql-using-materialized-views-and-aws-dms-summary"></a>

Ce modèle décrit comment migrer une ancienne base de données Oracle 8i ou 9i sur site vers Amazon Relational Database Service (Amazon RDS) pour PostgreSQL ou Amazon Aurora PostgreSQL compatible Edition. 

AWS Database Migration Service (AWS DMS) ne prend pas en charge Oracle 8i ou 9i en tant que source. Ce modèle utilise donc une instance de base de données Oracle intermédiaire compatible avec AWS DMS, telle qu'Oracle 10g ou 11g. Il utilise également la fonctionnalité de vues matérialisées pour migrer les données de l'instance Oracle 8i/9i source vers l'instance Oracle 10g/11g intermédiaire.

AWS Schema Conversion Tool (AWS SCT) convertit le schéma de base de données et AWS DMS migre les données vers la base de données PostgreSQL cible. 

Ce modèle aide les utilisateurs qui souhaitent migrer à partir de bases de données Oracle existantes avec un temps d'arrêt minimal des bases de données. Dans cette implémentation, le temps d'arrêt serait limité au temps nécessaire pour créer ou valider toutes les clés étrangères, tous les déclencheurs et toutes les séquences sur la base de données cible. 

Le modèle utilise des instances Amazon Elastic Compute Cloud (Amazon EC2) avec une base de données Oracle 10g/11g installée pour aider AWS DMS à diffuser les données. Vous pouvez suspendre temporairement la réplication en continu depuis la base de données Oracle sur site vers l'instance Oracle intermédiaire afin de permettre à AWS DMS de rattraper son retard en matière de validation des données ou d'utiliser un autre outil de validation des données. L'instance de base de données PostgreSQL et la base de données Oracle intermédiaire disposeront des mêmes données lorsque AWS DMS aura terminé la migration des modifications en cours.

## Conditions préalables et limitations
<a name="migrate-from-oracle-8i-or-9i-to-amazon-rds-for-postgresql-using-materialized-views-and-aws-dms-prereqs"></a>

**Conditions préalables**
+ Un compte AWS actif
+ Une base de données Oracle 8i ou 9i source dans un centre de données sur site 
+ AWS Direct Connect configuré entre le centre de données sur site et AWS
+ Pilotes de connectivité de base de données Java (JDBC) pour les connecteurs AWS SCT installés soit sur une machine locale, soit sur l'instance EC2 où AWS SCT est installé
+ Connaissance de [l'utilisation d'une base de données Oracle en tant que source AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html)
+ Connaissance de [l'utilisation d'une base de données PostgreSQL en tant que cible](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.PostgreSQL.html) AWS DMS

**Limites**
+ La limite de taille de base de données est de 64 To

**Versions du produit**
+ Oracle 8i ou 9i pour la base de données source
+ Oracle 10g ou 11g pour la base de données intermédiaire
+ PostgreSQL 10.17 ou version ultérieure

## Architecture
<a name="migrate-from-oracle-8i-or-9i-to-amazon-rds-for-postgresql-using-materialized-views-and-aws-dms-architecture"></a>

**Pile technologique source**
+ Base de données Oracle 8i ou 9i 

**Pile technologique cible**
+ Compatible avec Amazon RDS for PostgreSQL ou Aurora PostgreSQL

**Architecture cible**

![Architecture pour la migration d'une ancienne base de données Oracle vers Amazon RDS ou Aurora](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/8add9b21-1b62-46a2-bb8e-0350f36a924a/images/f34f9b0f-f1da-4c27-a385-71b12d16c375.png)


## Outils
<a name="migrate-from-oracle-8i-or-9i-to-amazon-rds-for-postgresql-using-materialized-views-and-aws-dms-tools"></a>
+ [AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.html) permet de migrer les bases de données rapidement et en toute sécurité. La base de données source reste pleinement opérationnelle pendant la migration, minimisant ainsi les interruptions de service pour les applications qui dépendent de la base de données. AWS DMS peut migrer vos données vers et depuis les bases de données commerciales et open source les plus utilisées. 
+ [AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) convertit automatiquement le schéma de base de données source et la majorité des objets du code de base de données, y compris les vues, les procédures stockées et les fonctions, dans un format compatible avec la base de données cible. Les objets qui ne peuvent pas être convertis automatiquement sont clairement marqués afin de pouvoir être convertis manuellement pour terminer la migration. AWS SCT peut également scanner le code source de votre application à la recherche d'instructions SQL intégrées et les convertir dans le cadre d'un projet de conversion de schéma de base de données. Au cours de ce processus, AWS SCT optimise le code natif du cloud en convertissant les anciennes fonctions Oracle et SQL Server en leurs équivalents AWS, afin de vous aider à moderniser vos applications lors de la migration de vos bases de données. Lorsque la conversion du schéma est terminée, AWS SCT peut aider à migrer les données de différents entrepôts de données vers Amazon Redshift en utilisant des agents de migration de données intégrés.  

## Bonnes pratiques
<a name="migrate-from-oracle-8i-or-9i-to-amazon-rds-for-postgresql-using-materialized-views-and-aws-dms-best-practices"></a>

Pour connaître les meilleures pratiques relatives à l'actualisation des vues matérialisées, consultez la documentation Oracle suivante :
+ [Actualisation des vues matérialisées](https://docs.oracle.com/database/121/DWHSG/refresh.htm#DWHSG-GUID-64068234-BDB0-4C12-AE70-75571046A586)
+ [Actualisation rapide pour les vues matérialisées](https://docs.oracle.com/database/121/DWHSG/refresh.htm#DWHSG8361)

## Épopées
<a name="migrate-from-oracle-8i-or-9i-to-amazon-rds-for-postgresql-using-materialized-views-and-aws-dms-epics"></a>

### Installez Oracle sur une EC2 instance et créez des vues matérialisées
<a name="install-oracle-on-an-ec2-instance-and-create-materialized-views"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Configurez le réseau pour l' EC2 instance. | Créez le cloud privé virtuel (VPC), les sous-réseaux, la passerelle Internet, les tables de routage et les groupes de sécurité. | AWS SysAdmin | 
| Créez l' EC2 instance. | Sélectionnez l'Amazon Machine Image (AMI) pour l' EC2 instance. Choisissez la taille de l'instance et configurez les détails de l'instance : le nombre d'instances (1), le VPC et le sous-réseau de l'étape précédente, l'attribution automatique d'une adresse IP publique et d'autres options. Ajoutez du stockage, configurez les groupes de sécurité et lancez l'instance. Lorsque vous y êtes invité, créez et enregistrez une paire de clés pour l'étape suivante. | AWS SysAdmin | 
| Installez Oracle sur l' EC2 instance. | Procurez-vous les licences et les fichiers binaires Oracle requis, puis installez Oracle 10g ou 11g sur l'instance. EC2  | DBA | 
| Configurez le réseau Oracle. | Modifiez ou ajoutez des entrées `listener.ora` pour vous connecter à la base de données source Oracle 8i/9i locale, puis créez les liens de base de données. | DBA | 
| Créez des vues matérialisées. | Identifiez les objets de base de données à répliquer dans la base de données Oracle 8i/9i source, puis créez des vues matérialisées pour tous les objets à l'aide du lien de base de données. | DBA | 
| Déployez des scripts pour actualiser les vues matérialisées aux intervalles requis. | Développez et déployez des scripts pour actualiser les vues matérialisées aux intervalles requis sur l'instance Amazon EC2 Oracle 10g/11g. Utilisez l'option d'actualisation incrémentielle pour actualiser les vues matérialisées. | DBA | 

### Convertir le schéma de base de données Oracle en PostgreSQL
<a name="convert-the-oracle-database-schema-to-postgresql"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Configurez AWS SCT. | Créez un nouveau rapport, puis connectez-vous à Oracle en tant que source et à PostgreSQL en tant que cible. Dans les paramètres du projet, ouvrez l'onglet **SQL Scripting**. Modifiez le script SQL cible en **plusieurs fichiers**. (AWS SCT ne prend pas en charge les bases de données Oracle 8i/9i. Vous devez donc restaurer le dump basé uniquement sur le schéma sur l'instance Oracle 10g/11g intermédiaire et l'utiliser comme source pour AWS SCT.) | DBA | 
| Convertissez le schéma de base de données Oracle. | Dans l'onglet **Action**, choisissez **Générer le rapport**, **Convertir le schéma**, puis **Enregistrer en tant que SQL**. | DBA | 
| Modifiez les scripts SQL. | Apportez des modifications conformément aux meilleures pratiques. Par exemple, passez aux types de données appropriés et développez des équivalents PostgreSQL pour les fonctions spécifiques à Oracle. | DBA, DevDBA | 

### Création et configuration de l'instance de base de données Amazon RDS pour héberger la base de données convertie
<a name="create-and-configure-the-amazon-rds-db-instance-to-host-the-converted-database"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez l'instance de base de données Amazon RDS. | Dans la console Amazon RDS, créez une nouvelle instance de base de données PostgreSQL. | AWS SysAdmin, ADMINISTRATEUR DE BASE DE DONNÉES | 
| Configurez l'instance de base de données. | Spécifiez la version du moteur de base de données, la classe d'instance de base de données, le déploiement multi-AZ, le type de stockage et le stockage alloué. Entrez l'identifiant de l'instance de base de données, un nom d'utilisateur principal et un mot de passe principal. | AWS SysAdmin, ADMINISTRATEUR DE BASE DE DONNÉES | 
| Configurez le réseau et la sécurité. | Spécifiez le VPC, le groupe de sous-réseaux, l'accessibilité publique, la préférence de zone de disponibilité et les groupes de sécurité. | DBA, SysAdmin | 
| Configurez les options de base de données | Spécifiez le nom de la base de données, le port, le groupe de paramètres, le chiffrement et la clé principale. | ADMINISTRATEUR DE BASES DE DONNÉES, AWS SysAdmin | 
| Configurez des sauvegardes. | Spécifiez la période de conservation des sauvegardes, la fenêtre de sauvegarde, l'heure de début, la durée et indiquez s'il faut copier les balises dans les instantanés. | AWS SysAdmin, ADMINISTRATEUR DE BASE DE DONNÉES | 
| Configurez les options de surveillance. | Activez ou désactivez la surveillance améliorée et les informations sur les performances. | AWS SysAdmin, ADMINISTRATEUR DE BASE DE DONNÉES | 
| Configurez les options de maintenance. | Spécifiez la mise à niveau automatique de la version mineure, la fenêtre de maintenance, ainsi que le jour, l'heure et la durée de début. | AWS SysAdmin, ADMINISTRATEUR DE BASE DE DONNÉES | 
| Exécutez les scripts de pré-migration depuis AWS SCT. | Sur l'instance Amazon RDS for PostgreSQL cible, créez le schéma de base de données en utilisant les scripts SQL d'AWS SCT avec d'autres modifications. Cela peut inclure l'exécution de plusieurs scripts, notamment la création d'utilisateurs, la création de bases de données, la création de schémas, de tables, de vues, de fonctions et d'autres objets de code. | AWS SysAdmin, ADMINISTRATEUR DE BASE DE DONNÉES | 

### Migrer les données à l'aide d'AWS DMS
<a name="migrate-data-by-using-aws-dms"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez une instance de réplication dans AWS DMS. | Renseignez les champs relatifs au nom, à la classe d'instance, au VPC (comme pour l' EC2 instance), au Multi-AZ et à l'accessibilité publique. Dans la section de configuration avancée, spécifiez le stockage alloué, le groupe de sous-réseaux, la zone de disponibilité, les groupes de sécurité VPC et la clé AWS Key Management Service (AWS KMS). | AWS SysAdmin, ADMINISTRATEUR DE BASE DE DONNÉES | 
| Créez le point de terminaison de la base de données source. | Spécifiez le nom du point de terminaison, le type, le moteur source (Oracle), le nom du serveur (nom DNS privé de l' EC2 instance), le port, le mode SSL, le nom d'utilisateur, le mot de passe, le SID, le VPC (spécifiez le VPC qui possède l'instance de réplication) et l'instance de réplication. Pour tester la connexion, choisissez **Run Test**, puis créez le point de terminaison. Vous pouvez également configurer les paramètres avancés suivants : **maxFileSize**et **numberDataTypeScale**. | AWS SysAdmin, ADMINISTRATEUR DE BASE DE DONNÉES | 
| Connectez AWS DMS à Amazon RDS pour PostgreSQL. | Créez un groupe de sécurité de migration pour les connexions entre celles-ci VPCs, si votre base de données PostgreSQL se trouve dans un autre VPC. | AWS SysAdmin, ADMINISTRATEUR DE BASE DE DONNÉES | 
| Créez le point de terminaison de base de données cible. | Spécifiez le nom du point de terminaison, le type, le moteur source (PostgreSQL), le nom du serveur (point de terminaison Amazon RDS), le port, le mode SSL, le nom d'utilisateur, le mot de passe, le nom de la base de données, le VPC (spécifiez le VPC qui possède l'instance de réplication) et l'instance de réplication. Pour tester la connexion, choisissez **Run Test**, puis créez le point de terminaison. Vous pouvez également configurer les paramètres avancés suivants : **maxFileSize**et **numberDataTypeScale**. | AWS SysAdmin, ADMINISTRATEUR DE BASE DE DONNÉES | 
| Créez la tâche de réplication AWS DMS. | Spécifiez le nom de la tâche, l'instance de réplication, les points de terminaison source et cible, ainsi que l'instance de réplication. Pour le type de migration, choisissez **Migrer les données existantes et répliquer les modifications en cours**. Désactivez la case à cocher **Démarrer la tâche lors de la création**. | AWS SysAdmin, ADMINISTRATEUR DE BASE DE DONNÉES | 
| Configurez les paramètres des tâches de réplication AWS DMS. | Pour le mode de préparation de la table cible, choisissez **Ne rien faire**. Arrêtez la tâche une fois le chargement complet terminé (pour créer des clés primaires). Spécifiez le mode LOB limité ou complet et activez les tables de contrôle. Vous pouvez éventuellement configurer le paramètre **CommitRate**avancé. | DBA | 
| Configurez les mappages de tables. | Dans la section **Mappages de tables**, créez une règle d'inclusion pour toutes les tables de tous les schémas inclus dans la migration, puis créez une règle d'exclusion. Ajoutez trois règles de transformation pour convertir les noms de schéma, de table et de colonne en minuscules, et ajoutez toutes les autres règles dont vous avez besoin pour cette migration spécifique. | DBA | 
| Démarrez la tâche . | Lancez la tâche de réplication. Assurez-vous que le chargement complet est en cours. Exécutez `ALTER SYSTEM SWITCH LOGFILE` sur la base de données Oracle principale pour démarrer la tâche. | DBA | 
| Exécutez les scripts de mi-migration depuis AWS SCT. | Dans Amazon RDS for PostgreSQL, exécutez les `create_index.sql` scripts suivants `create_constraint.sql` : et (si le schéma complet n'a pas été créé initialement). | DBA | 
| Reprenez la tâche pour continuer la saisie des données de modification (CDC). | Exécutez `VACUUM` sur l'instance de base de données Amazon RDS for PostgreSQL et redémarrez la tâche AWS DMS pour appliquer les modifications CDC mises en cache. | DBA | 

### Passez à la base de données PostgreSQL
<a name="cut-over-to-the-postgresql-database"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Consultez les journaux et les tables de validation d'AWS DMS. | Vérifiez et corrigez les erreurs de réplication ou de validation. | DBA | 
| Arrêtez d'utiliser la base de données Oracle locale et ses dépendances. | Arrêtez toutes les dépendances Oracle, arrêtez les écouteurs de la base de données Oracle et exécutez`ALTER SYSTEM SWITCH LOGFILE`. Arrêtez la tâche AWS DMS lorsqu'elle ne montre aucune activité. | DBA | 
| Exécutez les scripts de post-migration depuis AWS SCT. | Dans Amazon RDS for PostgreSQL, exécutez les scripts suivants :. `create_foreign_key_constraint.sql and create_triggers.sql` Assurez-vous que les séquences sont à jour. | DBA | 
| Effectuez les étapes supplémentaires relatives à Amazon RDS for PostgreSQL. | Incrémentez les séquences pour qu'elles correspondent à Oracle si nécessaire, `ANALYZE` exécutez-les `VACUUM` et prenez un instantané pour garantir la conformité. | DBA | 
| Ouvrez les connexions à Amazon RDS for PostgreSQL. | Supprimez les groupes de sécurité AWS DMS d'Amazon RDS for PostgreSQL, ajoutez des groupes de sécurité de production et dirigez vos applications vers la nouvelle base de données. | DBA | 
| Nettoyez les objets AWS DMS. | Supprimez les points de terminaison, les tâches de réplication, les instances de réplication et l' EC2 instance. | SysAdmin, DBA | 

## Ressources connexes
<a name="migrate-from-oracle-8i-or-9i-to-amazon-rds-for-postgresql-using-materialized-views-and-aws-dms-resources"></a>
+ [Documentation AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.html)
+ [Documentation AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html)
+ [Tarification d'Amazon RDS for PostgreSQL](https://aws.amazon.com/rds/postgresql/pricing/)
+ [Utilisation d'une base de données Oracle comme source pour AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html)
+ [Utilisation d'une base de données PostgreSQL comme cible pour AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.PostgreSQL.html)