2009-03-26 12 views
6

Ich habe eine gesamte DB als ein Dump in meine eigenen importiert werden. Ich möchte Daten aus bestimmten Tabellen ausschließen (vor allem, weil sie sehr groß und nicht nützlich sind). Ich kann diese Tabellen nicht vollständig ausschließen, da ich das Tabellenobjekt per se benötige (abzüglich der Daten) und es in meinem Schema neu erstellen muss, wenn ich dies tue. Auch wenn diese Tabellenobjekte nicht vorhanden sind, können verschiedene andere Fremdeinschränkungen, die für andere Tabellen definiert sind, ebenfalls nicht importiert werden und müssen neu definiert werden. Daher muss ich nur die Daten bestimmter Tabellen ausschließen. Ich möchte jedoch Daten aus allen anderen Tabellen .Importieren von selektiven Daten mit impdp

Gibt es eine Reihe von Parametern für impdp, die mir dabei helfen können?

Antwort

8

Auf jeden Fall 2 Läufe machen. Ein erstellen, die alle Tabellenobjekte, aber anstelle von Tabellen in der zweiten impdp läuft, verwenden Sie das ausschließen

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

Die andere Art und Weise funktioniert, aber auf diese Weise nur die Tabellen müssen Sie nicht wollen, im Vergleich zu alles was du willst.

9

Ich würde zwei Läufe an machen: Die erste würde ich importieren Metadaten nur:

impdp ... CONTENT=METADATA_ONLY

Die zweite würde die Daten sind nur für die Tabellen mich interessiert:

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

1

Syntax:

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

Beispiele für Operator-Nutzung:

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

Der Parameter kann auch in einer Parameterdatei gespeichert werden, zum Beispiel: exp.par

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

Wenn die Größe der Tabelle ist groß für den Export Import Sie können "SAMPLE" -Parameter in Expdp Befehl zu ta ke Export-Tabelle für was auch immer Prozentsatz Sie wollen ....

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

Dieser Befehl wird nur 10% Daten der T100test Tabelle der Daten exportieren.