Avant de configurer une tâche Data Transfer Service (DTS) avec une source ou une destination Oracle, procédez comme suit :
Consultez les versions, architectures et limitations prises en charge pour votre environnement Oracle.
Configurez la base de données Oracle — cette étape est requise uniquement pour les tâches incrémentielles avec une source Oracle.
Créez un compte de base de données et accordez les autorisations.
Limitations de la base de données
Oracle auto-géré en tant que source
| Contrainte | Détails |
|---|---|
| Versions prises en charge | 10g, 11g, 12c, 18c, 19c |
| Architectures prises en charge | Nœud unique et Real Application Clusters (RAC). N'ajoutez ni ne supprimez de nœuds d'une base de données RAC pendant l'exécution d'une tâche DTS, sous peine de provoquer l'échec de la tâche.<br><br>Les architectures Container Database (CDB) et non-CDB sont prises en charge à partir de la version 12c. Une tâche ne peut migrer qu'une seule Pluggable Database (PDB). |
| Données prises en charge | Tables courantes, index (y compris les index basés sur des fonctions), types de données et jeux de caractères. Pour les types de données et jeux de caractères pris en charge, consultez l'Annexe.<br><br>Opérations prises en charge : suppression et mise à jour en cascade, opérations DML (Data Manipulation Language) sur les partitions et sous-partitions, analyse des journaux de transactions distribuées, rollbacks complets et partiels de transactions, objets null tels que empty_blob() et empty_clob(), colonnes virtuelles, données avec Hybrid Columnar Compression (HCC), et mappage sensible à la casse pour les noms d'attributs (tables et colonnes).<br><br>Les tâches de migration complète prennent en charge les colonnes invisibles, contrairement aux tâches de synchronisation incrémentielle.<br><br>Les opérations DDL (Data Definition Language) sur les tables partitionnées ne sont pas prises en charge, mais la tâche continue de s'exécuter. |
| Bande passante réseau | 100 Mb/s ou plus |
| Types de connexion | Adresses IP publiques et adresses IP privées.<br><br>Pour RAC : SCAN IP, VIP de nœud unique ou IP physique. Les connexions au SCAN IP d'un nœud RAC via une liaison spécialisée ne sont pas prises en charge.<br><br>Les connexions via des liaisons spécialisées ainsi que les connexions aux bases de données principales et secondaires Active Data Guard (ADG) sont prises en charge.<br> Remarque Si la connexion DTS cible une base de données secondaire ADG et que les fichiers redo en ligne ne sont pas archivés, la tâche DTS subira de la latence.<br><br>Amazon RDS for Oracle est pris en charge en tant que source. |
| Exigences métier | Volume de journaux en pic : inférieur à 1 To. Volume horaire moyen de journaux : inférieur à 50 Go. Trafic en pic : inférieur à 15 Mo/s.<br> Important Par défaut, DTS récupère les journaux de l'ensemble de l'instance de base de données. Un volume élevé de modifications sur des objets hors du périmètre de migration peut également entraîner de la latence.<br><br>Évitez les schémas suivants pour prévenir la latence ou l'échec des tâches :<br>- Mises à jour par lots ou modifications à grande échelle des types de données LOB (CLOB, BLOB, LONG) — exécutez-les plutôt par petits lots<br>- Opérations fréquentes de suppression ou de mise à jour sur des tables sans clés primaires<br>- Plus de 10 instructions DDL par seconde<br>- Transactions uniques générant plus de 100 Go de journaux (provoque l'échec de la tâche) |
Opérations et objets non pris en charge
Les éléments suivants ne sont pas pris en charge lors de l'utilisation d'une base de données Oracle auto-gérée en tant que source :
resetlogs— n'exécutez pas cette commande pendant l'exécution de la tâche (provoque l'échec de la tâche)Opérations DCL
Déclencheurs dans les tâches de synchronisation incrémentielle — désactivez les déclencheurs dans la base de données Oracle de destination
Données avec contraintes de clé étrangère dans les tâches de synchronisation incrémentielle
Données importées via Oracle Data Pump dans les tâches de synchronisation incrémentielle
Objets dont le nom dépasse 30 octets
Opérations
RENAME TABLEconsécutives (provoque l'échec de la tâche)Tables temporaires globales — la tâche se poursuit mais ne migre pas ces tables
Tables comportant des fonctions ou des expressions dans les valeurs par défaut (provoque une incohérence des données)
Tables externes
Colonnes calculées et colonnes chiffrées
Virtual Private Database (VPD)
Jobs créés par
dbms_scheduleroudbms_jobChangements de nom de schéma
Tables imbriquées (provoque l'échec de la tâche)
Vues matérialisées
Opérations DDL sur des attributs dont les noms contiennent des mots-clés ou des caractères spéciaux
Opérations modifiant le ROWID :
split partition,table move,table shrink,move partition key(provoque une incohérence des données ou l'échec de la tâche)Chiffrement SSL pour le transfert de données
Mode Oracle Label Security
Incompatibilité de jeux de caractères :
DTS prend en charge les scénarios où le jeu de caractères d'écriture diffère du jeu de caractères de la base de données. Si tel est le cas, vous devez définir le paramètre Actual Write Code (source.column.encoding).
Tables sans clé primaire ni clé unique :
La migration ou la synchronisation depuis des tables sans clé primaire ni clé unique a deux conséquences : la vitesse d'écriture ralentit, ce qui peut causer de la latence, et la cohérence des données n'est pas garantie — des doublons peuvent apparaître dans la destination.
Pour les tâches incrémentielles : Évitez les rollbacks partiels de transactions volumineuses ainsi que les suppressions par lots au sein de grandes transactions sur la source. Ces opérations peuvent entraîner la perte d'instructions DELETE incrémentielles.
Remarque sur le format des journaux Oracle : Oracle est une base de données commerciale à code fermé. Son format de journal peut présenter des problèmes d'analyse inévitables lors de la capture de données modifiées (CDC). Avant d'activer la synchronisation ou la migration incrémentielle depuis une source Oracle en environnement de production, réalisez un test de validation (POC) complet couvrant tous les types de modifications métier, les changements de schéma et la charge aux heures de pointe. La logique métier de votre environnement de production doit correspondre exactement à ce qui a été testé durant la phase POC.
Impact sur les performances : Lors de la phase de migration complète, DTS consomme des ressources de lecture sur la base de données source — généralement moins de 2 cœurs CPU et 4 Go de mémoire. Exécutez les tâches de migration pendant les heures creuses.
Amazon RDS for Oracle en tant que source
| Contrainte | Détails |
|---|---|
| Versions prises en charge | 10g, 11g, 12c, 18c, 19c |
| Architectures prises en charge | Nœud unique et RAC. Pour les versions 12c, 18c et 19c, seules les architectures non-CDB sont prises en charge. |
| Données prises en charge | Identiques à Oracle auto-géré. Consultez Oracle auto-géré en tant que source. |
| Bande passante réseau | 100 Mb/s ou plus |
| Types de connexion | Adresses IP publiques, adresses IP privées et liaisons spécialisées. Pour RAC : SCAN IP, VIP de nœud unique ou IP physique. Les connexions au SCAN IP d'un nœud RAC via une liaison spécialisée ne sont pas prises en charge.<br><br>Les bases de données principales et secondaires ADG sont prises en charge.<br> Remarque Si la connexion DTS cible une base de données secondaire ADG et que les fichiers redo en ligne ne sont pas archivés, la tâche DTS subira de la latence. |
| Exigences métier | Mêmes seuils que pour Oracle auto-géré : volume de journaux en pic inférieur à 1 To, volume horaire moyen de journaux inférieur à 50 Go, trafic en pic inférieur à 15 Mo/s. Les mêmes limites de fréquence DDL et directives relatives aux types de données LOB s'appliquent. |
Autres limitations |
Les opérations et objets non pris en charge sont identiques à ceux d'Oracle auto-géré. Consultez Opérations et objets non pris en charge. Cela inclut l'obligation de définir le paramètre Actual Write Code (source.column.encoding) si votre jeu de caractères d'écriture diffère du jeu de caractères de la base de données.
Oracle en tant que destination
| Contrainte | Détails |
|---|---|
| Versions prises en charge | 10g, 11g, 12c, 18c, 19c |
| Architectures prises en charge |
Nœud unique et RAC. N'ajoutez ni ne supprimez de nœuds d'une base de données RAC pendant l'exécution d'une tâche DTS. Les architectures CDB et non-CDB sont prises en charge à partir de la version 12c. Une tâche ne peut migrer qu'une seule PDB. |
| Bande passante réseau | 100 Mb/s ou plus |
| Types de connexion |
Adresses IP publiques, adresses IP privées, liaisons spécialisées, ainsi que bases de données principales et secondaires ADG. Pour RAC : SCAN IP, VIP de nœud unique ou IP physique. Les connexions au SCAN IP d'un nœud RAC via une liaison spécialisée ne sont pas prises en charge. Amazon RDS for Oracle est pris en charge en tant que destination. |
Limitations supplémentaires pour les destinations Oracle
Stockage : DTS effectue des opérations INSERT simultanées lors de la migration complète, ce qui peut fragmenter les tables. L'espace de stockage utilisé par la base de données de destination sera donc supérieur à celui de la source après l'achèvement de la tâche.
Gestion de VARCHAR et VARCHAR2 : Oracle traite les chaînes vides de type VARCHAR ou VARCHAR2 comme des valeurs NULL. Lors de la migration depuis une base de données hétérogène vers une destination Oracle, supprimez les contraintes NOT NULL des champs VARCHAR et VARCHAR2 ; sinon, la tâche DTS risque d'échouer.
Les champs VARCHAR et VARCHAR2 peuvent stocker jusqu'à 4000 octets maximum. Si l'écriture de données dans ces types de champs échoue, changez le type de champ en CLOB et redémarrez la tâche DTS.
Impact sur les performances : Durant la phase de migration complète, DTS consomme des ressources réseau et d'écriture sur la destination. Maintenez la charge CPU des bases de données source et destination en dessous de 30 %. Exécutez les tâches de migration pendant les heures creuses.
Configuration de la base de données
Pour les tâches complètes avec une source Oracle, aucune configuration spécifique de la base de données n'est requise.
Pour les tâches incrémentielles avec une source Oracle, activez le mode ARCHIVELOG et la journalisation supplémentaire afin que DTS puisse capturer les modifications en analysant les journaux sources.
Pour les tâches avec une destination Oracle, aucune configuration spécifique de la base de données n'est requise.
Oracle auto-géré en tant que source
Activer le mode ARCHIVELOG
-
Vérifiez si le mode ARCHIVELOG est déjà activé.
La durée de rétention des journaux archivés doit être d'au moins 3 jours.
archive log list;Si Database log mode affiche Archive Mode, le mode ARCHIVELOG est déjà activé. Passez directement à Activer la journalisation supplémentaire.
-
Redémarrez la base de données.
ImportantPour éviter toute interruption de service, effectuez cette étape pendant les heures creuses.
shutdown immediate; startup mount; -
Activez le mode ARCHIVELOG.
alter database archivelog; alter database open; -
Vérifiez la configuration.
archive log list;
Activer la journalisation supplémentaire
DTS prend en charge deux modes de journalisation supplémentaire. Choisissez celui qui correspond à vos besoins :
| Mode | Avantage | Limitation |
|---|---|---|
| Niveau base de données | Améliore la stabilité des tâches DTS | Consomme davantage d'espace disque |
| Niveau table | Économise l'espace disque sur la source | Les tables ajoutées via DDL sans journalisation supplémentaire activée ne sont pas migrées lorsque la granularité de migration est définie au niveau de la base de données |
Activer la journalisation supplémentaire au niveau de la base de données
-
Vérifiez si la journalisation supplémentaire au niveau de la base de données est déjà activée.
SELECT supplemental_log_data_min, supplemental_log_data_pk, supplemental_log_data_ui FROM v$database;Si le résultat correspond à ce qui suit, la journalisation supplémentaire est déjà activée et aucune autre action n'est nécessaire.
SUPPLEME SUP SUP -------- --- --- IMPLICIT YES YES -
Activez la journalisation supplémentaire minimale.
alter database add supplemental log data; -
Activez la journalisation supplémentaire pour les clés primaires et les clés uniques.
alter database add supplemental log data (primary key,unique index) columns; -
Vérifiez la configuration.
SELECT supplemental_log_data_min, supplemental_log_data_pk, supplemental_log_data_ui FROM v$database;
Activer la journalisation supplémentaire au niveau de la table
-
Activez la journalisation supplémentaire minimale.
alter database add supplemental log data; -
Activez la journalisation supplémentaire au niveau de la table. Choisissez l'une des options suivantes selon la structure de la table : Pour les tables avec clé primaire : Activez la journalisation supplémentaire de la clé primaire.
alter table <table_name> add supplemental log data (primary key) columns;Pour les tables sans clé primaire : Activez la journalisation supplémentaire de toutes les colonnes.
alter table <table_name> add supplemental log data (all) columns;
Amazon RDS for Oracle en tant que source
Activer le mode ARCHIVELOG
Consultez et définissez la durée de rétention des journaux archivés. Cette durée doit être d'au moins 72 heures.
exec rdsadmin.rdsadmin_util.show_configuration;
exec rdsadmin.rdsadmin_util.set_configuration('archivelog retention hours', 72);
Activer la journalisation supplémentaire
Les deux mêmes modes s'appliquent comme pour Oracle auto-géré. Reportez-vous au tableau comparatif ci-dessus.
Activer la journalisation supplémentaire au niveau de la base de données
-
Vérifiez si la journalisation supplémentaire au niveau de la base de données est déjà activée.
SELECT supplemental_log_data_min, supplemental_log_data_pk, supplemental_log_data_ui FROM v$database;Si le résultat affiche
IMPLICIT YES YES, la journalisation supplémentaire est déjà activée. -
Activez le mode de journalisation forcée.
exec rdsadmin.rdsadmin_util.force_logging(p_enable => true); -
Activez la journalisation supplémentaire pour les clés primaires et les clés uniques.
exec rdsadmin.rdsadmin_util.alter_supplemental_logging('ADD', 'PRIMARY KEY'); exec rdsadmin.rdsadmin_util.alter_supplemental_logging('ADD', 'UNIQUE');
Activer la journalisation supplémentaire au niveau de la table
-
Activez la journalisation supplémentaire de toutes les colonnes.
exec rdsadmin.rdsadmin_util.alter_supplemental_logging('ADD', 'ALL'); -
Activez la journalisation supplémentaire de la clé primaire.
exec rdsadmin.rdsadmin_util.alter_supplemental_logging('ADD', 'PRIMARY KEY');
Préparation du compte de base de données
Oracle en tant que source
Créez un compte de base de données et accordez les autorisations nécessaires à DTS pour collecter les données. Les autorisations requises dépendent du type de tâche :
| Type de tâche | Option d'autorisation |
|---|---|
| Tâches de schéma et complètes | Rôle DBA ou autorisations granulaires |
| Tâches incrémentielles | Autorisations granulaires requises |
Pour les tâches incrémentielles depuis une source Oracle non-CDB, vous pouvez également accorder le rôle DBA au lieu des autorisations granulaires.
Accorder le rôle DBA
-- Create the account and grant permissions
create user rdsdt_dtsacct identified by rdsdt_dtsacct;
grant create session to rdsdt_dtsacct;
grant connect to rdsdt_dtsacct;
grant dba to rdsdt_dtsacct;
-- Verify the permissions
select * from user_tab_privs;
select granted_role from user_role_privs;
Autorisations granulaires pour les tâches de schéma et complètes
-- Create the account and grant permissions
create user rdsdt_dtsacct identified by rdsdt_dtsacct;
grant create session to rdsdt_dtsacct;
grant connect to rdsdt_dtsacct;
grant select_catalog_role to rdsdt_dtsacct;
grant select any table to rdsdt_dtsacct;
-- Verify the permissions
select * from user_role_privs;
select * from user_sys_privs;
Autorisations granulaires pour les tâches incrémentielles
Accordez les autorisations en fonction de votre version d'Oracle.
Oracle 10g et 11g
-- Create the account and grant permissions
create user rdsdt_dtsacct identified by rdsdt_dtsacct;
grant create session to rdsdt_dtsacct;
grant connect to rdsdt_dtsacct;
grant select_catalog_role to rdsdt_dtsacct;
grant select any table to rdsdt_dtsacct;
grant select any transaction to rdsdt_dtsacct;
grant select on all_objects to rdsdt_dtsacct;
grant select on all_tab_cols to rdsdt_dtsacct;
grant select on dba_registry to rdsdt_dtsacct;
grant execute on sys.dbms_logmnr to rdsdt_dtsacct;
grant select on v_$log to rdsdt_dtsacct;
grant select on v_$logfile to rdsdt_dtsacct;
grant select on v_$standby_log to rdsdt_dtsacct;
-- Grant v_$standby_log if the Oracle database is an ADG secondary database
grant select on v_$archived_log to rdsdt_dtsacct;
grant select on v_$parameter to rdsdt_dtsacct;
grant select on v_$database to rdsdt_dtsacct;
grant select on v_$active_instances to rdsdt_dtsacct;
grant select on v_$instance to rdsdt_dtsacct;
grant select on v_$logmnr_contents to rdsdt_dtsacct;
grant select on sys.USER$ to rdsdt_dtsacct;
grant select on sys.OBJ$ to rdsdt_dtsacct;
grant select on sys.COL$ to rdsdt_dtsacct;
grant select on sys.IND$ to rdsdt_dtsacct;
grant select on sys.ICOL$ to rdsdt_dtsacct;
grant select on sys.CDEF$ to rdsdt_dtsacct;
grant select on sys.CCOL$ to rdsdt_dtsacct;
grant select on sys.TABPART$ to rdsdt_dtsacct;
grant select on sys.TABSUBPART$ to rdsdt_dtsacct;
grant select on sys.TABCOMPART$ to rdsdt_dtsacct;
-- Verify the permissions
select * from user_role_privs;
select * from user_sys_privs;
select * from user_tab_privs;
Oracle 12c à 19c (non-CDB)
-- Create the account and grant permissions
create user rdsdt_dtsacct IDENTIFIED BY rdsdt_dtsacct;
grant create session to rdsdt_dtsacct;
grant connect to rdsdt_dtsacct;
grant select_catalog_role to rdsdt_dtsacct;
grant logmining to rdsdt_dtsacct;
grant execute_catalog_role to rdsdt_dtsacct;
grant select any table to rdsdt_dtsacct;
grant select any transaction to rdsdt_dtsacct;
grant select on all_objects to rdsdt_dtsacct;
grant select on all_tab_cols to rdsdt_dtsacct;
grant select on dba_registry to rdsdt_dtsacct;
grant execute on sys.dbms_logmnr to rdsdt_dtsacct;
grant select on v_$log to rdsdt_dtsacct;
grant select on v_$logfile to rdsdt_dtsacct;
grant select on v_$standby_log to rdsdt_dtsacct;
-- Grant v_$standby_log if the Oracle database is an ADG secondary database
grant select on v_$archived_log to rdsdt_dtsacct;
grant select on v_$parameter to rdsdt_dtsacct;
grant select on v_$database to rdsdt_dtsacct;
grant select on v_$active_instances to rdsdt_dtsacct;
grant select on v_$instance to rdsdt_dtsacct;
grant select on v_$logmnr_contents to rdsdt_dtsacct;
grant select on sys.USER$ to rdsdt_dtsacct;
grant select on sys.OBJ$ to rdsdt_dtsacct;
grant select on sys.COL$ to rdsdt_dtsacct;
grant select on sys.IND$ to rdsdt_dtsacct;
grant select on sys.ICOL$ to rdsdt_dtsacct;
grant select on sys.CDEF$ to rdsdt_dtsacct;
grant select on sys.CCOL$ to rdsdt_dtsacct;
grant select on sys.TABPART$ to rdsdt_dtsacct;
grant select on sys.TABSUBPART$ to rdsdt_dtsacct;
grant select on sys.TABCOMPART$ to rdsdt_dtsacct;
-- Verify the permissions
select * from user_role_privs;
select * from user_sys_privs;
select * from user_tab_privs;
Oracle 12c à 19c (CDB)
Le nom du compte dans la base de données pluggable (PDB) doit correspondre au nom du compte dans CDB$ROOT, à l'exclusion du préfixe C## pour les utilisateurs communs.
-- Step 1: Switch to the PDB, create the account, and grant permissions
alter session set container = ORCLPDB1;
create user rdsdt_dtsacct identified by rdsdt_dtsacct;
grant create session to rdsdt_dtsacct;
grant connect to rdsdt_dtsacct;
grant select_catalog_role to rdsdt_dtsacct;
grant logmining TO rdsdt_dtsacct;
grant execute_catalog_role to rdsdt_dtsacct;
grant select any table to rdsdt_dtsacct;
grant select any transaction to rdsdt_dtsacct;
grant select on all_objects to rdsdt_dtsacct;
grant select on all_tab_cols to rdsdt_dtsacct;
grant select on dba_registry to rdsdt_dtsacct;
grant execute on sys.dbms_logmnr to rdsdt_dtsacct;
grant select on v_$pdbs to rdsdt_dtsacct;
grant select on v_$log to rdsdt_dtsacct;
grant select on v_$logfile to rdsdt_dtsacct;
grant select on v_$standby_log to rdsdt_dtsacct;
-- Grant v_$standby_log if the Oracle database is an ADG secondary database
grant select on v_$archived_log to rdsdt_dtsacct;
grant select on v_$parameter to rdsdt_dtsacct;
grant select on v_$database to rdsdt_dtsacct;
grant select on v_$active_instances to rdsdt_dtsacct;
grant select on v_$instance to rdsdt_dtsacct;
grant select on v_$logmnr_contents to rdsdt_dtsacct;
grant select on sys.USER$ to rdsdt_dtsacct;
grant select on sys.OBJ$ to rdsdt_dtsacct;
grant select on sys.COL$ to rdsdt_dtsacct;
grant select on sys.IND$ to rdsdt_dtsacct;
grant select on sys.ICOL$ to rdsdt_dtsacct;
grant select on sys.CDEF$ to rdsdt_dtsacct;
grant select on sys.CCOL$ to rdsdt_dtsacct;
grant select on sys.TABPART$ to rdsdt_dtsacct;
grant select on sys.TABSUBPART$ to rdsdt_dtsacct;
grant select on sys.TABCOMPART$ to rdsdt_dtsacct;
-- Step 2: Switch to CDB$ROOT and create the CDB-level account
alter session set container = CDB$ROOT;
-- This method requires modifying a default Oracle database parameter
alter session set "_ORACLE_SCRIPT"=true;
create user rdsdt_dtsacct identified by rdsdt_dtsacct;
grant create session to rdsdt_dtsacct;
grant connect to rdsdt_dtsacct;
grant logmining to rdsdt_dtsacct;
grant execute_catalog_role to rdsdt_dtsacct;
grant select on v_$logmnr_contents to rdsdt_dtsacct;
grant execute on sys.dbms_logmnr to rdsdt_dtsacct;
-- Verify the permissions
select * from user_role_privs;
select * from user_sys_privs;
select * from user_tab_privs;
Amazon RDS for Oracle (non-CDB)
Utilisez Oracle SQL Developer pour accorder les autorisations.
-- Create the account and grant permissions
create user rdsdt_dtsacct identified by rdsdt_dtsacct;
grant create session to rdsdt_dtsacct;
grant connect to rdsdt_dtsacct;
grant logmining to rdsdt_dtsacct;
grant execute_catalog_role to rdsdt_dtsacct;
grant select any table to rdsdt_dtsacct;
grant select any transaction to rdsdt_dtsacct;
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$LOGMNR_LOGS','RDSDT_DTSACCT','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('ALL_OBJECTS','RDSDT_DTSACCT','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('ALL_TAB_COLS','RDSDT_DTSACCT','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_REGISTRY','RDSDT_DTSACCT','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$LOG','RDSDT_DTSACCT','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$LOGFILE','RDSDT_DTSACCT','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$ARCHIVED_LOG','RDSDT_DTSACCT','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$PARAMETER','RDSDT_DTSACCT','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$DATABASE','RDSDT_DTSACCT','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$ACTIVE_INSTANCES','RDSDT_DTSACCT','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$INSTANCE','RDSDT_DTSACCT','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$LOGMNR_CONTENTS','RDSDT_DTSACCT','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_LOGMNR','RDSDT_DTSACCT','EXECUTE');
exec rdsadmin.rdsadmin_util.grant_sys_object('USER$','RDSDT_DTSACCT','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('OBJ$','RDSDT_DTSACCT','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('COL$','RDSDT_DTSACCT','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('IND$','RDSDT_DTSACCT','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('ICOL$','RDSDT_DTSACCT','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('CDEF$','RDSDT_DTSACCT','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('CCOL$','RDSDT_DTSACCT','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('TABPART$','RDSDT_DTSACCT','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('TABSUBPART$','RDSDT_DTSACCT','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('TABCOMPART$','RDSDT_DTSACCT','SELECT');
-- Verify the permissions
select * from user_role_privs;
select * from user_sys_privs;
select * from user_tab_privs;
Oracle en tant que destination
Créez un compte de base de données et accordez les autorisations dont DTS a besoin pour écrire des données. Le rôle requis dépend du type de tâche :
| Type de tâche | Rôle requis |
|---|---|
| Tâches de schéma | Rôle DBA |
| Tâches complètes et incrémentielles | Rôle resource |
Accorder le rôle DBA
-- Create the account and grant permissions
create user rdsdt_dtsacct identified by rdsdt_dtsacct;
grant create session to rdsdt_dtsacct;
grant connect to rdsdt_dtsacct;
grant dba to rdsdt_dtsacct;
-- Verify the permissions
select * from user_tab_privs;
select granted_role from user_role_privs;
Accorder le rôle resource
-- Create the account and grant permissions
create user rdsdt_dtsacct identified by rdsdt_dtsacct;
grant create session to rdsdt_dtsacct;
grant connect to rdsdt_dtsacct;
grant resource to rdsdt_dtsacct;
-- Verify the permissions
select * from user_tab_privs;
select granted_role from user_role_privs;
Étapes suivantes
Configurez une tâche DTS avec une source ou une destination Oracle. Consultez les rubriques de configuration pertinentes dans Solutions de synchronisation ou Solutions de migration.
Annexe
Types de données
| Pris en charge | Non pris en charge | ||
|---|---|---|---|
| NUMBER, FLOAT, REAL, BINARY_FLOAT, CHAR [(size [BYTE \ | CHAR])], NCHAR[(size)], VARCHAR2(size [BYTE \ |
CHAR]), NVARCHAR2(size), CLOB, NCLOB, LONG, DATE, RAW(size), LONG_RAW, BLOB, TIMESTAMP[fractional_seconds_precision], TIMESTAMP [(fractional_seconds_precision)] WITH TIME ZONE, TIMESTAMP [(fractional_seconds_precision)] WITH LOCAL TIME ZONE, INTERVAL YEAR [(year_precision)] TO MONTH, INTERVAL DAY [(day_precision)] TO SECOND [(fractional_seconds_precision)] XMLTYPE : le mode de stockage CLOB est pris en charge. Le mode de stockage BLOB n'est pas pris en charge. |
SDO_GEOMETRY, SDO_TOPO_GEOMETRY, SDO_GEORASTER, ROWID, UROWID, ANYTYPE, ANYDATA, ANYDATASET, VARRAY, types définis par l'utilisateur |
Jeux de caractères
| Pris en charge | Non pris en charge |
|---|---|
| ASCII, ISO, UNICODE, US7ASCII, WE8HP, US8PC437, WE8EBCDIC285, WE8PC850, D7DEC, F7DEC, S7DEC, E7DEC, SF7ASCII, NDK7DEC, I7DEC, NL7DEC, CH7DEC, YUG7ASCII, SF7DEC, TR7DEC, IW7IS960, IN8ISCII, EE8ISO8859P2, SE8ISO8859P3, NEE8ISO8859P4, CL8ISO8859P5, AR8ISO8859P6, EL8ISO8859P7, IW8ISO8859P8, WE8ISO8859P9, NE8ISO8859P10, TH8TISASCII, BN8BSCII, VN8VN3, VN8MSWIN1258, WE8NEXTSTEP, AR8ASMO708PLUS, AR8EBCDICX, AR8XBASIC, EL8DEC, TR8DEC, WE8EBCDIC37, WE8EBCDIC37C, WE8EBCDIC500, WE8EBCDIC500C, WE8EBCDIC871, WE8EBCDIC284, EEC8EUROASCI, EEC8EUROPA3, LA8PASSPORT, BG8PC437S, EE8PC852, RU8PC866, RU8BESTA, IW8PC1507, RU8PC855, TR8PC857, CL8MACCYRILLIC, CL8MACCYRILLICS, WE8PC860, IS8PC861, EE8MSWIN1250, CL8MSWIN1251, ET8MSWIN923, BG8MSWIN, EL8MSWIN1253, IW8MSWIN1255, LT8MSWIN921, TR8MSWIN1254, WE8MSWIN1252, BLT8MSWIN1257, D8EBCDIC273, I8EBCDIC280, DK8EBCDIC277, S8EBCDIC278, F8EBCDIC297, IW8EBCDIC1086, N8PC865, BLT8CP921, LV8PC1117, LV8PC8LR, LV8RST104090, CL8KOI8R, BLT8PC775, F7SIEMENS9780X, E7SIEMENS9780X, S7SIEMENS9780X, DK7SIEMENS9780X, N7SIEMENS9780X, I7SIEMENS9780X, D7SIEMENS9780X, WE8GCOS7, EL8GCOS7, US8BS2000, D8BS2000, F8BS2000, E8BS2000, DK8BS2000, S8BS2000, WE8BS2000, WE8BS2000L5, CL8BS2000, WE8DG, WE8NCR4970, WE8ROMAN8, EE8MACCE, EE8MACCES, EE8MACCROATIAN, EE8MACCROATIANS, TR8MACTURKISH, TR8MACTURKISHS, IS8MACICELANDIC, IS8MACICELANDICS, EL8MACGREEK, EL8MACGREEKS, IW8MACHEBREW, IW8MACHEBREWS, US8ICL, WE8ICL, WE8ISOICLUK, WE8MACROMAN8, WE8MACROMAN8S, TH8MACTHAI, TH8MACTHAIS, HU8CWI2, EL8PC437S, EL8PC737, LT8PC772, LT8PC774, EL8PC869, EL8PC851, CDN8PC863, HU8ABMOD, AR8ASMO8X, AR8HPARABIC8T, AR8NAFITHA711, AR8NAFITHA711T, AR8SAKHR707, AR8SAKHR707T, AR8MUSSAD768, AR8MUSSAD768T, AR8ADOS710, AR8ADOS710T, AR8ADOS720, AR8ADOS720T, AR8APTEC715, AR8APTEC715T, AR8MSAWIN, AR8NAFITHA721, AR8NAFITHA721T, AR8SAKHR706, AR8ARABICMAC, AR8ARABICMACS, AR8ARABICMACT, LA8ISO6937, US8NOOP, WE8DEC, WE8DECTST, JA16VMS, JA16EUC, JA16EUCYEN, JA16EUCTILDE, JA16DBCS, JA16SJIS, JA16SJISTILDE, JA16SJISYEN, JA16EBCDIC930, JA16MACSJIS, KO16KSC5601, KO16DBCS, KO16KSCCS, KO16MSWIN949, ZHS16CGB231280, ZHS16MACCGB231280, ZHS16GBK, ZHS16DBCS, ZHS32GB18030, ZHT32EUC, ZHT32SOPS, ZHT16DBT, ZHT32TRIS, ZHT16DBCS, ZHT16BIG5, ZHT16CCDC, ZHT16MSWIN950, AL24UTFFSS, UTF8, UTFE, KO16TSTSET, JA16TSTSET2, JA16TSTSET, US16TSTFIXED, AL16UTF16LE, TH8TISEBCDIC, TH8TISEBCDICS, BLT8EBCDIC1112, BLT8EBCDIC1112S, CE8BS2000, CL8EBCDIC1025, CL8EBCDIC1025C, CL8EBCDIC1025R, CL8EBCDIC1025S, CL8EBCDIC1025X, CL8EBCDIC1158, CL8EBCDIC1158R, D8EBCDIC1141, DK8EBCDIC1142, EE8BS2000, EE8EBCDIC870, EE8EBCDIC870C, EE8EBCDIC870S, EL8EBCDIC423R, EL8EBCDIC875, EL8EBCDIC875S, EL8EBCDIC875R, F8EBCDIC1147, I8EBCDIC1144, WE8BS2000E, WE8EBCDIC1047, WE8EBCDIC1047E, WE8EBCDIC1140, WE8EBCDIC1140C, WE8EBCDIC1145, WE8EBCDIC1146, WE8EBCDIC1148, WE8EBCDIC1148C, AR8EBCDIC420S, IW8EBCDIC424, IW8EBCDIC424S, TR8EBCDIC1026, TR8EBCDIC1026S, ZHT16HKSCS, ZHT16HKSCS31, BLT8ISO8859P13, WE8ISO8859P1, WE8ISO8859P15, AR8MSWIN1256, S8EBCDIC1143, AZ8ISO8859P9E, CEL8ISO8859P14, CL8ISOIR111, CL8KOI8U, WE8PC858, WE8EBCDIC924, AL32UTF8, AL16UTF16 | Autres jeux de caractères |