J'essaie de faire une importation à l'aide de la pompe à données, mais je me débats pour trouver les bonnes options. L'exportation a été prise comme exportation de schéma. J'essaie d'importer uniquement les tables, sans autre objet de base de données.
J'utilise actuellement
INCLUDE=TABLE
TABLE_EXISTS_ACTION=REPLACE
REMAP_SCHEMA=
REMAP_TABLESPACE=
Cela importe correctement les tables, mais je suis un peu surpris de voir que l'importation crée également les contraintes et les déclencheurs sur les tables, ou en essayant au moins. Les déclencheurs échouent, car ils incluent un nom de schéma qui n'existe pas dans la base de données.
Je pensais qu'en utilisant INCLUDE=TABLE
Seules les tables seraient incluses. Apparemment que ce n'est pas le cas. Je suis incapable d'utiliser EXCLUDE=CONSTRAINT
ou alors EXCLUDE=TRIGGER
Comme j'utilise déjà inclus pour limiter l'importation à des tables seulement.
Des idées sur la manière dont je pourrais structurer l'importation uniquement des tables d'importation?
Vous avez raison lorsque vous indiquez Je pensais qu'en utilisant INCLUDE=TABLE
Seules les tables seraient incluses, mais il inclut également tous les objets associés. Cela signifie que des contraintes et des déclencheurs seront créés pour vous lorsque vous utilisez INCLUDE=TABLE
lors de l'importation.
Si vous avez la possibilité de recréer la décharge à l'aide de la commande expdp
_, vous pouvez simplement exporter les tables du schéma requis et utiliser le paramètre INCLUDE
.
COMPRENDRE
Objet: vous permet de filtrer les métadonnées exportées en spécifiant des objets et des types d'objet pour le mode d'exportation actuel. Les objets spécifiés et tous leurs objets dépendants sont exportés. Les subventions sur ces objets sont également exportées.
Ceci est fondamentalement le fichier de paramètres expdp.
FULL=N
...
SCHEMAS=<your_schema(s)>
INCLUDE=TABLE
...
Cela créera une vidage du schéma requis et ne contenir que des tables et des objets dépendants.
Après avoir généré le nécessaire *.dmp
Fichier, importation à l'aide de l'EXCLUDE=...
option.
EXCLURE
Objectif: vous permet de filtrer les métadonnées importées en spécifiant des objets et des types d'objet à exclure du travail d'importation.
Ceci est le fichier de paramètres pour l'IMPDP.
FULL=Y
...
EXCLUDE=STATISTIC
EXCLUDE=CONSTRAINT
EXCLUDE=TRIGGER
...
Cela devrait aboutir aux tables importées correctement.
Les paramètres excluent et incluent ne peuvent pas être spécifiés dans le même travail d'importation. Vous pouvez utiliser l'une des méthodes suivantes permettant à ces tableaux et index, mais aucun déclencheur, contraintes ou contraintes de référence n'est importé. Si vous ne voulez pas non plus d'index, vous pouvez les exclure de l'importation de la même manière.
Méthode 1 : Vous incluez des tableaux dans votre importation et utilisez davantage les directives pour exclure les déclencheurs, les contraintes et les contraintes référentielles de l'importation. On spécifie les éléments suivants:
INCLUDE=TABLE
INCLUDE=TRIGGER:"=''"
INCLUDE=CONSTRAINT:"=''"
INCLUDE=REF_CONSTRAINT:"=''"
Il n'y a pas de déclencheur qui satisfait à la clause donnée qui signifie que le nom de la gâchette est une chaîne vide. Il en va de même pour la contrainte et les contraintes de référence
Methode 2 : Vous n'utilisez pas la directive Inclure pour spécifier que seules les tables doivent être importées mais utilisent une méthode différente. Que vous pouvez utiliser l'exclusion pour éviter l'importation de déclencheurs, de contraintes et de contraintes référentielles.
Vous pouvez spécifier la liste des tables que vous utilisez pour importer dans une importation de table
TABLES=owner1.table1, owner2.table2, ...
EXCLUDE=TRIGGER, CONSTRAINT, REF_CONSTRAINT
Si la liste des tables est grande que cette méthode n'est pas très utile.
Une autre façon de spécifier des tables uniquement consiste à utiliser une importation de l'espace de table. Le nombre d'espaces de table utilisés par les tableaux dans le fichier de vidage est généralement beaucoup plus petit que le nombre de tables
TABLESPACES=tablespace1, tablespace2, ...
EXCLUDE=TRIGGER, CONSTRAINT, REF_CONSTRAINT
Exemples
J'utilise la base de données Oracle 11.2.0.4 Édition d'entreprise pour ces exemples.
J'ai créé un schéma Scott avec des tables, des déclencheurs, des procédures, des contraintes et des contraintes référentielles. Ensuite, j'ai fait un schéma d'exportation avec les paramètres suivants
annuaire = Scott Schemas = Scott Dumpfile = schema.dmp [.____] logfile = exp_schema.log [.____]
Voici les parties pertinentes du logfile de cette exportation
Démarrer "Système". "SYS_EXPORT_SCHEMA_01": SYSTEM/******** Parfile = exp_schema.par [. ____] Estimation en cours à l'aide de la méthode Blocks ... Objet de traitement Type Schema_export/Table/Table_Data [.____] Total Estimation à l'aide de blocs Méthode: 192 KB Type de traitement Type d'objet Schema_export/Utilisateur [. ____] Type d'objet Schema_export/System_Grant [.____] Type d'objet Schema_Export /Role_Grante Port Type d'objet Schema_export/Default_role [.____] Type de traitement Type d'objet Schema_export/Pre_schema/Procact_schema [.____] Type de traitement Schema_export/Table/Tableau [.____] Type d'objet Schema_Export/Procédure /Procédrance Port type d'objet Schema_export/Procédure/alter_procédraure [.____] Type de traitement Type d'objet Schema_export/Table/Index/Index [.____] Type d'objet Schema_export/Table/Contrainte [.____] Traitement Type d'objet Schema_Export/Table/Table/Ref_Constraint [.____] Trating Objet Type Schema_Export/Table/Tableau [ .____]. . Exporté "Scott". "Dept" 5.929 KB 4 rangées . . Exporté "Scott". "EMP" 8.562 KB 14 rangées . . Exporté "Scott". "Salgrade" 5.859 KB 5 rangées . . Exporté "Scott". "Bonus" 0 Ko 0 rangées . . Exporté "Scott". "Job_history" 0 Ko 0 rangées Tableau maître "Système". "SYS_EXPORT_SCHEMA_01" chargé avec succès/déchargé [.____]
Ainsi que l'utilisateur, les subventions, les procédures, les consistions, les contraintes de référence, la gâchette et les cinq tableaux de service, EMP, salerade; Bonus, job_history de l'utilisateur Scott est exporté.
Maintenant, je n'importerai pas ce vidage dans une base de données, mais je ne créerai qu'un fichier SQL avec les déclarations qui seront exécutées par l'importation. Cela peut être atteint par le paramètre SQLFILE dans le fichier de paramter d'importation.
D'abord, je fais une importation complète du Dumpfile. Cela importera tout former le fichier de vidage
annuaire = Scott [.____] Full = y Dumpfile = schema.dmp [.____] logfile = imp_full.log
Cela aboutit à ce qui suit
Table principale "Système". "SYS_SQL_FILE_FLUM_01" chargé avec succès/déchargé [non chargé Démarrage "Système". "SYS_SQL_FILE_FLOSL_01": Système/******** Parfile = Imp_full.par Traitement Type d'objet Schema_export/Utilisateur Type de traitement Type d'objet Schema_Export/System_Grant [.____] Type de traitement Type d'objet Schema_Export/Role_Grant [.____] Type d'objet Schema_export/Default_role [.____] Type d'objet Schema_export /Pre_schema/procact_schema Port type objet Schema_export/Table/Tableau [.____] Traitement Type d'objet Schema_export/Procédure/Procédure [.____] Type d'objet Schema_Export/Procédure/Atter_Procédrique [.____] Type Schema_Export/Table/Index/Index [.____] Type de traitement Type d'objet Schema_Export/Table/Contraint/Contrainte Traitement Type d'objet Schema_export/Table/Ref_Constraint [. ____] Type d'objet Schema_Export/Table/Déclencheur Job "System". "SYS_SQL_FILE_FLODL_01" Terminé avec succès
Si l'on utilise une sortie de schéma en utilisant
Annuaire = Scott Schemas = Scott Dumpfile = schema.dmp [.] logfile = imp_schema.log [.____] SQLFILE = schema.sql
un logfile similaire est créé.
Maintenant nous incluons uniquement les tables
annuaire = Scott [.____] Full = y Dumpfile = schema.dmp logfile = imp_schema_inc.log [.____] sqlfile = schema_inc.sql Inclure = table
Cela se traduit par le fichier journal suivant:
Démarrer "Système". "Sys_sql_file_full_01": Système/******** Parfile = imp_schema_inc.par [.____] Type de traitement Type d'objet Schema_Export/Table/Tableau [.____] Type d'objet Traitement Schema_export/Table/Index/Index [.____] Type de traitement Type d'objet Schema_Export/Table/Tableau/Contraint/Contrainte [.____] Type de traitement Type d'objet Schema_Export/Table/Ref_constraint Job "Système". "SYS_SQL_FILE_FLUM_01" Terminé avec succès
Les tableaux d'objets dépendants sont créés. Maintenant, nous utilisons davantage les directives pour éviter l'importation des objets indésirables:
annuaire = Scott [.____] Full = y Dumpfile = schema.dmp [.] logfile = imp_schema_inc_inc.log [.____] sqlfile = schema_inc_inc.sql Inclure = Tableau [.____] Inclure = déclencheur: "= ''" Inclure = contrainte: "= '" "[=' '"
Cela se traduit exactement de ce que nous voulons:
Démarrer "Système". "Sys_sql_file_full_01": système/******** Parfile = imp_schema_inc_inc.par [.____] Type de traitement Type d'objet Schema_export/Table/Tableau Type d'objet Traitement Schema_export/table/index/index Job "System". "SYS_SQL_FILE_FLODL_01" Terminé avec succès
Si nous utilisons une table importation et spécifiez ces 5 tables et excluons les objets indésirables, nous obtenons un fichier journal similaire.
annuaire = Scott Tables = Scott.Dept, Scott.emp, Scott.Salgrade, Scott.bonus, Scott.job_history [.____] Dumma.dmp LOGFILE = Imp_Tables.log sqlfile = tables.sql [.____] exclude = déclencheur, contrainte, ref_constraint [.____]
Nous obtenons également un tel logfile si nous utilisons une importation de tablesPace. Tous les objets de l'utilisateur Scott sont dans les utilisateurs de l'espace de table.
répertoire = Scott Dumpfile = schema.dmp [.____] logfile = imp_tablespaces.log sqlfile = tablepaces.sql Les utilisateurs Exclure = déclencheur, contrainte, ref_constraint