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 :
Rubriques
Limites imposées à Oracle en tant que cible pour AWS Database Migration Service
Privilèges de compte d'utilisateur requis pour utiliser Oracle comme cible
Configuration d'une base de données Oracle en tant que cible pour AWS Database Migration Service
Paramètres du point de terminaison lors de l'utilisation d'Oracle comme cible pour AWS DMS
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 load
option 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
<= 999Par 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 '{"
JSON.EndpointSetting"
:
"value"
, ...
}'
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 |
---|---|
|
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 : |
|
Lorsqu'il est défini sur Valeur par défaut : Valeurs valides : Exemple : |
|
Lorsqu'il est défini sur 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 Valeur par défaut : Valeurs valides : Exemple : |
|
Lorsqu'il est défini sur Valeur par défaut : Valeurs valides : Exemple : |
|
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 Valeur par défaut : Non définie sur Valeurs valides : Exemple : |
|
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 : Valeurs valides : Exemple : |
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. |