Migrer des données avec DBMS_CLOUD_IMPORT
DBMS_CLOUD_IMPORT vous permet d'importer des données à partir de bases de données Oracle et non Oracle dans Oracle Autonomous AI Database à l'aide d'une approche simple et cohérente.
- Migration des données avec DBMS_CLOUD_IMPORT
Lorsque vous travaillez sur plusieurs systèmes de base de données, le déplacement de données peut être complexe en raison des différences entre les technologies, les formats et les outils.DBMS_CLOUD_IMPORTsimplifie ce processus en fournissant une approche unifiée pour importer des données entre les plates-formes, éliminant ainsi la nécessité de gérer plusieurs outils ou workflows. - Prérequis
Répertorie les prérequis pour l'exécution de l'import dans la base de données Autonomous AI. - Import de données à l'aide de DBMS_CLOUD_IMPORT
Décrit comment importer des données dans la base de données Autonomous AI à l'aide deDBMS_CLOUD_IMPORT. - Surveillance et diagnostic de l'import hétérogène
Pour diagnostiquer les problèmes et surveiller la progression des opérations d'import de données, vous pouvez interroger les vues suivantes du dictionnaire de données. Ces vues fournissent des informations détaillées sur le statut des tâches, la progression de l'exécution, les opérations parallèles et les objets associés.
Rubrique parent : Migration vers une base de données d'IA autonome
Migrer des données avec DBMS_CLOUD_IMPORT
Lorsque vous travaillez sur plusieurs systèmes de base de données, le déplacement de données peut être complexe en raison de différences dans les technologies, les formats et les outils. DBMS_CLOUD_IMPORT simplifie ce processus en fournissant une approche unifiée pour importer des données entre les plates-formes, éliminant ainsi la nécessité de gérer plusieurs outils ou workflows.
DBMS_CLOUD_IMPORT prend également en charge le transfert de données hautes performances et fiable. Le processus d'import utilise l'exécution parallèle pour améliorer le débit. Si un import est interrompu, par exemple lors d'une maintenance ou d'une perte de connexion à la base de données source, il reprend automatiquement à partir de l'endroit où il s'est arrêté, ce qui garantit son exécution sans avoir à relancer l'import.
Vous pouvez importer des données à partir de bases de données Oracle et de bases de données non Oracle prises en charge, notamment MySQL, PostgreSQL et Amazon Redshift. Pour les sources Oracle, les données et les objets de base de données sont importés. Pour les sources non Oracle, l'import se concentre sur le déplacement de données avec conversion automatique des types de données vers des formats compatibles Oracle.
Cette fonctionnalité prend en charge l'importation flexible de données. Vous pouvez importer une base de données entière ou un sous-ensemble de données, tels que des schémas ou des tables sélectionnés, en fonction de vos besoins. Oracle fournit également des vues de dictionnaire de données pour surveiller la progression et le statut de l'importation.
Principaux avantages
- Importation de données unifiées sur différentes plates-formes : importez des données à partir de bases de données Oracle et non Oracle sans utiliser plusieurs outils.
- Transfert de données hautes performances : déplacement de grands volumes de données à l'aide d'une exécution en parallèle.
- Résilience intégrée : reprenez automatiquement les opérations d'import après les interruptions, y compris la maintenance ou la perte de connexion à la base de données source.
- Sélection flexible des données : importez une base de données complète ou un sous-ensemble de données, y compris des schémas ou des tables spécifiques.
Pour plus d'informations, reportez-vous à :
Rubrique parent : Migration de données avec DBMS_CLOUD_IMPORT
Prérequis
Répertorie les prérequis pour l'exécution de l'import dans la base de données Autonomous AI.
Avant de commencer l'import, assurez-vous que les prérequis suivants sont respectés.
-
Vous devez être connecté en tant qu'utilisateur
ADMIN. -
Les sous-programmes
DBMS_CLOUD_IMPORTaccèdent à la base de données source à l'aide d'un lien de base de données créé implicitement dans le cadre de la tâche d'import. Pour établir cette connexion, vous devez créer un objet d'informations d'identification avec les informations d'identification de la base de données distante et le référencer lors de la création de la tâche d'import. Pour plus d'informations, reportez-vous à Procédure CREATE_CREDENTIAL. -
Pour les bases de données source non Oracle, indiquez
longtovarchar => 'true'dans le paramètregateway_paramslors de l'appel deDBMS_CLOUD_IMPORT.CREATE_IMPORT_TASK. Cette opération est requise car les métadonnées des bases de données non Oracle sont composées de colonnesLONG. Par exemple :gateway_params => JSON_OBJECT('db_type' VALUE <db_type>, 'longtovarchar' VALUE 'true'). -
Assurez-vous que la base de données indiquée par
service_namepeut se connecter au schéma cible et y accéder. -
Les travaux d'importation reprennent à partir du point d'interruption, par exemple après un événement de maintenance planifié ou une interruption inattendue. Le traitement parallèle et la reprise automatique sont pris en charge pour les bases de données source Oracle, MySQL, PostgreSQL et Amazon Redshift. Pour les bases de données non source Oracle, les prérequis suivants sont requis pour activer le traitement parallèle et la reprise automatique (des prérequis supplémentaires peuvent s'appliquer en fonction du type de base de données source) :
-
La table source est partitionnée par plage.
-
Des statistiques d'histogramme existent pour au moins une colonne numérique.
-
Un index numérique ou une clé primaire est présent.
-
Si ces prérequis ne sont pas satisfaits, la table est copiée à l'aide de CREATE TABLE AS SELECT (CTAS). Dans ce cas, le traitement parallèle n'est pas pris en charge et, si le travail est interrompu, il redémarre à partir du début de la table au lieu de reprendre à partir du point d'interruption.
Des prérequis supplémentaires peuvent être requis pour prendre en charge le traitement parallèle et la possibilité de redémarrer de manière fiable, en fonction du type de base de données source. Pour plus d'informations, reportez-vous aux rubriques suivantes :
- Base de données source PostgreSQL
- Créez les vues requises sur la base de données PostgreSQL source. Pour prendre en charge le traitement parallèle et la possibilité de redémarrer de manière fiable lors de la migration à partir de PostgreSQL, créez les vues requises sur la base de données source. Si les vues ne sont pas présentes, l'import utilise
CREATE TABLE AS SELECT(CTAS). Dans ce mode, le traitement parallèle n'est pas pris en charge et, si un chargement de table est interrompu, il redémarre depuis le début. Pour plus d'informations, reportez-vous à CREATE TABLE AS SELECT. - Vous pouvez créer ces vues à l'aide des scripts fournis par Oracle disponibles sur GitHub. Vérifiez et exécutez les scripts sur la base de données PostgreSQL source avant de lancer l'import.
- Créez les vues requises sur la base de données PostgreSQL source. Pour prendre en charge le traitement parallèle et la possibilité de redémarrer de manière fiable lors de la migration à partir de PostgreSQL, créez les vues requises sur la base de données source. Si les vues ne sont pas présentes, l'import utilise
Pour plus d'informations, reportez-vous à la documentation PostgreSQL 18.3.
- Base de données source MySQL
-
schema_listn'est pas pris en charge pour les sources MySQL car MySQL n'utilise pas de schémas. Lorsque vous appelezREATE_IMPORT_TASK, indiquez un tableau vide pourschema_list([]). -
La valeur que vous indiquez pour
service_nameest utilisée comme nom de schéma. -
Créez les vues requises sur la base de données MySQL source. Pour prendre en charge le traitement parallèle et la possibilité de redémarrer de manière fiable lors de la migration à partir de MySQL, créez les vues requises sur la base de données source. Si les vues ne sont pas présentes, l'import utilise
CREATE TABLE AS SELECT (CTAS). Dans ce mode, le traitement parallèle n'est pas pris en charge et, si un chargement de table est interrompu, il redémarre depuis le début. Pour plus d'informations, reportez-vous à CREATE TABLE AS SELECT. -
Vous pouvez créer ces vues à l'aide des scripts fournis par Oracle disponibles sur Github. Vérifiez et exécutez les scripts sur la base de données MySQL source avant de lancer l'import.
-
Pour plus d'informations, reportez-vous à Référence MySQL.
- Base de données source Amazon Redshift
-
Accordez des privilèges pour l'accès aux liens de base de données. Pour lire des données à partir de tables distantes, vous devez vous assurer que le compte que vous utilisez pour créer le lien de base de données dispose des privilèges requis, par exemple :
-
GRANT USAGE ON SCHEMA <remote_schema> TO <dblink_user>; -
GRANT SELECT ON <remote_schema>.<remote_table> TO <dblink_user>;
-
-
Garantir la visibilité des métadonnées pour les schémas non-
public. Si le schéma distant n'est paspublicet que l'import doit interroger les métadonnées (par exemple, viapg_table_def), vous devez inclure le schéma dans le fichiersearch_pathde l'utilisateur de lien de base de données, par exemple :-
ALTER USER <dblink_user> SET search_path TO <new_value>;
-
-
Pour plus d'informations, reportez-vous à la documentation Amazon Redshift.
Rubrique parent : Migration de données avec DBMS_CLOUD_IMPORT
Importer des données à l'aide de DBMS_CLOUD_IMPORT
Explique comment importer des données dans la base de données d'IA autonome à l'aide de DBMS_CLOUD_IMPORT.
Pour importer des données dans une base de données Autonomous AI, utilisez la procédure DBMS_CLOUD_IMPORT.CREATE_IMPORT_TASK. Cette procédure vous permet d'importer des données à partir de bases de données Oracle et non Oracle prises en charge en indiquant les détails de connexion requis et, éventuellement, les objets à importer.
Vous pouvez importer une base de données entière ou un sous-ensemble de données, tels que des schémas ou des tables spécifiques, en indiquant des paramètres tels que schema_list ou table_list. Lorsque vous exécutez cette procédure, Oracle Database crée un travail Oracle Scheduler pour gérer la tâche d'import. Le travail utilise les informations d'identification et les détails de connexion fournis pour créer un lien de base de données vers la base de données source et transférer des données vers la base de données Autonomous AI.
Le comportement de l'import dépend du type de base de données source :
- Importations Oracle vers Oracle : les données et les objets de base de données sont migrés. Les index, les contraintes et les partitions sont automatiquement créés dans la base de données Autonomous AI cible. Si l'importation est interrompue (par exemple en raison d'une maintenance), elle reprend à partir du point d'interruption.
- Imports à partir de bases de données non Oracle : seules les données sont migrées. Les clés, les index, les contraintes et les autres objets dépendants ne sont pas créés. Les partitions sont créées uniquement si la table source est partitionnée par plage. La capacité de reprise dépend des prérequis ; sinon, l'import redémarre depuis le début.
Vous devez exécuter l'import en tant qu'utilisateur ADMIN. La base de données Autonomous AI cible reste disponible pendant l'import. Cependant, Oracle recommande d'éviter toute autre activité sur la base de données cible jusqu'à la fin de l'import. Si un travail d'import est interrompu (par exemple, en raison d'une maintenance planifiée ou d'une interruption inattendue), il peut reprendre à partir du point d'interruption ou de redémarrage, selon le type de base de données source et si les prérequis sont satisfaits. Vous pouvez également utiliser Suspendre et reprendre pour suspendre temporairement le travail, puis le poursuivre.
- Création d'une tâche d'import
Décrit les étapes de création d'une tâche d'import. - Suspendre et reprendre l'importation
Décrit comment suspendre et reprendre une opération d'importation. - Surveillance de la progression de l'importation
Après le démarrage d'une tâche d'importation, le travail du planificateur s'exécute en arrière-plan et les enregistrements de la base de données Autonomous AI progressent aux niveaux tâche et table. - Suppression d'une tâche d'import
Décrit les étapes permettant de supprimer une tâche d'import.
Rubrique parent : Migration de données avec DBMS_CLOUD_IMPORT
Créer une tâche d'importation
Décrit les étapes de création d'une tâche d'importation.
Avant de créer et de démarrer la tâche d'import, configurez l'authentification sur la base de données source. DBMS_CLOUD_IMPORT utilise un objet d'informations d'identification pour se connecter en toute sécurité à la source (et pour créer le lien de base de données requis pour la tâche).
Pour créer une tâche d'importation, procédez comme suit :
Pour plus d'informations, reportez-vous à :
Rubrique parent : Importer des données à l'aide de DBMS_CLOUD_IMPORT
Suspendre et reprendre l'importation
Explique comment suspendre et reprendre une opération d'importation.
Si nécessaire, vous pouvez mettre temporairement l'import en pause à l'aide de la procédure SUSPEND_IMPORT_TASK :
BEGIN
DBMS_CLOUD_IMPORT.SUSPEND_IMPORT_TASK(
task_name => 'orcl_import_job'
);
END;
/Cela arrête le travail du planificateur tout en conservant toutes les métadonnées et la progression. Pour plus d'informations, reportez-vous à Procédure SUSPEND_IMPORT_TASK.
Pour poursuivre l'import, utilisez la procédure RESUME_IMPORT_TASK :
BEGIN
DBMS_CLOUD_IMPORT.RESUME_IMPORT_TASK(
task_name => 'orcl_import_job'
);
END;
/Le travail reprend à partir du dernier point de reprise, en ignorant les tables terminées et en continuant le travail restant.
Le comportement de reprise dépend du type de base de données source et des prérequis. Lorsque les conditions préalables au traitement parallèle et à la reprise automatique sont remplies, l'importation se poursuit à partir du point d'interruption. Sinon, l'import utilise
CREATE TABLE AS SELECT (CTAS). Dans ce mode, le traitement parallèle n'est pas pris en charge et, si le travail est interrompu, il redémarre à partir du début de la table.
Pour plus d'informations, reportez-vous à Procédure RESUME_IMPORT_TASK.
Rubrique parent : Importer des données à l'aide de DBMS_CLOUD_IMPORT
Surveiller la progression de l'importation
Une fois que vous avez démarré une tâche d'importation, le travail du planificateur s'exécute en arrière-plan et les enregistrements de la base de données Autonomous AI progressent aux niveaux tâche et table.
- DBA_DATA_IMPORT_TASK_STATUS : affiche l'avancement au niveau de la tâche, notamment le statut global, le pourcentage d'avancement et un récapitulatif de l'activité (par exemple, les tables actuellement en cours).
- DBA_DATA_IMPORT_TABLE_STATUS : affiche la progression au niveau de la table pour chaque table en cours d'importation, notamment le statut et les détails des erreurs pour les tables en échec.
Par exemple, interrogez DBA_DATA_IMPORT_TABLE_STATUS pour afficher la progression et les erreurs au niveau de la table. La colonne STATUS indique l'état en cours de chaque table, tel que SUCCEEDED, FAILED, LOADING ou STOPPED.
BEGIN
DBMS_CLOUD.CREATE_CREDENTIAL(
credential_name => 'db1_cred',
username => '<username>',
password => '<password>'
);
END;
/La sortie se présente de la manière suivante :
IMPORT_TASK_NAME SCHEMA_NAME SCHEMA_OBJECT STATUS
------------------ ------------- --------------- ----------
IMPORT_JOB1 SALES ORDERS SUCCEEDED
IMPORT_JOB1 SALES CUSTOMERS SUCCEEDED
IMPORT_JOB1 HR EMPLOYEES LOADING
IMPORT_JOB1 HR DEPARTMENTS FAILEDUne fois l'import terminé, le travail du planificateur est automatiquement désactivé. Pour plus d'informations, reportez-vous à Surveillance et diagnostic de l'import hétérogène.
Rubrique parent : Importer des données à l'aide de DBMS_CLOUD_IMPORT
Supprimer une tâche d'importation
Décrit les étapes de suppression d'une tâche d'import.
Une fois l'import terminé et inutile, vous pouvez supprimer la tâche d'import. La suppression de la tâche enlève le travail du planificateur, les liens de base de données et les métadonnées associées. Elle n'annule pas les objets ou les données qui ont déjà été créés dans le schéma cible et peut laisser une table en cours partiellement chargée.
Si vous réexécutez l'import pour le même schéma, vous devrez peut-être nettoyer manuellement les tables partiellement chargées. Pour identifier les tables incomplètes, interrogez les vues du dictionnaire de données telles que DBA_DATA_IMPORT_TABLE_STATUS et vérifiez le statut de la table avant d'effectuer le nettoyage.
BEGIN
DBMS_CLOUD_IMPORT.DROP_IMPORT_TASK(
task_name => 'orcl_import_job'
);
END;
/Cet exemple supprime le travail d'import ORCL_IMPORT_JOB. Pour plus d'informations, voir Procédure DROP_IMPORT_TASK.
Rubrique parent : Importer des données à l'aide de DBMS_CLOUD_IMPORT
Surveillance et diagnostic de l'importation hétérogène
Pour diagnostiquer les problèmes et surveiller la progression des opérations d'import de données, vous pouvez interroger les vues suivantes du dictionnaire de données. Ces vues fournissent des informations détaillées sur le statut des tâches, la progression de l'exécution, les opérations parallèles et les objets associés.
| Nom de la vue | Description |
|---|---|
| Vue DBA_DATA_IMPORT_TASK_STATUS | Affiche le statut de chaque table au sein d'une tâche d'importation, y compris les erreurs rencontrées au cours du traitement. |
| Vue DBA_DATA_IMPORT_TABLE_STATUS | Fournit des détails généraux au niveau de la tâche, notamment des informations sur l'avancement, telles que le nombre de tables traitées, chargées et terminées avec succès. |
Rubrique parent : Migration de données avec DBMS_CLOUD_IMPORT