2009-03-26 16 views
6

J'ai un DB complet à importer en tant que vidage dans le mien. Je veux exclure des données de certaines tables (principalement parce qu'elles sont énormes et inutiles). Je ne peux pas entièrement exclure ces tables car j'ai besoin de l'objet table en soi (moins les données) et je vais devoir les créer dans mon schéma si je le fais. En outre, en l'absence de ces objets table, diverses autres contraintes étrangères définies sur d'autres tables échoueront également à être importées et devront être redéfinies. Donc, je dois exclure uniquement les données de certaines tables. Je veux des données de toutes les autres tables .Importer des données sélectives en utilisant impdp

Y at-il un ensemble de paramètres pour impdp qui peut m'aider à le faire?

Répondre

8

Effectuez 2 passages sans problème. L'un pour créer tous les objets de table, mais au lieu d'utiliser des tables dans la deuxième manche de impdp, utilisez l'exclure

impdp ... Content=data_only exclude=TABLE:"IN ('table1', 'table2')" 

L'autre façon fonctionne, mais cette façon il vous suffit d'énumérer les tables que vous ne voulez pas contre tout ce que tu veux.

9

Je voudrais faire deux courses à: le premier j'importer les métadonnées:

impdp ... CONTENT=METADATA_ONLY

La seconde comprendrait les données que pour les tableaux qui me intéressaient:

impdp ... CONTENT=DATA_ONLY TABLES=table1,table2...

1

Syntaxe:

EXCLUDE=[object_type]:[name_clause],[object_type]:[name_clause] 
INCLUDE=[object_type]:[name_clause],[object_type]:[name_clause] 

Exemples de-utilisation de l'opérateur:

EXCLUDE=SEQUENCE 
or EXCLUDE=TABLE:"IN ('EMP','DEPT')" 
or EXCLUDE=INDEX:"= 'MY_INDX'" 
or INCLUDE=PROCEDURE:"LIKE 'MY_PROC_%'" 
or INCLUDE=TABLE:"> 'E'" 

Le paramètre peut également être stocké dans un fichier de paramètres, par exemple: exp.par

DIRECTORY = my_dir 
DUMPFILE = exp_tab.dmp 
LOGFILE = exp_tab.log 
SCHEMAS = scott 
INCLUDE = TABLE:"IN ('EMP', 'DEPT')" 
1

Si la la taille de la table est grande pour l'export, vous pouvez utiliser le paramètre "SAMPLE" dans la commande expdp pour ta ke exportation de table pour ce que jamais le pourcentage que vous voulez ....

$ expdp tables=T100test DIRECTORY=expimp1 DUMPFILE=test12.dmp SAMPLE = 10; 

Cette commande exporte uniquement des données de 10% des données de la table T100test.