it-swarm.com.de

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

Ich bin ein Oracle-Neuling und beabsichtige, alle Daten und Metadaten von einem Schema in ein anderes Schema innerhalb einer Oracle-Datenbank zu übertragen. Ich plane, die Befehle expdp und impdp von datapump zu verwenden. Ich habe Fragen dazu:

  • Kann ich ein Zielschema ohne Benutzer erstellen oder sollte ich zuerst einen Benutzer erstellen (der auch ein Schema erstellt)?
  • Kann ich die Befehle expdp und impdp mit dem Konto SYS (als sysdba) ausführen? 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 Befehl impdp?

29
jrara

impdp erstellt den Benutzer, wenn er noch nicht vorhanden ist. Sie müssen sich also keine Sorgen machen, es sei denn, Sie möchten dies nicht.

Führen Sie impdb oder expdp nicht als sysdba aus. Tun Sie dies nur, wenn der Oracle-Support dies anfordert unter bestimmten Umständen. Verwenden Sie dafür einen normalen Benutzer - einen, dem beispielsweise die Rolle dba zugewiesen wurde. (Da sind die [IMPORT|EXPORT]_FULL_DATABASE Berechtigungen speziell für diese Art von Dingen müssen Sie auch Zugriff auf die Oracle-Verzeichnisobjekte gewähren.)

Ein vollständiger Schemaexport (Metadaten und Inhalte) würde tatsächlich 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 .

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

31
Mat

Zum Importieren der abgeschnittenen Tabellen möchten Sie nur, dass die Daten wieder 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 dept, das ich importieren möchte. Ich habe es früher abgeschnitten. Aus dem Dumpfile, das TEST.dmp Ist, und logfile, das expdpTEST.log Ist, möchte ich, dass nur die Daten importiert werden (die Tabellenstruktur ist dieselbe, daher verwenden wir den Parameter TABLE_EXISTS_ACTION).

Wenn Sie 2 Tabellen abgeschnitten haben, z. B. emp und dept, und emp table dept_id Als Fremdschlüssel hat, müssen Sie dies tun Importieren Sie zuerst die Tabelle dept und dann die Tabelle emp, um Fehler beim Import zu vermeiden.

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

2
user3649154