Import/Export von Datenbanken

Information

Hinweis

  • Der Gebrauch von exp bzw. imp sollte aus folgenden Gründen vermieden werden, sofern es keine triftigen Umstände gibt, die den Einsatz alternativlos machen:
    • Ab Oracle DB-Version 11.1 ist exp veraltet und wird nicht mehr unterstützt. Lediglich imp wird noch für den Import von Dumps aus älteren Systemen unterstützt. Aufgrund dessen werden ab dieser Version über exp keine leeren Tabellen mehr exportiert, sodass diese nach einem anschließenden Import fehlen.
    • imp ändert für Materialized Views den MView-Owner nicht (FROMUSER/TOUSER hat hier keinen Einfluss), sodass hinterher der Zugriff von PLANTA aus fehlschlägt, da der View einem anderen als dem PLANTA-DB-User gehört, der u. U. auf dem Zielsystem nicht existiert.
      • Dies kann nachträglich mit SYSDBA-Rechten korrigiert werden, siehe auch hier.

Beispiele für "sichere" Im-/Export-Befehle zum Ziehen bzw. Einspielen eines Dumps

Hinweis
  • Voraussetzung für die nachfolgenden Vorgehensweisen sind die entsprechenden Rechte.

Einspielen einer Datenbank mit =impdp

  • Wenn ein altes Schema überschrieben werden soll, wird empfohlen, dieses zuvor mithilfe des Skripts drop_schema.sql zu leeren
  • Um einen Dump erfolgreich einzuspielen, sind einige Parameter zu setzen (Oracle Import Parameter siehe Link oben).
  • Beispiel:
impdp <DB_User>/<Password>@<SID> DIRECTORY=<Data_Pump_Dir> DUMPFILE=<Dump Filename>.dmp PARALLEL=4 SCHEMAS=<Source_User> REMAP_SCHEMA=<Source_User>:<DB_User> REMAP_TABLESPACE=<Source_TABLESPACE>:<DB_TABLESPACE> LOGFILE=<Log Filename>.log TABLE_EXISTS_ACTION=REPLACE TRANSFORM=SEGMENT_ATTRIBUTES:N
  • Von Kleiner-/Größer-Zeichen (< bzw. >) umschlossene Platzhalter sind mit den entsprechenden Werten zu ersetzen.

Erläuterung der Parameter und Werte

  • Connect string: Wer verbindet sich auf welche Datenbank
    • <DB_User>
      • hier sollte der PLANTA-DB-Benutzer verwendet werden. Damit ist der Import auf die Schemas beschränkt, auf die der Benutzer Rechte hat. Somit wird nichts importiert, was nicht dazugehört, siehe auch Parameter SCHEMAS.
    • <Password>
      • Passwort von <DB_User>
    • <SID>
      • Die Oracle-System-ID der betreffenden Datenbank

Parameter Wert
DIRECTORY
  • auf dem DB-Server eingerichtetes DB-Verzeichnis-Objekt
  • Die Dump-Datei wird eingelesen aus dem mit DIRECTORY assoziierten Dateisystem-Verzeichnis, z.B.: AUDIT_DIR zeigt auf Verzeichnis /tmp; nachzuschlagen über den View dba_directories
    • Die Dump-Datei muss vor Einspielen in dieses Verzeichnis (auf dem DB-Server!) transferiert worden sein.
    DUMPFILE
  • Name der Dump-Datei
  • PARALLEL
  • Angabe der maximalen Anzahl paralleler Prozesse zur Beschleunigung des Exports, z.B. 4, abhängig von der Anzahl der Server-Prozessor-Kerne (nur verfügbar in der Enterprise Edition von Oracle Database 11g)
  • SCHEMAS
  • Angabe eines oder mehrerer (durch Komma getrennter) zu importierender Schemas, so wie sie im Dump vorhanden sind, d.h. i.d.R. der Name des/der Quell-Benutzer
  • Werden mehrere Schemas importiert, so müssen sie alle auch beim Remap-Befehl berücksichtigt werden.
  • REMAP_SCHEMA
  • Der Quell-Benutzer, aus dem der Dump erstellt wurde, muss umgemappt werden auf den Benutzer, in den der Import erfolgen soll.
  • REMAP_TABLESPACE
  • Der im Quellsystem verwendete Tablespace muss umgemappt werden auf den Tablespace der aktuellen Datenbank
    • Bei PLANTA ist das i.d.R. DATA
    LOGFILE
  • Name des Logfiles
    • Namensvergabe analog Dumpfile, impdp voranstellen, Extension .log
  • TABLE_EXISTS_ACTION
  • REPLACE: falls eine Tabelle bereits vorhanden ist, wird sie gelöscht und durch die im Dump befindliche ersetzt
  • TRANSFORM
  • SEGMENT_ATTRIBUTES:N
  • die Segmentattribute werden generell nicht übernommen, damit nur die Einstellungen der Ziel-Datenbankinstanz gelten.
  • Beispiel-Befehl

    impdp Neuer_Benutzer/ppms@Meine_Datenbank PARALLEL=4 DIRECTORY=AUDIT_DIR DUMPFILE=10_2_Mein_System.dmp LOGFILE=impdp_Mein_System.log SCHEMAS=Exportierter_Benutzer REMAP_SCHEMA=Exportierter_Benutzer:Neuer_Benutzer REMAP_TABLESPACE=Tablespace_des_exportierten_Benutzers:Zu_benutzender_Tablespace TABLE_EXISTS_ACTION=REPLACE TRANSFORM=SEGMENT_ATTRIBUTES:N

    Export der Daten mit =expdp

    • Um einen Dump erfolgreich zu erzeugen, mit dem gearbeitet werden kann, sind einige wichtige Parameter zu setzen.
    • Beispiel
    expdp <DB_User>/<Password>@<SID> DIRECTORY=<Data_Pump_Dir> DUMPFILE=<Dump Filename>.dmp PARALLEL=4 SCHEMAS=<DB_User> CONTENT=ALL EXCLUDE=STATISTICS VERSION=10.2 LOGFILE=<Log Filename>.log
    • Von Kleiner-/Größer-Zeichen (< bzw. >) umschlossene Platzhalter sind mit den entsprechenden Werten zu ersetzen.

    Erläuterung der Parameter und Werte

    • Connect string: Wer verbindet sich auf welche Datenbank
      • <DB_User>
        • hier sollte der PLANTA DB-Benutzer verwendet werden. Damit ist der Export auf das Schema des PLANTA DB-Benutzers beschränkt. Somit wird nichts exportiert, was nicht dazugehört, siehe auch Parameter SCHEMAS.
      • <Password>
        • Passwort von <DB_User>
      • <SID>
        • Die Oracle-System-ID der betreffenden Datenbank
    Parameter Wert
    DIRECTORY
  • auf dem DB-Server eingerichtetes DB-Verzeichnis-Objekt
  • die Dump-Datei wird abgelegt in dem mit DIRECTORY assoziierten Dateisystem-Verzeichnis, z.B. AUDIT_DIR oder DATA_PUMP_DIR; nachzuschlagen über den View dba_directories
  • DUMPFILE
  • Name der Dump-Datei
  • Beispiel für die Namenskonvention
    • expdp_<DB-Version>_<Kundenlizenz>_<DB_User>_<PLANTA/PPMS-Version>.dmp
  • PARALLEL
  • Angabe der maximalen Anzahl paralleler Prozesse zur Beschleunigung des Exports, z.B. 4, abhängig von der Anzahl der Server-Prozessor-Kerne (nur verfügbar in der Enterprise Edition von Oracle Database 11g)
  • SCHEMAS
  • Angabe eines oder mehrerer zu exportierender Schemas, für die Zugriffsrechte bestehen müssen
  • CONTENT
  • ALL ist der Default-Wert
    • Sowohl Metadaten als auch Daten sollen exportiert werden
  • EXCLUDE
  • STATISTICS - das Übertragen von Statistiken kann zu Problemen führen. Sie werden auf dem Zielsystem ohnehin automatisch wieder erstellt, daher werden sie hier ausgeklammert.
  • VERSION
  • 10.2 - Angabe der Oracle-DB-Version, bis zu der der Dump abwärtskompatibel sein soll. D.h., bei Angabe von 10.2 kann der erzeugte Dump in jedes Oracle-DBMS ab Version 10.2 eingespielt werden.
  • LOGFILE
  • Name des Logfiles
    • Namenskonvention analog Dumpfile, Extension .log
    • Beispiel-Befehl:
    expdp PLANTA_PROD/Geheim.124@ORADB DIRECTORY=AUDIT_DIR DUMPFILE=expdp_10.2_444_PLANTA_PROD_3904.dmp PARALLEL=4 SCHEMAS=PLANTA_PROD CONTENT=all EXCLUDE=statistics VERSION=10.2 LOGFILE=expdp_10.2_444_PLANTA_PROD_3904.log

    Hinweis

    • Das Logfile muss zusammen mit dem Dump an PLANTA geschickt werden.

             PLANTA project









     
    • Suche in Topic-Namen

    • Suche in Topic-Inhalten
    This site is powered by the TWiki collaboration platform Powered by Perl