

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.

# Migration d'une base de données Oracle vers Amazon RDS for Oracle avec AWS Schema Conversion Tool
<a name="CHAP_Source.Oracle.ToRDSOracle"></a>

Éléments à prendre en compte lors de la migration d'un schéma et de code Oracle vers Amazon RDS pourOracle : 
+ AWS SCT peut ajouter des objets de répertoire à l'arborescence des objets. Les *objets de répertoire* sont des structures logiques qui représentent chacune un répertoire physique sur le système de fichiers du serveur. Vous pouvez utiliser des objets de répertoire avec les packages tels que DBMS\_LOB, UTL\_FILE, DBMS\_FILE\_TRANSFER, l'utilitaire DATAPUMP, et ainsi de suite.
+ AWS SCT prend en charge la conversion des tablespaces Oracle en une instance de base de données Amazon RDS for Oracle. Oracle stocke les données logiquement dans les espaces de table et physiquement dans les fichiers de données associés à l'espace de table correspondant. Dans Oracle, vous pouvez créer des espaces de table avec des noms de fichier de données. Amazon RDS prend en charge Oracle Managed Files (OMF) pour les fichiers de données, les fichiers journaux et les fichiers de contrôle uniquement. AWS SCT crée les fichiers de données nécessaires lors de la conversion.
+ AWS SCT peut convertir les rôles et les privilèges au niveau du serveur. Le moteur de base de données Oracle utilise une sécurité basée sur le rôle. Un rôle est un ensemble de privilèges que vous pouvez accorder ou révoquer à un utilisateur. Un rôle prédéfini dans Amazon RDS, appelé DBA, autorise normalement tous les privilèges d'administration sur un moteur de base de données Oracle. Les privilèges suivants ne sont pas disponibles pour le rôle DBA sur une instance de base de données Amazon RDS en utilisant le moteur Oracle :
  + Alter database
  + Alter system
  + Create any directory
  + Grant any privilege
  + Grant any role
  + Create external job

  Vous pouvez accorder tous les autres privilèges à un rôle d'utilisateur Amazon RDS pour Oracle, y compris les privilèges de filtrage avancés et de colonne.
+ AWS SCT prend en charge la conversion de tâches Oracle en tâches pouvant être exécutées sur Amazon RDS for Oracle. Quelques limitations s'appliquent à la conversion, notamment :
  + Les tâches exécutables ne sont pas prises en charge.
  + Les tâches de planification qui utilisent le type de données ANYDATA comme argument ne sont pas prises en charge.
+ Oracle Real Application Clusters (RAC) One Node est une option pour Oracle Database Enterprise Edition qui a été introduite avec Oracle Database 11g version 2. Amazon RDS pour Oracle ne prend pas en charge la fonction RAC. Pour un haut niveau de disponibilité, utilisez multi-AZ Amazon RDS. 

  Dans un déploiement multi-AZ, Amazon RDS fournit et maintient automatiquement un réplica de secours synchrone dans une autre zone de disponibilité. L'instance de base de données principale est répliquée de manière synchrone entre les zones de disponibilité et un réplica de secours. Cette fonctionnalité assure la redondance des données, élimine les I/O blocages et minimise les pics de latence lors des sauvegardes du système.
+ Oracle Spatial fournit un schéma SQL et des fonctions qui facilitent le stockage, la récupération, la mise à jour et la requête de collections de données spatiales dans une base de données Oracle. Oracle Locator fournit des capacités généralement requises pour prendre en charge les applications basées sur des services sans fil et sur Internet, ainsi que les solutions GIS basées sur le partenariat. Oracle Locator est un sous-ensemble limité d'Oracle Spatial.

  Pour utiliser les fonctionnalités Oracle Spatial et Oracle Locator, ajoutez l'option SPATIAL ou LOCATOR (mutuellement exclusives) au groupe d'options de votre instance de base de données.

  Il existe certains prérequis pour utiliser Oracle Spatial et Oracle Locator sur une instance de base de données Amazon RDS pour Oracle :
  + L'instance doit utiliser Oracle Enterprise Edition version 12.1.0.2.v6 ou supérieure, ou 11.2.0.4.v10 ou supérieure.
  + Votre instance doit être dans un VPC (cloud privé virtuel).
  + L'instance doit être la classe d'instance de base de données qui peut prendre en charge la fonctionnalité Oracle. Par exemple, Oracle Spatial n'est pas pris en charge pour les classes d'instance de base de données db.m1.small, db.t1.micro, db.t2.micro ou db.t2.small. Pour plus d'informations, consultez la section [Support des classes d'instance de base de données pour Oracle](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Oracle.html#Oracle.Concepts.InstanceClasses).
  + L'option Mise à niveau automatique de versions mineures doit être activée pour l'instance. Amazon RDS met à jour votre instance de base de données vers le PSU Oracle le plus récent en cas de vulnérabilités de sécurité présentant un score CVSS égal ou supérieur à 9, ou d'autres vulnérabilités de sécurité annoncées. Pour plus d’informations, veuillez consulter la rubrique 

    [Paramètres pour les instances de base de données Oracle](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ModifyInstance.Oracle.html#USER_ModifyInstance.Oracle.Settings).
  + Si votre instance de base de données est de version 11.2.0.4.v10 ou supérieure, vous devez installer l'option XMLDB. Pour plus d’informations, veuillez consulter la rubrique

    Base de [données XML Oracle](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.Oracle.Options.XMLDB.html).
  + Vous devez disposer d'une licence Oracle Spatial fournie par Oracle. Pour plus d'informations, consultez [Oracle Spatial et Graph](https://shop.oracle.com/apex/product?p1=OracleSpatialandGraph) dans la documentation d'Oracle.
+ Data Guard est inclus avec Oracle Database Enterprise Edition. Pour un haut niveau de disponibilité, utilisez la fonction multi-AZ Amazon RDS. 

  Dans un déploiement multi-AZ, Amazon RDS fournit et maintient automatiquement un réplica de secours synchrone dans une autre zone de disponibilité. L'instance de base de données principale est répliquée de manière synchrone entre les zones de disponibilité et un réplica de secours. Cette fonctionnalité assure la redondance des données, élimine les I/O blocages et minimise les pics de latence lors des sauvegardes du système.
+ AWS SCT prend en charge la conversion des objets Oracle DBMS\_SCHEDULER lors de la migration vers Amazon RDS for Oracle. Le rapport AWS SCT d'évaluation indique si un objet de planification peut être converti. Pour plus d'informations sur l'utilisation des objets de planification avec Amazon RDS, consultez la [documentation Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.Oracle.CommonDBATasks.System.html#Appendix.Oracle.CommonDBATasks.ModifyScheduler).
+ Pour les conversions d'Oracle vers Amazon RDS pour Oracle, les liens de base de données sont pris en charge. Un lien de base de données est un objet de schéma dans une base de données qui vous permet d'accéder aux objets d'une autre base de données. L'autre base de données ne doit pas nécessairement être une base de données Oracle. Toutefois, pour accéder aux bases de données autres qu'Oracle, vous devez utiliser Oracle Heterogeneous Services.

  Une fois que vous avez créé un lien de base de données, vous pouvez l'utiliser dans les instructions SQL pour faire référence aux tables, aux vues et aux PL/SQL objets de l'autre base de données. Pour utiliser un lien de base de données, ajoutez-le `@dblink` au nom de la table, de la vue ou de PL/SQL l'objet. Vous pouvez interroger une table ou une vue dans l'autre base de données avec l'instruction SELECT. Pour plus d'informations sur l'utilisation des liens de base de données Oracle, consultez la [documentation Oracle](https://docs.oracle.com/cd/B28359_01/server.111/b28310/ds_concepts002.htm#ADMIN12083).

  Pour plus d'informations sur l'utilisation des liens de base de données avec AMazon RDS, consultez la [documentation Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.Oracle.CommonDBATasks.Database.html#Appendix.Oracle.CommonDBATasks.DBLinks).
+ Le rapport AWS SCT d'évaluation fournit les indicateurs du serveur pour la conversion. Ces metrics sur votre instance Oracle sont les suivantes :
  + Capacité de calcul et de mémoire de l'instance de base de données cible.
  + Fonctionnalités Oracle non prises en charge, telles que Real Application Clusters, qu'Amazon RDS ne prend pas en charge.
  + Charge de travail en lecture/écriture sur disque
  + Total moyen du débit de disque
  + Les informations du serveur telles que le nom du serveur, le nom d'hôte, le système d'exploitation et le jeu de caractères.

## Privilèges accordés à RDS for Oracle en tant que cible
<a name="CHAP_Source.Oracle.ToRDSOracle.ConfigureTarget"></a>

Pour migrer vers Amazon RDS for Oracle, créez un utilisateur de base de données privilégié. Vous pouvez utiliser l'exemple de code suivant.

```
CREATE USER {{user_name}} IDENTIFIED BY {{your_password}};

-- System privileges
GRANT DROP ANY CUBE BUILD PROCESS TO {{user_name}};
GRANT ALTER ANY CUBE TO {{user_name}};
GRANT CREATE ANY CUBE DIMENSION TO {{user_name}};
GRANT CREATE ANY ASSEMBLY TO {{user_name}};
GRANT ALTER ANY RULE TO {{user_name}};
GRANT SELECT ANY DICTIONARY TO {{user_name}};
GRANT ALTER ANY DIMENSION TO {{user_name}};
GRANT CREATE ANY DIMENSION TO {{user_name}};
GRANT ALTER ANY TYPE TO {{user_name}};
GRANT DROP ANY TRIGGER TO {{user_name}};
GRANT CREATE ANY VIEW TO {{user_name}};
GRANT ALTER ANY CUBE BUILD PROCESS TO {{user_name}};
GRANT CREATE ANY CREDENTIAL TO {{user_name}};
GRANT DROP ANY CUBE DIMENSION TO {{user_name}};
GRANT DROP ANY ASSEMBLY TO {{user_name}};
GRANT DROP ANY PROCEDURE TO {{user_name}};
GRANT ALTER ANY PROCEDURE TO {{user_name}};
GRANT ALTER ANY SQL TRANSLATION PROFILE TO {{user_name}};
GRANT DROP ANY MEASURE FOLDER TO {{user_name}};
GRANT CREATE ANY MEASURE FOLDER TO {{user_name}};
GRANT DROP ANY CUBE TO {{user_name}};
GRANT DROP ANY MINING MODEL TO {{user_name}};
GRANT CREATE ANY MINING MODEL TO {{user_name}};
GRANT DROP ANY EDITION TO {{user_name}};
GRANT CREATE ANY EVALUATION CONTEXT TO {{user_name}};
GRANT DROP ANY DIMENSION TO {{user_name}};
GRANT ALTER ANY INDEXTYPE TO {{user_name}};
GRANT DROP ANY TYPE TO {{user_name}};
GRANT CREATE ANY PROCEDURE TO {{user_name}};
GRANT CREATE ANY SQL TRANSLATION PROFILE TO {{user_name}};
GRANT CREATE ANY CUBE TO {{user_name}};
GRANT COMMENT ANY MINING MODEL TO {{user_name}};
GRANT ALTER ANY MINING MODEL TO {{user_name}};
GRANT DROP ANY SQL PROFILE TO {{user_name}};
GRANT CREATE ANY JOB TO {{user_name}};
GRANT DROP ANY EVALUATION CONTEXT TO {{user_name}};
GRANT ALTER ANY EVALUATION CONTEXT TO {{user_name}};
GRANT CREATE ANY INDEXTYPE TO {{user_name}};
GRANT CREATE ANY OPERATOR TO {{user_name}};
GRANT CREATE ANY TRIGGER TO {{user_name}};
GRANT DROP ANY ROLE TO {{user_name}};
GRANT DROP ANY SEQUENCE TO {{user_name}};
GRANT DROP ANY CLUSTER TO {{user_name}};
GRANT DROP ANY SQL TRANSLATION PROFILE TO {{user_name}};
GRANT ALTER ANY ASSEMBLY TO {{user_name}};
GRANT CREATE ANY RULE SET TO {{user_name}};
GRANT ALTER ANY OUTLINE TO {{user_name}};
GRANT UNDER ANY TYPE TO {{user_name}};
GRANT CREATE ANY TYPE TO {{user_name}};
GRANT DROP ANY MATERIALIZED VIEW TO {{user_name}};
GRANT ALTER ANY ROLE TO {{user_name}};
GRANT DROP ANY VIEW TO {{user_name}};
GRANT ALTER ANY INDEX TO {{user_name}};
GRANT COMMENT ANY TABLE TO {{user_name}};
GRANT CREATE ANY TABLE TO {{user_name}};
GRANT CREATE USER TO {{user_name}};
GRANT DROP ANY RULE SET TO {{user_name}};
GRANT CREATE ANY CONTEXT TO {{user_name}};
GRANT DROP ANY INDEXTYPE TO {{user_name}};
GRANT ALTER ANY OPERATOR TO {{user_name}};
GRANT CREATE ANY MATERIALIZED VIEW TO {{user_name}};
GRANT ALTER ANY SEQUENCE TO {{user_name}};
GRANT DROP ANY SYNONYM TO {{user_name}};
GRANT CREATE ANY SYNONYM TO {{user_name}};
GRANT DROP USER TO {{user_name}};
GRANT ALTER ANY MEASURE FOLDER TO {{user_name}};
GRANT ALTER ANY EDITION TO {{user_name}};
GRANT DROP ANY RULE TO {{user_name}};
GRANT CREATE ANY RULE TO {{user_name}};
GRANT ALTER ANY RULE SET TO {{user_name}};
GRANT CREATE ANY OUTLINE TO {{user_name}};
GRANT UNDER ANY TABLE TO {{user_name}};
GRANT UNDER ANY VIEW TO {{user_name}};
GRANT DROP ANY DIRECTORY TO {{user_name}};
GRANT ALTER ANY CLUSTER TO {{user_name}};
GRANT CREATE ANY CLUSTER TO {{user_name}};
GRANT ALTER ANY TABLE TO {{user_name}};
GRANT CREATE ANY CUBE BUILD PROCESS TO {{user_name}};
GRANT ALTER ANY CUBE DIMENSION TO {{user_name}};
GRANT CREATE ANY EDITION TO {{user_name}};
GRANT CREATE ANY SQL PROFILE TO {{user_name}};
GRANT ALTER ANY SQL PROFILE TO {{user_name}};
GRANT DROP ANY OUTLINE TO {{user_name}};
GRANT DROP ANY CONTEXT TO {{user_name}};
GRANT DROP ANY OPERATOR TO {{user_name}};
GRANT DROP ANY LIBRARY TO {{user_name}};
GRANT ALTER ANY LIBRARY TO {{user_name}};
GRANT CREATE ANY LIBRARY TO {{user_name}};
GRANT ALTER ANY MATERIALIZED VIEW TO {{user_name}};
GRANT ALTER ANY TRIGGER TO {{user_name}};
GRANT CREATE ANY SEQUENCE TO {{user_name}};
GRANT DROP ANY INDEX TO {{user_name}};
GRANT CREATE ANY INDEX TO {{user_name}};
GRANT DROP ANY TABLE TO {{user_name}};
GRANT SELECT_CATALOG_ROLE TO {{user_name}};
GRANT SELECT ANY SEQUENCE TO {{user_name}};

-- Database Links
GRANT CREATE DATABASE LINK TO {{user_name}};
GRANT CREATE PUBLIC DATABASE LINK TO {{user_name}};
GRANT DROP PUBLIC DATABASE LINK TO {{user_name}};


-- Server Level Objects (directory)
GRANT CREATE ANY DIRECTORY TO {{user_name}};
GRANT DROP ANY DIRECTORY TO {{user_name}};
-- (for RDS only)
GRANT EXECUTE ON RDSADMIN.RDSADMIN_UTIL TO {{user_name}};

-- Server Level Objects (tablespace)
GRANT CREATE TABLESPACE TO {{user_name}};
GRANT DROP TABLESPACE TO {{user_name}};

-- Server Level Objects (user roles)
/* (grant source privileges with admin option or convert roles/privs as DBA) */

-- Queues
grant execute on DBMS_AQADM to {{user_name}};
grant aq_administrator_role to {{user_name}};

-- for Materialized View Logs creation
GRANT SELECT ANY TABLE TO {{user_name}};

-- Roles
GRANT RESOURCE TO {{user_name}};
GRANT CONNECT TO {{user_name}};
```

Dans l'exemple précédent, remplacez {{user\_name}} par le nom de votre utilisateur. Remplacez-le ensuite {{your\_password}} par un mot de passe sécurisé.

## Limitations lors de la conversion d'Oracle vers Amazon RDS for Oracle
<a name="CHAP_Source.Oracle.ToRDSOracle.Limitations"></a>

Quelques éléments à prendre en compte lors de la migration d'un schéma Oracle et d'un code vers Amazon RDS pour Oracle : 
+  Un rôle prédéfini dans Amazon RDS, appelé DBA, autorise normalement tous les privilèges d'administration sur un moteur de base de données Oracle. Les privilèges suivants ne sont pas disponibles pour le rôle DBA sur une instance de base de données Amazon RDS en utilisant le moteur Oracle :
  + Alter database
  + Alter system
  + Create any directory
  + Grant any privilege
  + Grant any role
  + Create external job

  Vous pouvez accorder tous les autres privilèges à un rôle d'utilisateur Oracle RDS.
+ Amazon RDS for Oracle prend en charge l'audit traditionnel, l'audit détaillé à l'aide du package DBMS\_FGA et Oracle Unified Auditing.
+ Amazon RDS pour Oracle ne prend pas en charge la capture des données modifiées (CDC). Pour effectuer le CDC pendant et après une migration de base de données, utilisez AWS Database Migration Service.