Sélectionner vos préférences de cookies

Nous utilisons des cookies essentiels et des outils similaires qui sont nécessaires au fonctionnement de notre site et à la fourniture de nos services. Nous utilisons des cookies de performance pour collecter des statistiques anonymes afin de comprendre comment les clients utilisent notre site et d’apporter des améliorations. Les cookies essentiels ne peuvent pas être désactivés, mais vous pouvez cliquer sur « Personnaliser » ou « Refuser » pour refuser les cookies de performance.

Si vous êtes d’accord, AWS et les tiers approuvés utiliseront également des cookies pour fournir des fonctionnalités utiles au site, mémoriser vos préférences et afficher du contenu pertinent, y compris des publicités pertinentes. Pour accepter ou refuser tous les cookies non essentiels, cliquez sur « Accepter » ou « Refuser ». Pour effectuer des choix plus détaillés, cliquez sur « Personnaliser ».

Utilisation d'une base de données Oracle comme cible pour AWS Database Migration Service

Mode de mise au point
Utilisation d'une base de données Oracle comme cible pour AWS Database Migration Service - AWS Service de Migration de Base de Données

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.

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.

Vous pouvez migrer des données vers des cibles de base de données Oracle à l'aide AWS DMS d'une autre base de données Oracle ou de l'une des autres bases de données prises en charge. Vous pouvez utiliser SSL (Secure Sockets Layer) pour chiffrer les connexions entre votre point de terminaison Oracle et l'instance de réplication. Pour plus d'informations sur l'utilisation du protocole SSL avec un point de terminaison Oracle, consultezUtilisation du protocole SSL avec AWS Database Migration Service. AWS DMS prend également en charge l'utilisation du chiffrement transparent des données (TDE) Oracle pour chiffrer les données au repos dans la base de données cible, car Oracle TDE n'a pas besoin de clé de chiffrement ni de mot de passe pour écrire dans la base de données.

Pour plus d'informations sur les versions d'Oracle prises AWS DMS en charge en tant que cible, consultezObjectifs pour AWS DMS.

Quand vous utilisez Oracle comme cible, nous supposons que les données doivent être migrées vers le schéma ou l'utilisateur qui est utilisé pour la connexion cible. Si vous voulez migrer des données vers un autre schéma, utilisez une transformation de schéma pour cela. Par exemple, supposons que votre point de terminaison cible se connecte à l'utilisateur RDSMASTER et que vous souhaitez migrer de l'utilisateur PERFDATA1 vers PERFDATA2. Dans ce cas, créez une transformation comme suit.

{ "rule-type": "transformation", "rule-id": "2", "rule-name": "2", "rule-action": "rename", "rule-target": "schema", "object-locator": { "schema-name": "PERFDATA1" }, "value": "PERFDATA2" }

Lorsque vous utilisez Oracle comme cible, AWS DMS migre toutes les tables et tous les index vers les tablespaces de table et d'index par défaut de la cible. Si vous souhaitez migrer des tables et des index vers des espaces de table et d’index différents, utilisez une transformation d’espace de table. Par exemple, supposons que vous avez dans le schéma INVENTORY un ensemble de tables affectées à certains espaces de table dans la source Oracle. Pour la migration, vous souhaitez affecter toutes ces tables à un espace de tables unique INVENTORYSPACE dans la cible. Dans ce cas, créez une transformation comme suit.

{ "rule-type": "transformation", "rule-id": "3", "rule-name": "3", "rule-action": "rename", "rule-target": "table-tablespace", "object-locator": { "schema-name": "INVENTORY", "table-name": "%", "table-tablespace-name": "%" }, "value": "INVENTORYSPACE" }

Pour plus d'informations sur les transformations, consultez Spécification des règles de sélection de table et de transformation à l’aide de JSON.

Si Oracle est à la fois source et cible, vous pouvez conserver les affectations d'espace de table de table ou d'index existantes en définissant l'attribut de connexion supplémentaire source Oracle, enableHomogenousTablespace=true. Pour plus d’informations, consultez Paramètres du point de terminaison lors de l'utilisation d'Oracle comme source pour AWS DMS.

Pour plus de détails sur l'utilisation des bases de données Oracle en tant que cible pour AWS DMS, consultez les sections suivantes :

Limites imposées à Oracle en tant que cible pour AWS Database Migration Service

Les limitations lors de l'utilisation d'Oracle comme cible pour la migration de données sont les suivantes :

  • AWS DMS ne crée pas de schéma sur la base de données Oracle cible. Vous devez créer les schémas que vous voulez sur la base de données Oracle cible. Le nom du schéma doit déjà exister pour la cible Oracle. Les tables du schéma source sont importées vers l'utilisateur ou le schéma, qui est AWS DMS utilisé pour se connecter à l'instance cible. Vous pouvez créer plusieurs tâches de réplication si vous avez plusieurs schémas à migrer. Vous pouvez également migrer des données vers différents schémas sur une cible. Pour ce faire, vous devez utiliser des règles de transformation de schéma sur les mappages de AWS DMS tables.

  • AWS DMS ne prend pas en charge l'Use direct path full loadoption pour les tables avec INDEXTYPE CONTEXT. Pour contourner ce problème, vous pouvez utiliser le chargement de la grappe.

  • Avec l'option d’application optimisée par lots, le chargement dans la table de modifications nettes utilise un chemin d'accès direct, qui ne prend pas en charge le type XML. Pour contourner ce problème, vous pouvez utiliser le mode d'application transactionnel.

  • Les chaînes vides migrées à partir de bases de données sources peuvent être traitées différemment par la cible Oracle (converties en chaînes d'un espace, par exemple). Cela peut entraîner le signalement d'une non-concordance lors de la AWS DMS validation.

  • Vous pouvez exprimer le nombre total de colonnes par table prises en charge dans le mode d’application par lots optimisée, à l’aide de la formule suivante :

    2 * columns_in_original_table + columns_in_primary_key <= 999

    Par exemple, si la table d’origine comporte 25 colonnes et que sa clé primaire est composée de 5 colonnes, le nombre total de colonnes est de 55. Si un tableau dépasse le nombre de colonnes pris en charge, toutes les modifications sont appliquées en one-by-one mode.

  • AWS DMS ne prend pas en charge la base de données autonome sur Oracle Cloud Infrastructure (OCI).

  • En mode d'application transactionnelle, une cible Oracle peut traiter des instructions DML d'une taille maximale de 32 Ko. Bien que cette limite soit suffisante pour de nombreux cas d'utilisation, les instructions DML supérieures à 32 Ko échoueront avec l'erreur suivante : « ORA-01460 : conversion non implémentée ou déraisonnable demandée ». Pour résoudre ce problème, vous devez activer la fonctionnalité d'application par lots en définissant le paramètre de BatchApplyEnabled tâche surtrue. L'application par lots réduit la taille globale du relevé, ce qui vous permet de contourner la limite de 32 Ko. Pour de plus amples informations, veuillez consulter Paramètres de métadonnées des tâches cibles.

Privilèges de compte d'utilisateur requis pour utiliser Oracle comme cible

Pour utiliser une cible Oracle dans une AWS Database Migration Service tâche, accordez les privilèges suivants dans la base de données Oracle. Vous accordez ces privilèges au compte utilisateur spécifié dans les définitions de la base de données Oracle pour AWS DMS.

  • SELECT ANY TRANSACTION

  • SELECT on V$NLS_PARAMETERS

  • SELECT on V$TIMEZONE_NAMES

  • SELECT on ALL_INDEXES

  • SELECT on ALL_OBJECTS

  • SELECT on DBA_OBJECTS

  • SELECT on ALL_TABLES

  • SELECT on ALL_USERS

  • SELECT on ALL_CATALOG

  • SELECT on ALL_CONSTRAINTS

  • SELECT on ALL_CONS_COLUMNS

  • SELECT on ALL_TAB_COLS

  • SELECT on ALL_IND_COLUMNS

  • DROP ANY TABLE

  • SELECT ANY TABLE

  • INSERT ANY TABLE

  • UPDATE ANY TABLE

  • CREATE ANY VIEW

  • DROP ANY VIEW

  • CREATE ANY PROCEDURE

  • ALTER ANY PROCEDURE

  • DROP ANY PROCEDURE

  • CREATE ANY SEQUENCE

  • ALTER ANY SEQUENCE

  • DROP ANY SEQUENCE

  • DELETE ANY TABLE

Pour les exigences suivantes, accordez ces privilèges supplémentaires :

  • Pour utiliser une liste de tables spécifique, accordez l'autorisation SELECT sur n'importe quelle table répliquée et ALTER sur n'importe quelle table répliquée.

  • Pour permettre à un utilisateur de créer une table dans un espace de table par défaut, accordez-lui le privilège GRANT UNLIMITED TABLESPACE.

  • Pour l'ouverture de session, accordez le privilège CREATE SESSION.

  • Si vous utilisez un chemin direct (qui est le chemin par défaut pour le chargement complet), GRANT LOCK ANY TABLE to dms_user;.

  • Si le schéma est différent lors de l’utilisation du mode de préparation de table « DROP and CREATE », GRANT CREATE ANY INDEX to dms_user;.

  • Pour certains scénarios de chargement complet, vous pouvez choisir l'option « SUPPRIMER et CRÉER une table » ou « TRONQUER avant le chargement » où un schéma de table cible est différent de celui de l'utilisateur DMS. Dans ce cas, accordez SUPPRIMER N'IMPORTE QUELLE TABLE.

  • Pour stocker les modifications dans des tables de modification ou une table d'audit où le schéma de table cible est différent de celui de l'utilisateur DMS, accordez CRÉER N'IMPORTE QUELLE TABLE et CRÉER N'IMPORTE QUEL INDEX.

Privilèges de lecture requis pour AWS Database Migration Service la base de données cible

Le compte AWS DMS utilisateur doit disposer d'autorisations de lecture pour les tables DBA suivantes :

  • SELECT on DBA_USERS

  • SELECT on DBA_TAB_PRIVS

  • SELECT on DBA_OBJECTS

  • SELECT on DBA_SYNONYMS

  • SELECT on DBA_SEQUENCES

  • SELECT on DBA_TYPES

  • SELECT on DBA_INDEXES

  • SELECT on DBA_TABLES

  • SELECT on DBA_TRIGGERS

  • SELECT on SYS.DBA_REGISTRY

Si certains des privilèges requis ne peuvent pas être accordés à V$ xxx, accordez-les à V_$ xxx.

Évaluations de prémigration

Pour utiliser les évaluations de prémigration Évaluations Oracle répertoriées dans Oracle as a Target, vous devez ajouter les autorisations suivantes à l'utilisateur dms_user de la base de données cible :

GRANT SELECT ON V_$INSTANCE TO dms_user; GRANT EXECUTE ON SYS.DBMS_XMLGEN TO dms_user;

Configuration d'une base de données Oracle en tant que cible pour AWS Database Migration Service

Avant d'utiliser une base de données Oracle comme cible de migration de données, vous devez fournir un compte utilisateur Oracle à AWS DMS. Le compte d'utilisateur doit disposer de privilèges de lecture/écriture sur la base de données Oracle, comme indiqué au chapitre Privilèges de compte d'utilisateur requis pour utiliser Oracle comme cible.

Paramètres du point de terminaison lors de l'utilisation d'Oracle comme cible pour AWS DMS

Vous pouvez utiliser des paramètres de point de terminaison pour configurer la base de données cible Oracle comme si vous utilisiez des attributs de connexion supplémentaires. Vous spécifiez les paramètres lorsque vous créez le point de terminaison cible à l'aide de la AWS DMS console ou à l'aide de la create-endpoint commande dans le AWS CLI, avec la syntaxe --oracle-settings '{"EndpointSetting": "value", ...}' JSON.

Les paramètres de point de terminaison que vous pouvez utiliser avec Oracle en tant que cible sont indiqués dans le tableau suivant.

Name (Nom) Description

EscapeCharacter

Définissez cet attribut sur un caractère d’échappement. Ce caractère d’échappement vous permet de faire en sorte qu’un caractère générique unique se comporte comme un caractère normal dans les expressions de mappage de table. Pour de plus amples informations, veuillez consulter Caractères génériques dans le mappage de table.

Valeur par défaut : Null

Valeurs valides : tout caractère autre qu’un caractère générique

Exemple : --oracle-settings '{"EscapeCharacter": "#"}'

UseDirectPathFullLoad

Lorsqu'il est défini surY, AWS DMS utilise un chemin direct pour le chargement complet. Spécifiez cette valeur pour activer le protocole de chemin direct dans Oracle Call Interface (OCI). Ce protocole OCI permet le chargement en bloc des tables cibles Oracle pendant un chargement complet.

Valeur par défaut : true

Valeurs valides : true/false

Exemple : --oracle-settings '{"UseDirectPathFullLoad": false}'

DirectPathParallelLoad

Lorsqu'il est défini sur true, cet attribut spécifie une charge parallèle lorsque la valeur UseDirectPathFullLoad est définie sur Y. Cet attribut ne s'applique également que lorsque vous utilisez la fonction de charge AWS DMS parallèle. Pour de plus amples informations, veuillez consulter l'opération parallel-load dans Règles des paramètres de table et de collection et opérations.

Une limitation de la spécification de ce paramètre de charge parallèle est que la table cible ne peut pas avoir de contraintes ou d'index. Pour de plus amples informations sur cette limitation, veuillez consulter Activation des contraintes après une charge de chemin directe parallèle. Si des contraintes ou des index sont activés, la définition de cet attribut sur true n'a aucun effet.

Valeur par défaut : false

Valeurs valides : true/false

Exemple : --oracle-settings '{"DirectPathParallelLoad": true}'

DirectPathNoLog

Lorsqu'il est défini sur true, cet attribut permet d'augmenter le taux de validation sur la base de données cible Oracle en écrivant directement dans les tables et en n'écrivant pas de trace dans les journaux de base de données. Pour de plus amples informations, veuillez consulter Direct-Load INSERT. Cet attribut s'applique également uniquement lorsque vous définissez UseDirectPathFullLoad sur Y.

Valeur par défaut : false

Valeurs valides : true/false

Exemple : --oracle-settings '{"DirectPathNoLog": true}'

CharLengthSemantics

Spécifie si la longueur d'une colonne de caractères est exprimée en octets ou en caractères. Pour indiquer que la longueur de la colonne de caractères est en caractères, définissez cet attribut sur CHAR. Sinon, la longueur de la colonne de caractères est exprimée en octets.

Valeur par défaut : Non définie sur CHAR

Valeurs valides : CHAR

Exemple : --oracle-settings '{"CharLengthSemantics": "CHAR"}'

AlwaysReplaceEmptyString

AWS DMS ajoute un espace supplémentaire pour répliquer une chaîne vide lors de la migration vers une cible Oracle. En général, Oracle n’a pas de notation pour une chaîne vide. Lorsque vous insérez une chaîne vide au format varchar2, vous chargez des chaînes vides au format NULL. Si vous souhaitez insérer les données au format NULL sur Oracle, définissez cet attribut sur FALSE.

Valeur par défaut : true

Valeurs valides : true/false

Exemple : --oracle-settings '{"AlwaysReplaceEmptyString": false}'

Types de données cibles pour Oracle

Une base de données Oracle cible utilisée AWS DMS prend en charge la plupart des types de données Oracle. Le tableau suivant indique les types de données cibles Oracle pris en charge lors de l'utilisation AWS DMS et le mappage par défaut à partir AWS DMS des types de données. Pour en savoir plus sur la façon d'afficher le type de données qui est mappé à partir de la source, consultez la section correspondant à la source que vous utilisez.

AWS DMS type de données

Type de données Oracle

BOOLEAN

NUMBER (1)

BYTES

RAW (length)

DATE

DATETIME

TIME

TIMESTAMP (0)

DATETIME

TIMESTAMP (scale)

INT1

NUMBER (3)

INT2

NUMBER (5)

INT4

NUMBER (10)

INT8

NUMBER (19)

NUMERIC

NUMBER (p,s)

REAL4

FLOAT

REAL8

FLOAT

CHAÎNE

Avec indication date : DATE

Avec indication time : TIMESTAMP

Avec indication timestamp : TIMESTAMP

Avec indication timestamp_with_timezone : TIMESTAMP WITH TIMEZONE

Avec indication timestamp_with_local_timezone : TIMESTAMP WITH LOCAL TIMEZONE Avec indication interval_year_to_month : INTERVAL YEAR TO MONTH

Avec indication interval_day_to_second : INTERVAL DAY TO SECOND

Si la longueur > 4 000 : CLOB

Dans tous les autres cas : VARCHAR2 (longueur)

UINT1

NUMBER (3)

UINT2

NUMBER (5)

UINT4

NUMBER (10)

UINT8

NUMBER (19)

WSTRING

Si la longueur > 2 000 : NCLOB

Dans tous les autres cas : NVARCHAR2 (longueur)

BLOB

BLOB

Pour utiliser ce type de données avec AWS DMS, vous devez activer l'utilisation de BLOBs pour une tâche spécifique. Les types de données BLOB sont pris en charge uniquement dans les tables qui contiennent une clé primaire

CLOB

CLOB

Pour utiliser ce type de données avec AWS DMS, vous devez activer l'utilisation de CLOBs pour une tâche spécifique. Au cours de la capture des données modifiées (CDC), les types de données CLOB sont pris en charge uniquement dans les tables qui comprennent une clé primaire.

CHAÎNE

Un type de VARCHAR2 données Oracle sur la source dont la taille déclarée est supérieure à 4 000 octets est mappé via le AWS DMS CLOB vers une CHAÎNE sur la cible Oracle.

NCLOB

NCLOB

Pour utiliser ce type de données avec AWS DMS, vous devez activer l'utilisation de NCLOBs pour une tâche spécifique. Au cours de la capture des données modifiées (CDC), les types de données NCLOB sont pris en charge uniquement dans les tables qui contiennent une clé primaire.

WSTRING

Un type de VARCHAR2 données Oracle sur la source dont la taille déclarée est supérieure à 4 000 octets est mappé via le AWS DMS NCLOB vers une chaîne WSTRING sur la cible Oracle.

XMLTYPE

Le type de données cible XMLTYPE n'est pertinent que pour les tâches de Oracle-to-Oracle réplication.

Lorsque la base de données source est Oracle, les types de donnée source sont répliqués en l'état dans la cible Oracle. Par exemple, un type de données XMLTYPE dans la source est créé en tant que type de données XMLTYPE dans la cible.

ConfidentialitéConditions d'utilisation du sitePréférences de cookies
© 2025, Amazon Web Services, Inc. ou ses affiliés. Tous droits réservés.