Wie übertrage ich Daten mit den Befehlen expdp und impdp?

29

Ich bin ein Oracle-Neuling und beabsichtige, alle Daten und Metadaten von einem Schema in ein anderes Schema in einer Oracle-Datenbank zu übertragen. Ich plane, Datenpumpen expdpund impdpBefehle zu verwenden. Ich habe Fragen dazu:

  • Kann ich ein Zielschema ohne Benutzer erstellen oder muss ich zuerst einen Benutzer erstellen (wodurch auch ein Schema erstellt wird)?
  • Kann ich ausführen expdpund impdpSYS (als sysdba) Konto - Befehle mit? Ist das eine bevorzugte Methode?
  • Nimmt diese Anweisung alle Objekte (Daten und Metadaten) aus einem Schema und verschiebt sie in ein anderes Schema?

    expdp \"/ as sysdba\" schemas=<schemaname> directory=dumpdir dumpfile=<schemaname>.dmp logfile=expdp_<schemaname>.log  

    Ist das Zielschema also eine exakte Kopie des Quellschemas nach dem impdpBefehl?

jrara
quelle

Antworten:

31

impdp wird den Benutzer erstellen, wenn er noch nicht vorhanden ist, sodass Sie sich keine Sorgen machen müssen, es sei denn, dies ist nicht das, was Sie möchten.

Führen Sie das Programm nicht impdboder expdpals aus sysdba. Tun Sie dies nur, wenn der Oracle-Support dies unter bestimmten Umständen anfordert. Verwenden Sie dafür einen normalen Benutzer, dem beispielsweise die dbaRolle zugewiesen wurde. (Es gibt die [IMPORT|EXPORT]_FULL_DATABASEBerechtigungen speziell für diese Art von Dingen. Sie müssen auch Zugriff auf die Oracle-Verzeichnisobjekte gewähren.)

Ein vollständiger Schemaexport (Metadaten und Inhalte) würde in der Tat so aussehen:

expdp user/pass schemas=<schemaname> directory=dumpdir \
      dumpfile=<schemaname>.dmp \
      logfile=expdp_<schemaname>.log

Wenn Sie in einen anderen Benutzer / ein anderes Schema importieren möchten (die Zieldatenbank kann mit der Quelle identisch sein), können Sie Folgendes verwenden:

impdp user/pass schemas=schema1 directory=dumpdir \
      remap_schema=schema1:schema2 \
      dumpfile=schema1.dmp \
      logfile=impdp_schema2.log

Wenn Sie keinen vollständigen Import wünschen, können Sie einige Filter sowohl für Daten als auch für Metadaten festlegen. Siehe Filtern während Importvorgängen .

Der Utilities Guide enthält alle Details. Ich empfehle dringend, zumindest den Übersichtsteil zu lesen.

Matte
quelle
2

Zum Importieren der abgeschnittenen Tabellen, dh Sie möchten nur, dass die Daten zurück in die Tabelle importiert werden:

impdp user/pass TABLES=dept DIRECTORY=TEST_dir dumpfile=TEST.dmp logfile=expdpTEST.log TABLE_EXISTS_ACTION=REPLACE

Über meiner Tabelle befindet sich, deptwas ich importieren möchte. Ich habe es früher abgeschnitten. Aus dem Dumpfile das ist TEST.dmp, undlogfile dem expdpTEST.logich will, dass nur die Daten importiert werden (die Tabellenstruktur wird dieselbe sein, so dass wir den Parameter verwenden TABLE_EXISTS_ACTION).

Wenn Sie zwei Tabellen abgeschnitten haben, zum Beispiel empund dept, und empTabelle hat dept_idals Fremdschlüssel, dann müssen Sie die importierendedept Tabelle zuerst und dann die empTabelle zu vermeiden Fehler beim Import.

Weitere Informationen unter http://satya-dba.blogspot.in/2009/05/datapump.html

user3649154
quelle