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.
Migrez une base de données Oracle sur site vers Amazon RDS pour Oracle en utilisant directement Oracle Data Pump Import via un lien de base de données
Créée par Rizwan Wangde () AWS
Environnement : Production | Source : base de données Oracle locale | Cible : Amazon RDS pour Oracle |
Type R : Replateforme | Charge de travail : Oracle | Technologies : migration ; bases de données |
AWSservices : AWS DMS ; AWS Direct Connect ; Amazon RDS |
Récapitulatif
De nombreux modèles couvrent la migration de bases de données Oracle sur site vers Amazon RDS pour Oracle à l'aide d'Oracle Data Pump, un utilitaire Oracle natif qui constitue le moyen préféré pour migrer de grandes charges de travail Oracle. Ces modèles impliquent généralement l'exportation de schémas ou de tables d'application dans des fichiers de vidage, le transfert des fichiers de vidage vers un répertoire de base de données sur Amazon RDS pour Oracle, puis l'importation des schémas d'application et des données à partir des fichiers de vidage.
Avec cette approche, une migration peut prendre plus de temps en fonction de la taille des données et du temps nécessaire pour transférer les fichiers de vidage vers l'RDSinstance Amazon. En outre, les fichiers de vidage se trouvent sur le volume Amazon Elastic Block Store (AmazonEBS) de l'RDSinstance Amazon, qui doit être suffisamment grand pour contenir la base de données et les fichiers de vidage. Lorsque les fichiers de vidage sont supprimés après l'importation, l'espace vide ne peut pas être récupéré. Vous continuez donc à payer pour l'espace inutilisé.
Ce modèle atténue ces problèmes en effectuant une importation directe sur l'RDSinstance Amazon à l'aide d'Oracle Data Pump API (DBMS_DATAPUMP
) sur un lien de base de données. Le modèle lance un pipeline d'exportation et d'importation simultané entre les bases de données source et cible. Ce modèle ne nécessite pas de dimensionner un EBS volume pour les fichiers de vidage car aucun fichier de vidage n'est créé ou stocké sur le volume. Cette approche permet d'économiser le coût mensuel de l'espace disque inutilisé.
Conditions préalables et limitations
Prérequis
Un compte Amazon Web Services (AWS) actif.
Cloud privé virtuel (VPC) configuré avec des sous-réseaux privés répartis sur au moins deux zones de disponibilité, afin de fournir l'infrastructure réseau pour l'RDSinstance Amazon.
Une base de données Oracle dans un centre de données sur site.
Une instance Amazon RDS Oracle
existante dans une seule zone de disponibilité. L'utilisation d'une seule zone de disponibilité améliore les performances d'écriture lors de la migration. Un déploiement multi-AZ peut être activé 24 à 48 heures avant le passage au relais. AWSDirect Connect
(recommandé pour les bases de données de grande taille). Les règles de connectivité réseau et de pare-feu sur site sont configurées pour autoriser une connexion entrante entre l'RDSinstance Amazon et la base de données Oracle sur site.
Limites
La limite de taille de base de données sur Amazon RDS pour Oracle est de 64 TiB (en décembre 2022).
Versions du produit
Base de données source : Oracle Database version 10g version 1 et versions ultérieures.
Base de données cible : pour obtenir la dernière liste des versions et éditions prises en charge sur AmazonRDS, consultez Amazon RDS pour Oracle dans la AWS documentation.
Architecture
Pile technologique source
Base de données Oracle autogérée sur site ou dans le cloud
Pile technologique cible
Amazon RDS pour Oracle
Architecture cible
Le schéma suivant montre l'architecture permettant de migrer d'une base de données Oracle sur site vers Amazon RDS for Oracle dans un environnement mono-AZ. Les flèches indiquent le flux de données dans l'architecture. Le schéma ne montre pas quel composant initie la connexion.
L'instance Amazon RDS pour Oracle se connecte à la base de données Oracle source sur site pour effectuer une migration complète via le lien de base de données.
AWSDMSse connecte à la base de données Oracle source sur site pour effectuer une réplication continue à l'aide de la capture des données de modification (CDC).
CDCles modifications sont appliquées à la base de données Amazon RDS pour Oracle.
Outils
AWSservices
AWSDatabase Migration Service (AWSDMS) vous aide à migrer des banques de données vers le AWS cloud ou entre des combinaisons de configurations cloud et sur site. Ce modèle utilise CDC et le paramètre Répliquer les données change uniquement.
AWSDirect Connect relie votre réseau interne à un emplacement Direct Connect via un câble Ethernet à fibre optique standard. Grâce à cette connexion, vous pouvez créer des interfaces virtuelles directement vers les AWS services publics tout en contournant les fournisseurs de services Internet sur votre chemin réseau.
Amazon Relational Database Service (RDSAmazon) pour Oracle vous aide à configurer, exploiter et dimensionner une base de données relationnelle Oracle dans AWS le cloud.
Autres outils
Oracle Data Pump
vous aide à déplacer des données et des métadonnées d'une base de données à une autre à grande vitesse. Les outils clients tels qu'Oracle Instant Client
ou SQLDeveloper sont utilisés pour se connecter et exécuter SQL des requêtes sur la base de données.
Bonnes pratiques
Bien que AWSDirect Connect
Un réseau privé virtuel (VPN) utilisant Amazon Site-to-Site VPN ou une IPsec VPN connexion entre le réseau local et le AWS réseau
Chiffrement réseau natif de la base de données Oracle
configuré sur la base de données Oracle locale Chiffrement en utilisant TLS
Épopées
Tâche | Description | Compétences requises |
---|---|---|
Configurez la connectivité réseau entre la base de données cible et la base de données source. | Configurez le réseau et le pare-feu sur site pour autoriser la connexion entrante entre l'RDSinstance Amazon cible et la base de données Oracle source sur site. | Administrateur réseau, ingénieur en sécurité |
Créez un utilisateur de base de données doté des privilèges appropriés. | Créez un utilisateur de base de données dans la base de données Oracle source locale avec les privilèges nécessaires pour migrer les données entre la source et la cible à l'aide d'Oracle Data Pump.
| DBA |
Préparez la base de données source locale pour la AWS DMS CDC migration. | (Facultatif) Préparez la base de données Oracle source sur site pour la AWS DMS CDC migration une fois le chargement complet d'Oracle Data Pump terminé :
| DBA |
Installez et configurez SQL Developer. | Installez et configurez SQLDeveloper | DBA, Ingénieur en migration |
Générez un script pour créer les tablespaces. | Utilisez l'exemple de SQL requête suivant pour générer le script dans la base de données source.
Le script sera appliqué à la base de données cible. | DBA |
Générez un script pour créer des utilisateurs, des profils, des rôles et des privilèges. | Pour générer un script permettant de créer les utilisateurs, les profils, les rôles et les privilèges de la base de données, utilisez les scripts du document de support Oracle How to Extract DDL for User including Privileges and Roles Using dbms_metadata.get_ddl (Doc ID 2739952.1) ( Le script sera appliqué à la base de données cible. | DBA |
Tâche | Description | Compétences requises |
---|---|---|
Créez un lien de base de données vers la base de données source et vérifiez la connectivité. | Pour créer un lien de base de données vers la base de données source locale, vous pouvez utiliser l'exemple de commande suivant.
Pour vérifier la connectivité, exécutez la SQL commande suivante.
La connectivité est réussie si la réponse l'est | DBA |
Exécutez les scripts pour préparer l'instance cible. | Exécutez les scripts générés précédemment pour préparer l'instance Amazon RDS pour Oracle cible :
Cela permet de garantir que la migration d'Oracle Data Pump peut créer les schémas et leurs objets. | DBA, Ingénieur en migration |
Tâche | Description | Compétences requises |
---|---|---|
Migrez les schémas requis. | Pour migrer les schémas requis de la base de données source sur site vers l'RDSinstance Amazon cible, utilisez le code de la section Informations supplémentaires :
Pour optimiser les performances de la migration, vous pouvez ajuster le nombre de processus parallèles en exécutant la commande suivante.
| DBA |
Collectez des statistiques de schéma pour améliorer les performances. | La commande Gather Schema Statistics renvoie les statistiques de l'optimiseur de requêtes Oracle collectées pour les objets de base de données. À l'aide de ces informations, l'optimiseur peut sélectionner le meilleur plan d'exécution pour toute requête portant sur ces objets.
| DBA |
Tâche | Description | Compétences requises |
---|---|---|
Capturez SCN la base de données Oracle locale source. | Capturez le numéro de modification du système (SCN) Pour générer le courant dans la SCN base de données source, exécutez l'SQLinstruction suivante.
| DBA |
Effectuez la migration complète des schémas. | Pour migrer les schémas requis (
Dans le code, remplacez-le
Pour optimiser les performances de la migration, vous pouvez ajuster le nombre de processus parallèles.
| DBA |
Désactivez les déclencheurs dans les schémas migrés. | Avant de commencer la tâche AWS DMS CDC -only, désactivez-la | DBA |
Collectez des statistiques de schéma pour améliorer les performances. | La commande Gather Schema Statistics renvoie les statistiques de l'optimiseur de requêtes Oracle collectées pour les objets de base de données. À l'aide de ces informations, l'optimiseur peut sélectionner le meilleur plan d'exécution pour toute requête portant sur ces objets.
| DBA |
AWSDMSÀ utiliser pour effectuer une réplication continue de la source vers la cible. | AWSDMSÀ utiliser pour effectuer une réplication continue de la base de données Oracle source vers l'instance Amazon RDS pour Oracle cible. Pour plus d'informations, consultez la section Création de tâches pour une réplication continue à l'aide AWS DMS et le billet de blog Comment travailler avec le CDC support natif dans AWS DMS | DBA, Ingénieur en migration |
Tâche | Description | Compétences requises |
---|---|---|
Activez le mode Multi-AZ sur l'instance 48 heures avant le passage à une autre instance. | S'il s'agit d'une instance de production, nous recommandons d'activer le déploiement multi-AZ sur l'RDSinstance Amazon afin de bénéficier des avantages de la haute disponibilité (HA) et de la reprise après sinistre (DR). | DBA, Ingénieur en migration |
Arrêtez la tâche AWS DMS CDC -only (si elle CDC a été activée). |
| DBA |
Activez les déclencheurs. | Activez celle TRIGGERS que vous avez désactivée avant la création de la CDC tâche. | DBA |
Ressources connexes
AWS
Documentation Oracle
Informations supplémentaires
Code 1 : migration à chargement complet uniquement, schéma d'application unique
DECLARE v_hdnl NUMBER; BEGIN v_hdnl := DBMS_DATAPUMP.OPEN(operation => 'IMPORT', job_mode => 'SCHEMA', remote_link => '<DB LINK Name to Source Database>', job_name => null); DBMS_DATAPUMP.ADD_FILE( handle => v_hdnl, filename => 'import_01.log', directory => 'DATA_PUMP_DIR', filetype => dbms_datapump.ku$_file_type_log_file); DBMS_DATAPUMP.METADATA_FILTER(v_hdnl,'SCHEMA_EXPR','IN (''<schema_name>'')'); -- To migrate one selected schema DBMS_DATAPUMP.METADATA_FILTER (hdnl, 'EXCLUDE_PATH_EXPR','IN (''STATISTICS'')'); -- To prevent gathering Statistics during the import DBMS_DATAPUMP.SET_PARALLEL (handle => v_hdnl, degree => 4); -- Number of parallel processes performing export and import DBMS_DATAPUMP.START_JOB(v_hdnl); END; /
Code 2 : migration à chargement complet uniquement, schémas d'applications multiples
DECLARE v_hdnl NUMBER; BEGIN v_hdnl := DBMS_DATAPUMP.OPEN(operation => 'IMPORT', job_mode => 'SCHEMA', remote_link => '<DB LINK Name to Source Database>', job_name => null); DBMS_DATAPUMP.ADD_FILE( handle => v_hdnl, filename => 'import_01.log', directory => 'DATA_PUMP_DIR', filetype => dbms_datapump.ku$_file_type_log_file); DBMS_DATAPUMP.METADATA_FILTER (v_hdnl, 'SCHEMA_LIST', '''<SCHEMA_1>'',''<SCHEMA_2>'', ''<SCHEMA_3>'''); -- To migrate multiple schemas DBMS_DATAPUMP.METADATA_FILTER (v_hdnl, 'EXCLUDE_PATH_EXPR','IN (''STATISTICS'')'); -- To prevent gathering Statistics during the import DBMS_DATAPUMP.SET_PARALLEL (handle => v_hdnl, degree => 4); -- Number of parallel processes performing export and import DBMS_DATAPUMP.START_JOB(v_hdnl); END; /
Code 3 : migration à chargement complet avant une tâche CDC uniquement, schéma d'application unique
DECLARE v_hdnl NUMBER; BEGIN v_hdnl := DBMS_DATAPUMP.OPEN(operation => 'IMPORT', job_mode => 'SCHEMA', remote_link => '<DB LINK Name to Source Database>', job_name => null); DBMS_DATAPUMP.ADD_FILE( handle => v_hdnl, filename => 'import_01.log', directory => 'DATA_PUMP_DIR', filetype => dbms_datapump.ku$_file_type_log_file); DBMS_DATAPUMP.METADATA_FILTER(v_hdnl,'SCHEMA_EXPR','IN (''<schema_name>'')'); -- To migrate one selected schema DBMS_DATAPUMP.METADATA_FILTER (v_hdnl, 'EXCLUDE_PATH_EXPR','IN (''STATISTICS'')'); -- To prevent gathering Statistics during the import DBMS_DATAPUMP.SET_PARAMETER (handle => v_hdnl, name => 'FLASHBACK_SCN', value => <CURRENT_SCN_VALUE_IN_SOURCE_DATABASE>); -- SCN required for AWS DMS CDC only task. DBMS_DATAPUMP.SET_PARALLEL (handle => v_hdnl, degree => 4); -- Number of parallel processes performing export and import DBMS_DATAPUMP.START_JOB(v_hdnl); END; /
Code 4 : migration à chargement complet avant une tâche CDC uniquement, plusieurs schémas d'application
DECLARE v_hdnl NUMBER; BEGIN v_hdnl := DBMS_DATAPUMP.OPEN (operation => 'IMPORT', job_mode => 'SCHEMA', remote_link => '<DB LINK Name to Source Database>', job_name => null); DBMS_DATAPUMP.ADD_FILE (handle => v_hdnl, filename => 'import_01.log', directory => 'DATA_PUMP_DIR', filetype => dbms_datapump.ku$_file_type_log_file); DBMS_DATAPUMP.METADATA_FILTER (v_hdnl, 'SCHEMA_LIST', '''<SCHEMA_1>'',''<SCHEMA_2>'', ''<SCHEMA_3>'''); -- To migrate multiple schemas DBMS_DATAPUMP.METADATA_FILTER (v_hdnl, 'EXCLUDE_PATH_EXPR','IN (''STATISTICS'')'); -- To prevent gathering Statistics during the import DBMS_DATAPUMP.SET_PARAMETER (handle => v_hdnl, name => 'FLASHBACK_SCN', value => <CURRENT_SCN_VALUE_IN_SOURCE_DATABASE>); -- SCN required for AWS DMS CDC only task. DBMS_DATAPUMP.SET_PARALLEL (handle => v_hdnl, degree => 4); -- Number of parallel processes performing export and import DBMS_DATAPUMP.START_JOB(v_hdnl); END; /
Scénario dans lequel une approche de migration mixte peut mieux fonctionner
Dans de rares cas où la base de données source contient des tables comportant des millions de lignes et des LOBSEGMENT colonnes de très grande taille, ce schéma ralentira la migration. Oracle effectue la migration LOBSEGMENTs sur le lien réseau un par un. Il extrait une seule ligne (ainsi que les données de LOB colonne) de la table source et insère la ligne dans la table cible, en répétant le processus jusqu'à ce que toutes les lignes soient migrées. Oracle Data Pump via le lien de base de données ne prend pas en charge les mécanismes de chargement groupé ou de chargement par chemin direct pourLOBSEGMENTs.
Dans ce cas, nous recommandons ce qui suit :
Ignorez les tables identifiées lors de la migration d'Oracle Data Pump en ajoutant le filtre de métadonnées suivant.
dbms_datapump.metadata_filter(handle =>h1, name=>'NAME_EXPR', value => 'NOT IN (''TABLE_1'',''TABLE_2'')');
Utilisez une AWS DMS tâche (migration à charge complète, avec CDC réplication si nécessaire) pour migrer les tables identifiées. AWSDMSextraira plusieurs lignes de la base de données Oracle source et les insérera par lots dans l'RDSinstance Amazon cible, ce qui améliore les performances.