Import/Export von Datenbanken Bis S 39.5.12
Beschreibung für Versionen S 39.5.12
Information
- Für den Export/Import von Datenbanken (d.h. bei Oracle genauer: User-Schemas als Teil einer Oracle-Datenbank) sollten die Data Pump Tools
expdp
bzw. impdp
verwendet werden. Die Dokumentation hierfür finden Sie unter:
Hinweise
- 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>
- <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-BenutzerWerden 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:Ndie 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>
- <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.- Bei MS SQL-Systemen existiert dieser Parameter nicht, weshalb bei MS SQL-Backup-Dateien angegeben werden muss, um welche Datenbankversion es sich genau handelt.
|
LOGFILE |
Name des Logfiles - Namenskonvention analog Dumpfile, Extension
.log |
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.