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'Oracle Database vers Amazon RDS pour Oracle avec AWS Schema Conversion Tool
Voici quelques éléments à prendre en compte lors de la migration du schéma et du code Oracle vers Amazon RDS pour Oracle :
-
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 des packages tels que DBMS UTL _ LOBFILE, DBMS FILE _TRANSFER, _ _, l'DATAPUMPutilitaire, etc.
-
AWS SCT prend en charge la conversion des tablespaces Oracle en une instance de base de données Amazon RDS pour 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 AmazonRDS, appeléDBA, autorise normalement tous les privilèges administratifs sur un moteur de base de données Oracle. Les privilèges suivants ne sont pas disponibles pour le DBA rôle sur une RDS instance de base de données Amazon 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 le filtrage avancé et les privilèges de colonne.
-
-
AWS SCT prend en charge la conversion de tâches Oracle en tâches pouvant être exécutées sur Amazon RDS pour 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 ANYDATA données comme argument ne sont pas prises en charge.
-
-
Oracle Real Application Clusters (RAC) One Node est une option de l'édition Oracle Database Enterprise qui a été introduite avec la version 2 d'Oracle Database 11g. Amazon RDS pour Oracle ne prend pas en charge RAC cette fonctionnalité. Pour bénéficier d'une haute disponibilité, utilisez Amazon RDS Multi-AZ.
Dans un déploiement multi-AZ, Amazon provisionne et gère RDS automatiquement une réplique 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é offre la redondance des données, élimine les figements d'E/S et minimise les pics de latence pendant les sauvegardes du système.
-
Oracle Spatial fournit un SQL schéma et des fonctions qui facilitent le stockage, la récupération, la mise à jour et l'interrogation de collections de données spatiales dans une base de données Oracle. Oracle Locator fournit des fonctionnalités qui sont généralement nécessaires pour prendre en charge les applications basées sur Internet et les services sans fil et les solutions basées sur des partenairesGIS. Oracle Locator est un sous-ensemble limité d'Oracle Spatial.
Pour utiliser les fonctionnalités d'Oracle Spatial et d'Oracle Locator, ajoutez l'SPATIALoption ou l'LOCATORoption (mutuellement exclusives) au groupe d'options de votre instance de base de données.
Certaines conditions sont requises 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.
-
L'instance doit se trouver dans un cloud privé virtuel (VPC).
-
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.
-
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 avec la dernière version d'Oracle en PSU cas de failles de sécurité avec un CVSS score de 9 ou plus ou d'autres failles de sécurité annoncées. Pour plus d'informations, veuillez consulter la rubrique
-
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 XMLdonnées Oracle.
-
Vous devez disposer d'une licence Oracle Spatial fournie par Oracle. Pour plus d'informations, consultez Oracle Spatial et Graph
dans la documentation d'Oracle.
-
-
Data Guard est inclus avec Oracle Database Enterprise Edition. Pour une haute disponibilité, utilisez la fonctionnalité Amazon RDS Multi-AZ.
Dans un déploiement multi-AZ, Amazon provisionne et gère RDS automatiquement une réplique 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é offre la redondance des données, élimine les figements d'E/S et minimise les pics de latence pendant les sauvegardes du système.
-
AWS SCT prend en charge la conversion SCHEDULER des objets Oracle DBMS _ lors de la migration vers Amazon RDS pour 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 AmazonRDS, consultez la RDSdocumentation Amazon.
-
Pour les conversions entre Oracle et Amazon RDS pour Oracle, DB Links est 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 SQL les instructions pour faire référence aux tables, aux vues et aux SQL objets PL/ de l'autre base de données. Pour utiliser un lien de base de données, ajoutez-le
@dblink
à la table, à la vue ou au nom de SQL l'objet PL/. Vous pouvez interroger une table ou une vue dans l'autre base de données à l'aide de l'SELECTinstruction. Pour plus d'informations sur l'utilisation des liens de base de données Oracle, consultez la documentation Oracle. Pour plus d'informations sur l'utilisation des liens de base de données avec AmazonRDS, consultez la RDSdocumentation Amazon.
-
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 RDS pour Oracle en tant que cible
Pour migrer vers Amazon RDS pour 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 BYyour_password
; -- System privileges GRANT DROP ANY CUBE BUILD PROCESS TOuser_name
; GRANT ALTER ANY CUBE TOuser_name
; GRANT CREATE ANY CUBE DIMENSION TOuser_name
; GRANT CREATE ANY ASSEMBLY TOuser_name
; GRANT ALTER ANY RULE TOuser_name
; GRANT SELECT ANY DICTIONARY TOuser_name
; GRANT ALTER ANY DIMENSION TOuser_name
; GRANT CREATE ANY DIMENSION TOuser_name
; GRANT ALTER ANY TYPE TOuser_name
; GRANT DROP ANY TRIGGER TOuser_name
; GRANT CREATE ANY VIEW TOuser_name
; GRANT ALTER ANY CUBE BUILD PROCESS TOuser_name
; GRANT CREATE ANY CREDENTIAL TOuser_name
; GRANT DROP ANY CUBE DIMENSION TOuser_name
; GRANT DROP ANY ASSEMBLY TOuser_name
; GRANT DROP ANY PROCEDURE TOuser_name
; GRANT ALTER ANY PROCEDURE TOuser_name
; GRANT ALTER ANY SQL TRANSLATION PROFILE TOuser_name
; GRANT DROP ANY MEASURE FOLDER TOuser_name
; GRANT CREATE ANY MEASURE FOLDER TOuser_name
; GRANT DROP ANY CUBE TOuser_name
; GRANT DROP ANY MINING MODEL TOuser_name
; GRANT CREATE ANY MINING MODEL TOuser_name
; GRANT DROP ANY EDITION TOuser_name
; GRANT CREATE ANY EVALUATION CONTEXT TOuser_name
; GRANT DROP ANY DIMENSION TOuser_name
; GRANT ALTER ANY INDEXTYPE TOuser_name
; GRANT DROP ANY TYPE TOuser_name
; GRANT CREATE ANY PROCEDURE TOuser_name
; GRANT CREATE ANY SQL TRANSLATION PROFILE TOuser_name
; GRANT CREATE ANY CUBE TOuser_name
; GRANT COMMENT ANY MINING MODEL TOuser_name
; GRANT ALTER ANY MINING MODEL TOuser_name
; GRANT DROP ANY SQL PROFILE TOuser_name
; GRANT CREATE ANY JOB TOuser_name
; GRANT DROP ANY EVALUATION CONTEXT TOuser_name
; GRANT ALTER ANY EVALUATION CONTEXT TOuser_name
; GRANT CREATE ANY INDEXTYPE TOuser_name
; GRANT CREATE ANY OPERATOR TOuser_name
; GRANT CREATE ANY TRIGGER TOuser_name
; GRANT DROP ANY ROLE TOuser_name
; GRANT DROP ANY SEQUENCE TOuser_name
; GRANT DROP ANY CLUSTER TOuser_name
; GRANT DROP ANY SQL TRANSLATION PROFILE TOuser_name
; GRANT ALTER ANY ASSEMBLY TOuser_name
; GRANT CREATE ANY RULE SET TOuser_name
; GRANT ALTER ANY OUTLINE TOuser_name
; GRANT UNDER ANY TYPE TOuser_name
; GRANT CREATE ANY TYPE TOuser_name
; GRANT DROP ANY MATERIALIZED VIEW TOuser_name
; GRANT ALTER ANY ROLE TOuser_name
; GRANT DROP ANY VIEW TOuser_name
; GRANT ALTER ANY INDEX TOuser_name
; GRANT COMMENT ANY TABLE TOuser_name
; GRANT CREATE ANY TABLE TOuser_name
; GRANT CREATE USER TOuser_name
; GRANT DROP ANY RULE SET TOuser_name
; GRANT CREATE ANY CONTEXT TOuser_name
; GRANT DROP ANY INDEXTYPE TOuser_name
; GRANT ALTER ANY OPERATOR TOuser_name
; GRANT CREATE ANY MATERIALIZED VIEW TOuser_name
; GRANT ALTER ANY SEQUENCE TOuser_name
; GRANT DROP ANY SYNONYM TOuser_name
; GRANT CREATE ANY SYNONYM TOuser_name
; GRANT DROP USER TOuser_name
; GRANT ALTER ANY MEASURE FOLDER TOuser_name
; GRANT ALTER ANY EDITION TOuser_name
; GRANT DROP ANY RULE TOuser_name
; GRANT CREATE ANY RULE TOuser_name
; GRANT ALTER ANY RULE SET TOuser_name
; GRANT CREATE ANY OUTLINE TOuser_name
; GRANT UNDER ANY TABLE TOuser_name
; GRANT UNDER ANY VIEW TOuser_name
; GRANT DROP ANY DIRECTORY TOuser_name
; GRANT ALTER ANY CLUSTER TOuser_name
; GRANT CREATE ANY CLUSTER TOuser_name
; GRANT ALTER ANY TABLE TOuser_name
; GRANT CREATE ANY CUBE BUILD PROCESS TOuser_name
; GRANT ALTER ANY CUBE DIMENSION TOuser_name
; GRANT CREATE ANY EDITION TOuser_name
; GRANT CREATE ANY SQL PROFILE TOuser_name
; GRANT ALTER ANY SQL PROFILE TOuser_name
; GRANT DROP ANY OUTLINE TOuser_name
; GRANT DROP ANY CONTEXT TOuser_name
; GRANT DROP ANY OPERATOR TOuser_name
; GRANT DROP ANY LIBRARY TOuser_name
; GRANT ALTER ANY LIBRARY TOuser_name
; GRANT CREATE ANY LIBRARY TOuser_name
; GRANT ALTER ANY MATERIALIZED VIEW TOuser_name
; GRANT ALTER ANY TRIGGER TOuser_name
; GRANT CREATE ANY SEQUENCE TOuser_name
; GRANT DROP ANY INDEX TOuser_name
; GRANT CREATE ANY INDEX TOuser_name
; GRANT DROP ANY TABLE TOuser_name
; GRANT SELECT_CATALOG_ROLE TOuser_name
; GRANT SELECT ANY SEQUENCE TOuser_name
; -- Database Links GRANT CREATE DATABASE LINK TOuser_name
; GRANT CREATE PUBLIC DATABASE LINK TOuser_name
; GRANT DROP PUBLIC DATABASE LINK TOuser_name
; -- Server Level Objects (directory) GRANT CREATE ANY DIRECTORY TOuser_name
; GRANT DROP ANY DIRECTORY TOuser_name
; -- (for RDS only) GRANT EXECUTE ON RDSADMIN.RDSADMIN_UTIL TOuser_name
; -- Server Level Objects (tablespace) GRANT CREATE TABLESPACE TOuser_name
; GRANT DROP TABLESPACE TOuser_name
; -- Server Level Objects (user roles) /* (grant source privileges with admin option or convert roles/privs as DBA) */ -- Queues grant execute on DBMS_AQADM touser_name
; grant aq_administrator_role touser_name
; -- for Materialized View Logs creation GRANT SELECT ANY TABLE TOuser_name
; -- Roles GRANT RESOURCE TOuser_name
; GRANT CONNECT TOuser_name
;
Dans l'exemple précédent, remplacez user_name
avec le nom de votre utilisateur. Ensuite, remplacez your_password
avec un mot de passe sécurisé.
Limitations lors de la conversion d'Oracle en Amazon RDS pour Oracle
Voici certaines limites à prendre en compte lors de la migration du schéma et du code Oracle vers Amazon RDS pour Oracle :
Un rôle prédéfini dans AmazonRDS, appeléDBA, autorise normalement tous les privilèges administratifs sur un moteur de base de données Oracle. Les privilèges suivants ne sont pas disponibles pour le DBA rôle sur une RDS instance de base de données Amazon 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 RDS d'utilisateur Oracle.
-
-
Amazon RDS pour Oracle prend en charge l'audit traditionnel, l'audit détaillé à l'aide du FGA package DBMS _ et Oracle Unified Auditing.
-
Amazon RDS pour Oracle ne prend pas en charge la capture des données de modification (CDC). Pour effectuer CDC cette opération pendant et après une migration de base de données, utilisez AWS Database Migration Service.