Seite 1Gunther Pippèrr © 2015 http://www.pipperr.de
ORACLE DATA PUMP
Modern Exportieren und Importieren
0101
1010101
01010...
Seite 2Gunther Pippèrr © 2015 http://www.pipperr.de
Agenda
 Imp und Exp – Vergangenheit und Zukunft
 Architektur und Gru...
Seite 3Gunther Pippèrr © 2015 http://www.pipperr.de
IMP und EXP in 11g/12c
 Importieren wie gehabt
 Exportieren mit EXP ...
Seite 4Gunther Pippèrr © 2015 http://www.pipperr.de
Die Nachteile vom Imp/Exp
 Schwieriger Neustart bei einem Fehler
 Ke...
Seite 5Gunther Pippèrr © 2015 http://www.pipperr.de
Vorteil von imp/exp
 Kann von einem Client Rechner gestartet werden
...
Seite 6Gunther Pippèrr © 2015 http://www.pipperr.de
In welchen Editionen ist Data Pump verfügbar?
 Core Feature der Daten...
Seite 7Gunther Pippèrr © 2015 http://www.pipperr.de
Die ersten Schritte
 Einen einfachen Export durchführen
 1. Versuch ...
Seite 8Gunther Pippèrr © 2015 http://www.pipperr.de
Die ersten Schritte (1)
 Pfad-Angabe über ein Oracle Directory
SQL> c...
Seite 9Gunther Pippèrr © 2015 http://www.pipperr.de
Die ersten Schritte
 Sicherung nach DATA_DUMP_DIR
expdp GPI/GPI@orade...
Seite 10Gunther Pippèrr © 2015 http://www.pipperr.de
Die Architektur von Data Pump
Wie funktioniert das nun im Detail?
Seite 11Gunther Pippèrr © 2015 http://www.pipperr.de
Die beteiligten Data Pump Komponenten
expdp impdp
Enterprise
Manager
...
Seite 12Gunther Pippèrr © 2015 http://www.pipperr.de
Die Architektur von Data Pump
 Der Export/Import wird über eigene Se...
Seite 13Gunther Pippèrr © 2015 http://www.pipperr.de
Im Detail
Seite 14Gunther Pippèrr © 2015 http://www.pipperr.de
Ablauf Shadow-Prozess
 Client startet DB-Prozess (Shadow-Prozess)
 ...
Seite 15Gunther Pippèrr © 2015 http://www.pipperr.de
Ablauf MCP Master Control Process
 Ein Kontroll-Prozess pro Job zust...
Seite 16Gunther Pippèrr © 2015 http://www.pipperr.de
Ablauf Worker-Prozesse
 Es können mehrere Prozesse pro Job gestartet...
Seite 17Gunther Pippèrr © 2015 http://www.pipperr.de
Ausführung Worker-Prozesse
 Der Export wird mit Direct-Path-Export o...
Seite 18Gunther Pippèrr © 2015 http://www.pipperr.de
Monitoring (1)
 Jobs in der DB überwachen
– Views:
DBA_DATAPUMP_JOBS...
Seite 19Gunther Pippèrr © 2015 http://www.pipperr.de
Monitoring (2)
 Kommando „Status“ des Clients
Export> status
Job: SY...
Seite 20Gunther Pippèrr © 2015 http://www.pipperr.de
Ein Performance-Vergleich
 Export einer 2,3 GB großen Datenbank
 Ve...
Seite 21Gunther Pippèrr © 2015 http://www.pipperr.de
Die Top Features von Oracle Data Pump
 Parallele Ausführung auf dem ...
Seite 22Gunther Pippèrr © 2015 http://www.pipperr.de
Der Praktische Einsatz von
Data Pump
Wie kann ich das am besten tägli...
Seite 23Gunther Pippèrr © 2015 http://www.pipperr.de
Vorbereitung – Directory Objekt für den Export
 Einmalige Vorbereitu...
Seite 24Gunther Pippèrr © 2015 http://www.pipperr.de
Vorbereitung – Rechte für den Export User
 Um nur seine eigenen Obje...
Seite 25Gunther Pippèrr © 2015 http://www.pipperr.de
Export
Die Daten extrahieren
Seite 26Gunther Pippèrr © 2015 http://www.pipperr.de
Logisches Backup – Einen User exportieren(1)
 Aufgabe: Daten sollen ...
Seite 27Gunther Pippèrr © 2015 http://www.pipperr.de
Zusätzlich aus
dem UNDO Segment die alten Daten lesen
Konsistenter Ex...
Seite 28Gunther Pippèrr © 2015 http://www.pipperr.de
Logisches Backup – Einen User exportieren(2)
 Eine Steuerdatei für d...
Seite 29Gunther Pippèrr © 2015 http://www.pipperr.de
Logisches Backup – Eine User exportieren(3)
 Den Export starten
– Ex...
Seite 30Gunther Pippèrr © 2015 http://www.pipperr.de
Die Größe eines Exports vorab berechnen
 Parameter ESTIMATE_ONLY=YES...
Seite 31Gunther Pippèrr © 2015 http://www.pipperr.de
1 – 99 Export-Datei erzeugen mit %U
 %U und FILESIZE
– Parameterdate...
Seite 32Gunther Pippèrr © 2015 http://www.pipperr.de
Export komprimieren
 Parameter COMPRESION
– COMPRESSION=[ALL | DATA_...
Seite 33Gunther Pippèrr © 2015 http://www.pipperr.de
Export parallelisieren
 Parameter PARALLEL
– Default 1
– Sinnvolle W...
Seite 34Gunther Pippèrr © 2015 http://www.pipperr.de
Nur die Metadaten exportieren
 Parameter CONTENT=METADATA_ONLY
– Nur...
Seite 35Gunther Pippèrr © 2015 http://www.pipperr.de
Nur Teile der Daten exportieren
 Zum Beispiel um nur eine Teil der P...
Seite 36Gunther Pippèrr © 2015 http://www.pipperr.de
Zwischen verschiedene DB Version exportieren
 Parameter VERSION
 Ex...
Seite 37Gunther Pippèrr © 2015 http://www.pipperr.de
Wie löst Data Pump Abhängigkeiten auf?
 Siehe View:
Database/Schema/...
Seite 38Gunther Pippèrr © 2015 http://www.pipperr.de
Filter für DB-Objekte
 Erweiterte Auswahl von Filtern für DB-Objekte...
Seite 39Gunther Pippèrr © 2015 http://www.pipperr.de
Nach was kann gefiltert werden?
 Nur entweder nach EXCLUDE oder INCL...
Seite 40Gunther Pippèrr © 2015 http://www.pipperr.de
Beispiel Exclude – Keine Statistiken exportieren
 Parameter „exclude...
Seite 41Gunther Pippèrr © 2015 http://www.pipperr.de
Import
Daten wieder importieren
Seite 42Gunther Pippèrr © 2015 http://www.pipperr.de
Export wieder einspielen – Daten ersetzen(1)
 Die tägliche logische ...
Seite 43Gunther Pippèrr © 2015 http://www.pipperr.de
Export wieder einspielen – Optionen (2)
 Was soll mit existierenden ...
Seite 44Gunther Pippèrr © 2015 http://www.pipperr.de
Export in ein anderes User Schema einspielen
 Parameter REMAP_SCHEMA...
Seite 45Gunther Pippèrr © 2015 http://www.pipperr.de
Beispiel Include – Nur eine Tabelle importieren
 Parameter
schemas=h...
Seite 46Gunther Pippèrr © 2015 http://www.pipperr.de
Tabellen beim Import umbenennen
 Parameter REMAP_TABLE
– Beispiel
RE...
Seite 47Gunther Pippèrr © 2015 http://www.pipperr.de
SQL/DDL aus einem Export extrahieren
 Import nur des SQL‘s des Expor...
Seite 48Gunther Pippèrr © 2015 http://www.pipperr.de
DDL-Transformation beim Import
 Objekt-Meta-Daten werden als XML-Dat...
Seite 49Gunther Pippèrr © 2015 http://www.pipperr.de
Job Control
Exp/Imp kontrollieren und überwachen
Seite 50Gunther Pippèrr © 2015 http://www.pipperr.de
Einen Export Job nur initialisieren
 Parameter ABORT_STEP
– -1 Nur M...
Seite 51Gunther Pippèrr © 2015 http://www.pipperr.de
An eine Job wieder anknüpfen
 Parameter ATTACH
– An den Job nun ankn...
Seite 52Gunther Pippèrr © 2015 http://www.pipperr.de
Job Control mit Ctr-C starten
 Mit Ctrl-C kann der Job in den Intera...
Seite 53Gunther Pippèrr © 2015 http://www.pipperr.de
Eine Job beenden
 Mit „Ctr-C“ oder mit ATTACH eine Job Console öffen...
Seite 54Gunther Pippèrr © 2015 http://www.pipperr.de
Restart
 Ein Restart ist immer dann möglich wenn:
– Die Master-Table...
Seite 55Gunther Pippèrr © 2015 http://www.pipperr.de
Weitere Features
Noch mehr Möglichkeiten
Seite 56Gunther Pippèrr © 2015 http://www.pipperr.de
Der Netzwerk-Modus
 Daten zwischen zwei Instanzen austauschen
– Nur ...
Seite 57Gunther Pippèrr © 2015 http://www.pipperr.de
Beispiel Netzwerk Modus
 Kein Export notwendig
 Aufruf mit Import
...
Seite 58Gunther Pippèrr © 2015 http://www.pipperr.de
Performance-Überlegungen
 I/O-Bandbreite ist der wichtigste Faktor
–...
Seite 59Gunther Pippèrr © 2015 http://www.pipperr.de
Performance-Überlegungen
 Ausführungszeiten anzeigen lassen
– METRIC...
Seite 60Gunther Pippèrr © 2015 http://www.pipperr.de
Trace für Data Pump anlegen
 Mit „trace=480300“ kann für den Master ...
Seite 61Gunther Pippèrr © 2015 http://www.pipperr.de
Sicherheitsüberlegungen
 Problematik des Überschreibens und das Anle...
Seite 62Gunther Pippèrr © 2015 http://www.pipperr.de
Bekannte Probleme
 Export / Import von Objekt-Typen
 Lösung: Neue O...
Seite 63Gunther Pippèrr © 2015 http://www.pipperr.de
Neue Feature mit 12c - Export
 Eine View als Table
– Parameter
• VIE...
Seite 64Gunther Pippèrr © 2015 http://www.pipperr.de
Neue Feature mit 12c - Import
 Nologging Mode beim Import
– Paramete...
Seite 65Gunther Pippèrr © 2015 http://www.pipperr.de
Neue Feature mit 12c
 Log mit Zeitstempel
– Parameter logtime=all
– ...
Seite 66Gunther Pippèrr © 2015 http://www.pipperr.de
Data Pump aus der DB aufrufen
Eine Export per PL/SQL durchführen
Seite 67Gunther Pippèrr © 2015 http://www.pipperr.de
Das Package DBMS_DATAPUMP
 Starten und verwalten von Import/Export a...
Seite 68Gunther Pippèrr © 2015 http://www.pipperr.de
Einen Export aus der DB aufrufen
 Starten des Export-Jobs in der DB
...
Seite 69Gunther Pippèrr © 2015 http://www.pipperr.de
Mit dem SQL*Developer DP Skripte erzeugen
 DBA Tools verwenden
Impor...
Seite 70Gunther Pippèrr © 2015 http://www.pipperr.de
Mit dem SQL*Developer DP Skripte erzeugen
 Skripte werden über eine ...
Seite 71Gunther Pippèrr © 2015 http://www.pipperr.de
External Table mit Data Pump
Datenaustausch zwischen Datenbanken
Arch...
Seite 72Gunther Pippèrr © 2015 http://www.pipperr.de
Externe Tabelle mit Data Pump anlegen
 Externe Tabelle vom Type orac...
Seite 73Gunther Pippèrr © 2015 http://www.pipperr.de
Externe Tabelle einbinden
 In einer anderen DB wieder einbinden
CREA...
Seite 74Gunther Pippèrr © 2015 http://www.pipperr.de
Einsatz
 Archivierung von Tabellen
– Vorteil:
• Tabelle ist Read Onl...
Seite 75Gunther Pippèrr © 2015 http://www.pipperr.de
Transportable Tablespace
Datendateien austauschen
Seite 76Gunther Pippèrr © 2015 http://www.pipperr.de
Transportable Tablespaces
 Schnellste Möglichkeit Daten zwischen zwe...
Seite 77Gunther Pippèrr © 2015 http://www.pipperr.de
Voraussetzung bzw. Nachteil
 Gleicher Zeichensatz zwischen den Daten...
Seite 78Gunther Pippèrr © 2015 http://www.pipperr.de
Data Masking mit Data Pump
Daten beim laden verändern
Seite 79Gunther Pippèrr © 2015 http://www.pipperr.de
Daten beim Import manipulieren
 Parameter REMAP_DATA
– REMAP_DATA=[s...
Seite 80Gunther Pippèrr © 2015 http://www.pipperr.de
Zusammenfassung
Was bringt uns das?
Seite 81Gunther Pippèrr © 2015 http://www.pipperr.de
Vor- und Nachteile
 Vorteil:
– Ausführung aus PL/SQL über eigene API...
Seite 82Gunther Pippèrr © 2015 http://www.pipperr.de
Zusammenfassung
 Export/Import direkt aus der Datenbank ausführen
 ...
Seite 83Gunther Pippèrr © 2015 http://www.pipperr.de
AF&
Fragen
Antworten
Oracle Data Pump
Seite 84Gunther Pippèrr © 2014 http://www.pipperr.de
Gunther Pippèrr - IT-Architekt - Berater
• High-Tech
• Real Estate
• ...
Nächste SlideShare
Wird geladen in …5
×

Introduction into Oracle Data Pump 11g/12c - Export and Import Data

914 Aufrufe

Veröffentlicht am

Short German introduction into Oracle Data Pump, Export and Import the data of an Oracle database

Veröffentlicht in: Daten & Analysen
0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
914
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
463
Aktionen
Geteilt
0
Downloads
2
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Introduction into Oracle Data Pump 11g/12c - Export and Import Data

  1. 1. Seite 1Gunther Pippèrr © 2015 http://www.pipperr.de ORACLE DATA PUMP Modern Exportieren und Importieren 0101 1010101 0101011010 11010110100011 1010101101000000 1000101010101000000 1001110101010000000001 0110101110010100000000001 0101101000110100100000000010 1010010101000111010100000000010 0110101010010000011000000000000101 1011010101010010101000000000000000001 1000011111010010101010100000000000000101 0000110011110100000000000000000000000000000 0100000110001111111111111110010100000000000101
  2. 2. Seite 2Gunther Pippèrr © 2015 http://www.pipperr.de Agenda  Imp und Exp – Vergangenheit und Zukunft  Architektur und Grundlagen  Praktischer Einsatz  Erweiterte Funktionen  Ausblick New Feature 12c
  3. 3. Seite 3Gunther Pippèrr © 2015 http://www.pipperr.de IMP und EXP in 11g/12c  Importieren wie gehabt  Exportieren mit EXP veraltet und wohl demnächst nicht mehr verfügbar  Wird vorerst aber weiter unterstützt – Aber unterstützt keine neuen Features der Datenbank mehr! – Ab 12c sollte es dann auch nicht mehr verwendet werden
  4. 4. Seite 4Gunther Pippèrr © 2015 http://www.pipperr.de Die Nachteile vom Imp/Exp  Schwieriger Neustart bei einem Fehler  Keine Parallelisierung – Ausführung vom Client nur in einem einzigen Thread  Dump Files können relativ groß werden  Optimierung der Performance nur bedingt möglich  Überwachung des Exp/Imp Vorgangs schwierig  Eingeschränkte Filterung der gewünschten Objekte
  5. 5. Seite 5Gunther Pippèrr © 2015 http://www.pipperr.de Vorteil von imp/exp  Kann von einem Client Rechner gestartet werden  Keine Konfiguration vorab auf dem Datenbank Server notwendig
  6. 6. Seite 6Gunther Pippèrr © 2015 http://www.pipperr.de In welchen Editionen ist Data Pump verfügbar?  Core Feature der Datenbank10g/11g/12c D.h. auf allen Versionen verfügbar – XE , Standard-One, Standard, Enterprise – Parallelisierung aber nur unter der Enterprise Edition möglich! D:>expdp parallel=2 schemas=oe8 dumpfile=myoe8.dmp Export: Release 10.1.0.4.2 - Production on Montag, 19 Juni, 2006 16:38 Copyright (c) 2003, Oracle. All rights reserved. Benutzername: sys/oracle@xe as sysdba Angemeldet bei: Oracle Database 10g Express Edition Release 10.2.0.1.0 - Product ion ORA-39002: Ung³ltiger Vorgang ORA-39094: Parallelausf³hrung wird in dieser Datenbankedition nicht unterstützt Aufruf in der Standard Edition:
  7. 7. Seite 7Gunther Pippèrr © 2015 http://www.pipperr.de Die ersten Schritte  Einen einfachen Export durchführen  1. Versuch (wie gewohnt) oracle@gpidb01:~> expdp GPI/GPI@oradev directory=/tmp dumpfile=GPI.dmp Export: Release 10.2.0.1.0 - 64bit Production on Dienstag, 16 Mai, 2006 16:13:43 Copyright (c) 2003, 2005, Oracle. All rights reserved. Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production With the Partitioning, OLAP and Data Mining options ORA-39002: invalid operation ORA-39070: Unable to open the log file. ORA-39087: directory name /TMP is invalid
  8. 8. Seite 8Gunther Pippèrr © 2015 http://www.pipperr.de Die ersten Schritte (1)  Pfad-Angabe über ein Oracle Directory SQL> create directory dmpdir as '/opt/oracle'; Directory created. SQL> grant read, write on directory dmpdir to scott; Grant succeeded. SQL> SELECT directory_path FROM dba_directories WHERE directory_name = 'DATA_PUMP_DIR'; DIRECTORY_PATH ------------------------------------------------------------------------------- - /app/oracle/product/10.2.0/rdbms/log/ Standard Directory = DATA_PUMP_DIR D:apporacleadminXEdpdumpXE:=>
  9. 9. Seite 9Gunther Pippèrr © 2015 http://www.pipperr.de Die ersten Schritte  Sicherung nach DATA_DUMP_DIR expdp GPI/GPI@oradev directory=DATA_PUMP_DIR dumpfile=GPI.dmp Export: Release 10.2.0.1.0 - 64bit Production on Dienstag, 16 Mai, 2006 16:50:11 Copyright (c) 2003, 2005, Oracle. All rights reserved. Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production With the Partitioning, OLAP and Data Mining options Starting "GPI"."SYS_EXPORT_SCHEMA_01": GPI/********@oradev directory=DATA_PUMP_DIR dumpfile=GPI.dmp .................. Processing object type SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS . . exported "GPI"."INGRAM_IMPORT" 16.71 MB 44825 rows . . exported "GPI"."TECHDATA_IMPORT" 9.100 MB 35497 rows . . ..... . . exported "GPI"."TAS_PRO" 0 KB 0 rows Master table "GPI"."SYS_EXPORT_SCHEMA_01" successfully loaded/unloaded ****************************************************************************** Dump file set for GPI.SYS_EXPORT_SCHEMA_01 is: /opt/oracle/products/10.2.0/rdbms/log/GPI.dmp Job "GPI"."SYS_EXPORT_SCHEMA_01" successfully completed at 16:50:30
  10. 10. Seite 10Gunther Pippèrr © 2015 http://www.pipperr.de Die Architektur von Data Pump Wie funktioniert das nun im Detail?
  11. 11. Seite 11Gunther Pippèrr © 2015 http://www.pipperr.de Die beteiligten Data Pump Komponenten expdp impdp Enterprise Manager Weitere Clients DBMS_DATAPUMP Loader External Table API DataPump Direct Path API Metadata API: DBMS_METADATA Data/Metadata movement engine Data Pump
  12. 12. Seite 12Gunther Pippèrr © 2015 http://www.pipperr.de Die Architektur von Data Pump  Der Export/Import wird über eigene Serverprozesse auf dem Server durchgeführt Kontrollprozess Worker Worker CMD impdp/expdp Datenbank Job Starten Exp/Imp Prozess DumpFile 1..n 1..99 DumpFile Master Table Schema
  13. 13. Seite 13Gunther Pippèrr © 2015 http://www.pipperr.de Im Detail
  14. 14. Seite 14Gunther Pippèrr © 2015 http://www.pipperr.de Ablauf Shadow-Prozess  Client startet DB-Prozess (Shadow-Prozess)  Mit DBMS_DATAPUMP.open wird ein neuer Job angelegt  Die AQ-Tabellen werden angelegt  Die Master-Tabelle wird angelegt – Log-Tabelle des gesamten Export Vorganges mit den Namen des Export-Jobs – Tabelle wird in den Export aufgenommen und dann gelöscht (muss daher auch immer in eine Export Datei passen!)  Der Master-Control-Prozess gestartet
  15. 15. Seite 15Gunther Pippèrr © 2015 http://www.pipperr.de Ablauf MCP Master Control Process  Ein Kontroll-Prozess pro Job zuständig – Prozessname: <instance>_DMnn_<pid>  Überwacht und startet die Worker-Prozesse  Überwacht das Datei-Handling – Legt neue Dateien an Berechtigung beachten – Dateien werden unter dem User angelegt unter dem die Datenbank Prozesse auch gestartet wurden!  Im Oracle Real Applikation Cluster muss der Cluster Owner auch Schreibrechte auf das gewünschte Verzeichnis haben!
  16. 16. Seite 16Gunther Pippèrr © 2015 http://www.pipperr.de Ablauf Worker-Prozesse  Es können mehrere Prozesse pro Job gestartet werden – Prozessname: <instance>_DWnn_<pid>  Datenstrukturen der zu exportierenden Objekte werden extrahiert ( DBMS_METADATA)  Daten werden ausgelesen und in die DB oder Datendateien geschrieben Nur Enterprise Edition!
  17. 17. Seite 17Gunther Pippèrr © 2015 http://www.pipperr.de Ausführung Worker-Prozesse  Der Export wird mit Direct-Path-Export oder External Table von den Worker-Prozessen durchgeführt  Die Export-Datei kann in bis zu 99 einzelne Dateien zerlegt werden – dumpfile=exportname_%U.dmp filesize=650MB
  18. 18. Seite 18Gunther Pippèrr © 2015 http://www.pipperr.de Monitoring (1)  Jobs in der DB überwachen – Views: DBA_DATAPUMP_JOBS DBA_DATADUMP_SESSIONS  Interaktiver Modus – Mit CTRL-C laufenden Client in den interaktiven Modus versetzen – Mit attach=<JOB_NAME> an den laufenden Export andocken
  19. 19. Seite 19Gunther Pippèrr © 2015 http://www.pipperr.de Monitoring (2)  Kommando „Status“ des Clients Export> status Job: SYS_EXPORT_SCHEMA_01 Operation: EXPORT Mode: SCHEMA State: EXECUTING Bytes Processed: 0 Current Parallelism: 1 Job Error Count: 0 Dump File: /opt/oracle/products/10.2.0/rdbms/log/dptest.dmp bytes written: 4.096 Worker 1 Status: State: EXECUTING Object Schema: BHGVK2 Object Name: MYTEST Object Type: SCHEMA_EXPORT/PROCEDURE/ALTER_PROCEDURE Completed Objects: 2 Total Objects: 2 Worker Parallelism: 1 Mit „CTRL-C“ in den Kommando Modus wechseln
  20. 20. Seite 20Gunther Pippèrr © 2015 http://www.pipperr.de Ein Performance-Vergleich  Export einer 2,3 GB großen Datenbank  Versuch EXP  Versuch EXPD PS> Measure-Command { exp "'/ as sysdba'" full=yes file=full_exp.dmp } PS> Measure-Command { expdp "'/ as sysdba'" FULL=YES DIRECTORY=WORK_EXPORT DUMPFILE=full_expdp.dmp } Ergebnis: - Datapump sollte in der Regel schnell sein - Dumpfile-Größe bei Data Pump kleiner Dump File ca. 209 MB Dump File ca. 83,9 MB Minutes : 4 Seconds : 48 Milliseconds : 681 Minutes : 5 Seconds : 47 Milliseconds : 716
  21. 21. Seite 21Gunther Pippèrr © 2015 http://www.pipperr.de Die Top Features von Oracle Data Pump  Parallele Ausführung auf dem Server möglich  Direkte Kontrolle über die Ausführung durch dedizierten Kontrollprozess – Status-Übersicht – Restart eines Prozesses – Neue Worker-Prozesse hinzufügen Hauptnachteil: Zugang zum Server wird benötigt, die Export Daten werden auf dem Server erstellt Lösung: Share auf das die DB schreiben kann und alle lesen können
  22. 22. Seite 22Gunther Pippèrr © 2015 http://www.pipperr.de Der Praktische Einsatz von Data Pump Wie kann ich das am besten täglich verwenden
  23. 23. Seite 23Gunther Pippèrr © 2015 http://www.pipperr.de Vorbereitung – Directory Objekt für den Export  Einmalige Vorbereitung – Anlegen eines Export Verzeichnisses im Betriebssystem • Schreib- und Leserechte für den Oracle DB Prozess Owner auf den Directory einrichten! – DB SYS User: Erstellen eines Datenbank Directory Objects das auf diese Export Verzeichnis zeigt • Rechte an den Export User vergeben falls nicht mit SYS exportiert werden soll sqlplus / as sysdba create directory WORK_EXPORT as 'D:datapump_workshop'; grant read,write on directory WORK_EXPORT to GPI;
  24. 24. Seite 24Gunther Pippèrr © 2015 http://www.pipperr.de Vorbereitung – Rechte für den Export User  Um nur seine eigenen Objekte zu exportieren – Rolle CONNECT + RESOURCE + Schreibrechte auf dem eigenen Default Tablespace  Um alle Objekte der Datenbank zu exportieren/importieren – Rolle EXP_FULL_DATABASE und IMP_FULL_DATABASE sqlplus / as sysdba grant CONNECT to GPI; grant RESOURCE to GPI; alter user GPI quota 10G on users; grant EXP_FULL_DATABASE to GPI; grant IMP_FULL_DATABASE to GPI;
  25. 25. Seite 25Gunther Pippèrr © 2015 http://www.pipperr.de Export Die Daten extrahieren
  26. 26. Seite 26Gunther Pippèrr © 2015 http://www.pipperr.de Logisches Backup – Einen User exportieren(1)  Aufgabe: Daten sollen täglich gesichert werden und bei Bedarf wieder eingespielt werden  Problem: Alle Tabellen müssen im gleiche Stand zu einander konsistent gesichert werden! – Sonst passen zum Beispiel die Master Detail Beziehungen nicht zu einander!  Lösung A: Während der Sicherung wird die Applikation angehalten  Lösung B: Die Daten werden transaktional zum Zeitpunkt X exportiert, unabhängig davon die lange der eigentliche Export dauert! Wenig praktikabel So sollte das immer durchgeführt werden! Funktioniert aber nur mit ausreichenden Ressourcen im Rollback Segment
  27. 27. Seite 27Gunther Pippèrr © 2015 http://www.pipperr.de Zusätzlich aus dem UNDO Segment die alten Daten lesen Konsistenter Export  Alle Tabelle zum gleichen Zeitpunkt exportieren Zeit => B C A Start Time = SCN Tabelle A Tabelle B Tabelle C Daten werde verändert Daten werde verändert Export File ORA-01555 „Snapshot Too Old“ Risiko! FLASHBACK_TIME=SYSTIMESTAMP FLASHBACK_SCN=582159018
  28. 28. Seite 28Gunther Pippèrr © 2015 http://www.pipperr.de Logisches Backup – Einen User exportieren(2)  Eine Steuerdatei für den Export erstellen – Steuerdatei in einem Editor erstellen #Wo soll der Export landen und wie soll der Export heißen DIRECTORY=WORK_EXPORT DUMPFILE=gpi_user_export.dmp LOGFILE=gpi_user_export.log #Welchen Namen soll der Export in der DB erhalten #Welchen Name bekommt die Metadaten Tabelle JOB_NAME=gpi_user_export_05_12_2015 #führe einen konsistenten Export zu diesem Zeitpunkt aus FLASHBACK_TIME=SYSTIMESTAMP #Welcher User soll exportiert werden SCHEMAS=GPI,SCOTT #Optional, sollen bereits bestehende Exports überschrieben werden REUSE_DUMPFILES=YES #Performance EXCLUDE=STATISTICS METRICS=YES Empfehlung: Möglichst immer Steuerdatei statt Kommando Zeilen Übergabe verwenden!
  29. 29. Seite 29Gunther Pippèrr © 2015 http://www.pipperr.de Logisches Backup – Eine User exportieren(3)  Den Export starten – Export als SYS lokal aufrufen – Export als GPI User über SQL*Net export ORACLE_SID=GPI $ORACLE_HOME/bin/expdp "'/ as SYSDBA'" parfile=~/export_gpi_user.dpctl $ORACLE_HOME/bin/expdp gpi/gpi@gpi parfile=~/export_gpi_user.dpctl
  30. 30. Seite 30Gunther Pippèrr © 2015 http://www.pipperr.de Die Größe eines Exports vorab berechnen  Parameter ESTIMATE_ONLY=YES – Parameterdatei #Wo soll der Log von dem Test Export liegen DIRECTORY=WORK_EXPORT LOGFILE=gpi_user_export_calculate.log #Welchen Namen soll der Export erhalten in der DB erhalten JOB_NAME=gpi_user_export_05_12_2015 #Für welche User soll der Test Export durchgeführt werden SCHEMAS=GPI,GPI2 #Nur schätzen! ESTIMATE_ONLY=YES Objekttyp SCHEMA_EXPORT/TABLE/TABLE_DATA wird verarbeitet . geschätzt "GPI"."TGPI" 12 MB . geschätzt "GPI2"."TGPI2" 12 MB Gesamte Schätzung mit BLOCKS Methode: 24 MB Auszug aus der Logdatei:
  31. 31. Seite 31Gunther Pippèrr © 2015 http://www.pipperr.de 1 – 99 Export-Datei erzeugen mit %U  %U und FILESIZE – Parameterdatei #Wo soll der Export landen und wie soll der Export heißen DIRECTORY=WORK_EXPORT #Export in 1MB große Files zerlegen DUMPFILE=gpi_user_export_%U.dmp FILESIZE=1M LOGFILE=gpi_user_export.log #Welchen Namen soll der Export erhalten in der DB erhalten JOB_NAME=gpi_user_export_05_12_2015 #führe einen konsistenten Export zu diesem Zeitpunkt aus FLASHBACK_TIME=SYSTIMESTAMP #Welcher User soll exportiert werden SCHEMAS=GPI,GPI2
  32. 32. Seite 32Gunther Pippèrr © 2015 http://www.pipperr.de Export komprimieren  Parameter COMPRESION – COMPRESSION=[ALL | DATA_ONLY | METADATA_ONLY | NONE] • ALL enables compression for the entire export operation. The ALL option requires that the Oracle Advanced Compression option be enabled. • DATA_ONLY results in all data being written to the dump file in compressed format. The DATA_ONLY option requires that the Oracle Advanced Compression option be enabled. • METADATA_ONLY results in all metadata being written to the dump file in compressed format. This is the default. • NONE disables compression for the entire export operation. https://docs.oracle.com/cd/E11882_01/server.112/e22490/dp_export.htm#SUTIL838
  33. 33. Seite 33Gunther Pippèrr © 2015 http://www.pipperr.de Export parallelisieren  Parameter PARALLEL – Default 1 – Sinnvolle Werte max. CPU Anzahl Nur mit der Enterprise Edition der Datenbank
  34. 34. Seite 34Gunther Pippèrr © 2015 http://www.pipperr.de Nur die Metadaten exportieren  Parameter CONTENT=METADATA_ONLY – Nur die DDL‘s aller DB Objekte werden exportiert
  35. 35. Seite 35Gunther Pippèrr © 2015 http://www.pipperr.de Nur Teile der Daten exportieren  Zum Beispiel um nur eine Teil der Produktion als Test Daten einspielen, z.B. nur 10% – Parameter SAMPLE=[[schema_name.]table_name:]sample_percent  Nur bestimmte Daten exportieren – Parameter QUERY = [schema.][table_name:] query_clause QUERY=employees:"WHERE department_id > 10 AND salary > 10000" SAMPLE=scott.employees:10
  36. 36. Seite 36Gunther Pippèrr © 2015 http://www.pipperr.de Zwischen verschiedene DB Version exportieren  Parameter VERSION  Export – Daten werden so exportiert, das diese wieder in die „ältere“ Version importiert werden können – Beispiel : VERSION=10.1.0.0.0 Quelle 12c Ziel 10g R1
  37. 37. Seite 37Gunther Pippèrr © 2015 http://www.pipperr.de Wie löst Data Pump Abhängigkeiten auf?  Siehe View: Database/Schema/Table_EXPORT_OBJECTS SQL> select object_path,comments from table_export_objects where object_path like 'TABLE%'; OBJECT_PATH COMMENTS -------------------- ---------------------------------------- TABLE/AUDIT_OBJ Object audits on the selected tables TABLE/COMMENT Table and column comments on the selecte d tables TABLE/CONSTRAINT Constraints (including referential const raints) TABLE/CONSTRAINT/REF Referential constraints _CONSTRAINT TABLE_EXPORT/TABLE/A Object audits on the selected tables
  38. 38. Seite 38Gunther Pippèrr © 2015 http://www.pipperr.de Filter für DB-Objekte  Erweiterte Auswahl von Filtern für DB-Objekte – Mit include und exclude können für alle DB-Objekte Filterregeln gesetzt werden Siehe auch Metalink Doc ID 341733.1 EXCLUDE = object_type[:name_clause] [, ...] INCLUDE = object_type[:name_clause] [, ...] SCHEMAS=scott EXCLUDE=SEQUENCE, TABLE:"IN ('EMP', 'DEPT')" SCHEMAS=scott INCLUDE=FUNCTION, PACKAGE, PROCEDURE, TABLE:"= 'EMP'" Beispiele: Entweder include ODER exclude!
  39. 39. Seite 39Gunther Pippèrr © 2015 http://www.pipperr.de Nach was kann gefiltert werden?  Nur entweder nach EXCLUDE oder INCLUDE  Je nach Export Type kann nach dem folgenden gefiltert werden:  Job_type: het_type: • FULL => DATABASE_EXPORT • SCHEMA => SCHEMA_EXPORT • TABLE => TABLE_EXPORT • TRANSPORTABLE => TRANSPORTABLE_EXPORT select seq_num , full_path , het_type from sys.datapump_paths order by het_type,seq_num /
  40. 40. Seite 40Gunther Pippèrr © 2015 http://www.pipperr.de Beispiel Exclude – Keine Statistiken exportieren  Parameter „exclude=statistics” – Keine Statistiken exportieren
  41. 41. Seite 41Gunther Pippèrr © 2015 http://www.pipperr.de Import Daten wieder importieren
  42. 42. Seite 42Gunther Pippèrr © 2015 http://www.pipperr.de Export wieder einspielen – Daten ersetzen(1)  Die tägliche logische Sicherung der Daten soll wieder in die Datenbank unter dem gleichen User eingespielt und dabei sollen alle Daten ersetzen werden – Eine Steuerdatei für den Import erstellen DIRECTORY=WORK_EXPORT DUMPFILE=gpi_user_export.dmp LOGFILE=gpi_user_import.log #Welchen Namen soll der Export erhalten in der DB erhalten JOB_NAME=gpi_user_import_05_12_2015 #Welcher User soll importiert werden SCHEMAS=GPI #Was soll mit existierenden Tabellen passieren? TABLE_EXISTS_ACTION=REPLACE
  43. 43. Seite 43Gunther Pippèrr © 2015 http://www.pipperr.de Export wieder einspielen – Optionen (2)  Was soll mit existierenden Tabellen passieren?  Parameter – TABLE_EXISTS_ACTION=[SKIP | APPEND | TRUNCATE | REPLACE] • SKIP = Überspringen • APPEND = Daten anhängen • TRUNCATE = Lösche die Daten und importiere • REPLACE = Drop Table und importiere Default
  44. 44. Seite 44Gunther Pippèrr © 2015 http://www.pipperr.de Export in ein anderes User Schema einspielen  Parameter REMAP_SCHEMA – <Quelle im export file>:<Ziel Schema in der Datenbank> – Ziel muss nicht existieren, wird angelegt falls der Import User genügend Rechte hat (wie Import mit SYS) – Es können gleichzeitig auch Quellen in ein Ziel importiert werden DIRECTORY=WORK_EXPORT DUMPFILE=scott_user_export.dmp LOGFILE=gpi_user_import.log #Welchen Namen soll der Export erhalten in der DB erhalten JOB_NAME=scott_user_import_05_12_2015 #Welcher User soll importiert werden REMAP_SCHEMA=GPI:GPI3 REMAP_SCHEMA=GPI2:GPI3 #Was soll mit existierenden Tabellen passieren? TABLE_EXISTS_ACTION=REPLACE
  45. 45. Seite 45Gunther Pippèrr © 2015 http://www.pipperr.de Beispiel Include – Nur eine Tabelle importieren  Parameter schemas=hr include=table/table:"= 'EMPLOYEES'“ – Nur die Tabelle wird importiert  Parameter schemas=hr include=table:"= 'EMPLOYEES'" – Tabelle + alle Objekte im Pfad werden importiert Im Pfad wird gefunden … SCHEMA_EXPORT/TABLE/TABLE SCHEMA_EXPORT/TABLE/TABLE_DATA SCHEMA_EXPORT/TABLE/GRANT SCHEMA_EXPORT/TABLE/INDEX ….
  46. 46. Seite 46Gunther Pippèrr © 2015 http://www.pipperr.de Tabellen beim Import umbenennen  Parameter REMAP_TABLE – Beispiel REMAP_TABLE=emp:mitarbeiter
  47. 47. Seite 47Gunther Pippèrr © 2015 http://www.pipperr.de SQL/DDL aus einem Export extrahieren  Import nur des SQL‘s des Exports in eine Log Datei  Nur zum Beispiel Tabellen DDL erzeugen – Parameter include=TABLE impdp "'/ as sysdba'" directory=WORK_EXPORT dumpfile=GPI_USER_EXPORT_%U.DMP sqlfile=gpi_script.sql
  48. 48. Seite 48Gunther Pippèrr © 2015 http://www.pipperr.de DDL-Transformation beim Import  Objekt-Meta-Daten werden als XML-Datei gespeichert  Durch eine XSL-Transformation werden während dem Import Eigenschaften geändert  IMPDP stellt zur Verfügung – REMAP_SCHEMA (wie fromUser/toUser beim alten IMP) – REMAP_TABLESPACE,REMAP_DATAFILE – TRANSFORM=<storge Klausel> Damit können die Storage-Klauseln entfernt werden
  49. 49. Seite 49Gunther Pippèrr © 2015 http://www.pipperr.de Job Control Exp/Imp kontrollieren und überwachen
  50. 50. Seite 50Gunther Pippèrr © 2015 http://www.pipperr.de Einen Export Job nur initialisieren  Parameter ABORT_STEP – -1 Nur Meta Daten Tabelle anlegen – <n> = Export durchführen bis zu dieser Process Number in der Master table  Job Tabelle wird unter dem Export User angelegt:
  51. 51. Seite 51Gunther Pippèrr © 2015 http://www.pipperr.de An eine Job wieder anknüpfen  Parameter ATTACH – An den Job nun anknüpfen – Im Interaktiven Modus jetzt starten und Log Ausgaben anzeigen lassen • STATUS => Zeigt den Status • START_JOB => Startet den Job erneut • CONTINUE_CLIENT => Job läuft im Client Modus weiter expdp "'/ as sysdba'" ATTACH=GPI_USER_EXPORT_05_12_2015
  52. 52. Seite 52Gunther Pippèrr © 2015 http://www.pipperr.de Job Control mit Ctr-C starten  Mit Ctrl-C kann der Job in den Interaktiven Modus versetzt werden The following commands are valid while in interactive mode. Note: abbreviations are allowed Command Description ------------------------------------------------------------------------------ ADD_FILE Add dumpfile to dumpfile set. CONTINUE_CLIENT Return to logging mode. Job will be re-started if idle. EXIT_CLIENT Quit client session and leave job running. FILESIZE Default filesize (bytes) for subsequent ADD_FILE commands. HELP Summarize interactive commands. KILL_JOB Detach and delete job. PARALLEL Change the number of active workers for current job. PARALLEL=<number of workers>. START_JOB Start/resume current job. STATUS Frequency (secs) job status is to be monitored where the default (0) will show new status when available. STATUS[=interval] STOP_JOB Orderly shutdown of job execution and exits the client. STOP_JOB=IMMEDIATE performs an immediate shutdown of the Data Pump job.
  53. 53. Seite 53Gunther Pippèrr © 2015 http://www.pipperr.de Eine Job beenden  Mit „Ctr-C“ oder mit ATTACH eine Job Console öffenen  Mit „KILL_JOB“ den Job beenden Achtung! Möglichst IMMER sauber den Job so beenden! Ansonsten können Leichen/Reste der Jobs in den DB verbleiben wie zum Beispiel die Metadaten Tabelle oder gelegentlich auch mal ein Worker Prozesse!
  54. 54. Seite 54Gunther Pippèrr © 2015 http://www.pipperr.de Restart  Ein Restart ist immer dann möglich wenn: – Die Master-Table ist noch intakt – Die Dump file Set noch in Ordnung  Neustart mit: – Ein Client kann sich über „ATTACH=<job_name>“ wieder verbinden – Bei Problemen mit dem letzten zu exportierenden Objekt kann mit „START=SKIP_CURRENT“ dieses übersprungen werden In Informationen über den Job sind immer in der aktuellen Master-Tabelle hinterlegt!
  55. 55. Seite 55Gunther Pippèrr © 2015 http://www.pipperr.de Weitere Features Noch mehr Möglichkeiten
  56. 56. Seite 56Gunther Pippèrr © 2015 http://www.pipperr.de Der Netzwerk-Modus  Daten zwischen zwei Instanzen austauschen – Nur zwischen gleiche DB-Versionen zu empfehlen – Datenaustausch über DB-Link – Daten werden über „insert as select“ kopiert – Kann auch Remote „read only“ DBs exportieren, wenn die Ziel-Instanz die Jobs steuert – Keine Unterstützung für LONG/LONG RAW
  57. 57. Seite 57Gunther Pippèrr © 2015 http://www.pipperr.de Beispiel Netzwerk Modus  Kein Export notwendig  Aufruf mit Import  Parameter NETWORK_LINK=<Source DB> Ziel Quelle DB Link auf die Quell Datenbank => impdp "'/ as sysdba'" DIRECTORY=WORK_EXPORT NETWORK_LINK=MYSOURCE LOGFILE=NET_IMPORT_PRODDEV.LOG EXCLUDE=STATISTICS REMAP_SCHEMA=SCOTT:SCOTT2 MYSOURCE
  58. 58. Seite 58Gunther Pippèrr © 2015 http://www.pipperr.de Performance-Überlegungen  I/O-Bandbreite ist der wichtigste Faktor – DUMP File auf einen anderen Bereich als die Datendateien legen – Mehrere Dump File Locations angeben  Etwas mehr SGA für die JOB-Ausführung  Auf genügend Platz in den Rollback -Segmenten achten
  59. 59. Seite 59Gunther Pippèrr © 2015 http://www.pipperr.de Performance-Überlegungen  Ausführungszeiten anzeigen lassen – METRICS=YES  Export: – Statistiken nicht exportieren • EXCLUDE=STATISTICS  Import – Indexes erste nachträglich erstellen • EXCLUDE=INDEXES – SQL aus dem Export extrahieren • INCLUDE=INDEXES SQLFILE=indexes.sql – SQL überarbeiten und parallel ausführen
  60. 60. Seite 60Gunther Pippèrr © 2015 http://www.pipperr.de Trace für Data Pump anlegen  Mit „trace=480300“ kann für den Master Control Process (MCP) und den Worker-Prozess ein Trace angelegt werden Metalink Doc ID: Note:286496.1
  61. 61. Seite 61Gunther Pippèrr © 2015 http://www.pipperr.de Sicherheitsüberlegungen  Problematik des Überschreibens und das Anlegen von Dateien im Betriebssystem – Dateien werden mit den Rechten des Oracle-Prozesses in Verzeichnisse geschrieben
  62. 62. Seite 62Gunther Pippèrr © 2015 http://www.pipperr.de Bekannte Probleme  Export / Import von Objekt-Typen  Lösung: Neue OID errechnen lassen mit: – Parameter transform=OID:n:type ORA-39083: Objekttyp TYPE konnte nicht erstellt werden, Fehler: ORA-02304: Ungültiges Objektidentifizierungsliteral Fehlerhafte SQL ist: CREATE TYPE "OE9"."CUST_ADDRESS_TYP" OID '88A4AF6A4CD1656DE034080020E0EE3D' AS OBJECT ( street_address VARCHAR2(40) , postal_code VARCHAR2(10) , city VARCHAR2(30) , state_province VARCHAR2(10) , country_id CHAR(2) );
  63. 63. Seite 63Gunther Pippèrr © 2015 http://www.pipperr.de Neue Feature mit 12c - Export  Eine View als Table – Parameter • VIEWS_AS_TABLES=[schema_name.]view_name[:table_name],
  64. 64. Seite 64Gunther Pippèrr © 2015 http://www.pipperr.de Neue Feature mit 12c - Import  Nologging Mode beim Import – Parameter transform=disable_archive_logging:y – Weniger Archive Logs beim Import – Original Settings auf dem DB Objekten werden nach dem Import wieder hergestellt
  65. 65. Seite 65Gunther Pippèrr © 2015 http://www.pipperr.de Neue Feature mit 12c  Log mit Zeitstempel – Parameter logtime=all – Timestamp bei jeder Operation  LOB nach Securefile transformieren – Parameter transform=lob_storage:securefile
  66. 66. Seite 66Gunther Pippèrr © 2015 http://www.pipperr.de Data Pump aus der DB aufrufen Eine Export per PL/SQL durchführen
  67. 67. Seite 67Gunther Pippèrr © 2015 http://www.pipperr.de Das Package DBMS_DATAPUMP  Starten und verwalten von Import/Export aus der Datenbank heraus  Benötigte Rollen: • EXP_FULL_DATABASE • IMP_FULL_DATABASE  Job anlegen mit: dbms_datapump.open
  68. 68. Seite 68Gunther Pippèrr © 2015 http://www.pipperr.de Einen Export aus der DB aufrufen  Starten des Export-Jobs in der DB DECLARE h1 NUMBER; -- Data Pump job handle BEGIN h1 := DBMS_DATAPUMP.OPEN('EXPORT','SCHEMA',NULL,'JOBNAME','LATEST'); DBMS_DATAPUMP.ADD_FILE( handle => h1 , filename =>'GPI_DBINTERN.dmp' , directory => 'WORK_EXPORT' , filetype => 1 ); Dbms_DataPump.Add_File( handle => h1 , filename => 'expdp_plsql.log' , directory => 'WORK_EXPORT' , filetype => 3 ); DBMS_DATAPUMP.METADATA_FILTER(h1,'SCHEMA_EXPR','IN (''GPI'')'); DBMS_DATAPUMP.START_JOB(h1); END; / Typ 3 : Log Datei Typ 1 : Export DateiKU$_FILE_TYPE_DUMP_FILE KU$_FILE_TYPE_LOG_FILE
  69. 69. Seite 69Gunther Pippèrr © 2015 http://www.pipperr.de Mit dem SQL*Developer DP Skripte erzeugen  DBA Tools verwenden Import Wizard kann auch den Inhalt von einem Dump lesen!
  70. 70. Seite 70Gunther Pippèrr © 2015 http://www.pipperr.de Mit dem SQL*Developer DP Skripte erzeugen  Skripte werden über eine Job auf der Datenbank heraus ausgeführt Demo
  71. 71. Seite 71Gunther Pippèrr © 2015 http://www.pipperr.de External Table mit Data Pump Datenaustausch zwischen Datenbanken Archivieren von Alt Daten
  72. 72. Seite 72Gunther Pippèrr © 2015 http://www.pipperr.de Externe Tabelle mit Data Pump anlegen  Externe Tabelle vom Type oracle_datapump anlegen  Abfragen: CREATE TABLE tgpi_export ORGANIZATION EXTERNAL ( TYPE oracle_datapump DEFAULT DIRECTORY WORK_EXPORT LOCATION ('tgpi_export_table.dmp') ) AS SELECT * FROM TGPI; select count(*) from TGPI; Mit Oracle 12c Kompression möglich (Lizenz pflichtig!) ACCESS PARAMETERS (COMPRESSION ENABLED MEDIUM)
  73. 73. Seite 73Gunther Pippèrr © 2015 http://www.pipperr.de Externe Tabelle einbinden  In einer anderen DB wieder einbinden CREATE TABLE tgpi_export( -- Spalten Definition ) ORGANIZATION EXTERNAL ( TYPE oracle_datapump DEFAULT DIRECTORY WORK_EXPORT LOCATION ('tgpi_export_table.dmp') ) / Select count(*) from tgpi_export /
  74. 74. Seite 74Gunther Pippèrr © 2015 http://www.pipperr.de Einsatz  Archivierung von Tabellen – Vorteil: • Tabelle ist Read Only • Datenbank wird kleiner (Backup Volumen!) – Nachteil: • Langsamer  Transport von Daten
  75. 75. Seite 75Gunther Pippèrr © 2015 http://www.pipperr.de Transportable Tablespace Datendateien austauschen
  76. 76. Seite 76Gunther Pippèrr © 2015 http://www.pipperr.de Transportable Tablespaces  Schnellste Möglichkeit Daten zwischen zwei Datenbanken auszutauschen  Mit Storage Snapshot Techniken lassen sich TeraByte an Daten in Sekunden austauschen – Mit expdp werden nur die Meta Daten erzeugt – Datendatei zur neuen Datenbank kopieren • Tipp: ocopy unter Windows verwenden um geöffnete Dateien zu kopieren – Datendatei in der neuen Umgebung wieder einbinden
  77. 77. Seite 77Gunther Pippèrr © 2015 http://www.pipperr.de Voraussetzung bzw. Nachteil  Gleicher Zeichensatz zwischen den Datenbanken  Gleiche BIG/Little Endian Daten Darstellung  Alle transportieren Objekte haben keine Abhängigkeiten zu anderen Tablespaces wie Indexes etc.  Daten werden nicht automatisch reorganisiert Ablauf siehe z.B.: http://www.oracle.com/webfolder/technetwork/de/community/dbadmin/tipps/tts/index.html
  78. 78. Seite 78Gunther Pippèrr © 2015 http://www.pipperr.de Data Masking mit Data Pump Daten beim laden verändern
  79. 79. Seite 79Gunther Pippèrr © 2015 http://www.pipperr.de Daten beim Import manipulieren  Parameter REMAP_DATA – REMAP_DATA=[schema.]tablename.column_name:[schema .]pkg.function  Daten können bei Import mit einer in der DB hinterlegten eigenen Funktion manipuliert werden DIRECTORY=WORK_EXPORT DUMPFILE=gpi_user_export.dmp LOGFILE=gpi_user_import.log #Welchen Namen soll der Export erhalten in der DB erhalten JOB_NAME=gpi_user_import_05_12_2015 #Welcher User soll importiert werden SCHEMAS=GPI #Daten mit einer Funktion ersetzen REMAP_DATA=hr.mitarbeiter.geburstdatum:hr.dataMappingFunction
  80. 80. Seite 80Gunther Pippèrr © 2015 http://www.pipperr.de Zusammenfassung Was bringt uns das?
  81. 81. Seite 81Gunther Pippèrr © 2015 http://www.pipperr.de Vor- und Nachteile  Vorteil: – Ausführung aus PL/SQL über eigene API – Restart möglich – Wesentlich performanter  Nachteil: – Je nach dem, läuft nur auf dem Server
  82. 82. Seite 82Gunther Pippèrr © 2015 http://www.pipperr.de Zusammenfassung  Export/Import direkt aus der Datenbank ausführen  Wesentlich bessere Steuerung als mit IMP/EXP  Deutlich bessere Performance
  83. 83. Seite 83Gunther Pippèrr © 2015 http://www.pipperr.de AF& Fragen Antworten Oracle Data Pump
  84. 84. Seite 84Gunther Pippèrr © 2014 http://www.pipperr.de Gunther Pippèrr - IT-Architekt - Berater • High-Tech • Real Estate • Utility • Communications • IT System Architekt • Technische Projektleitung • Design und Implementierung von Datenbank Anwendungen • Entwurf und Umsetzung von IT Infrastrukturen zum Datenmanagement Gunther Pippèrr arbeitet seit mehr als 16 Jahre intensiv mit den Produkten der Firma Oracle im Bereich Datenbanken/Applikationsserver und Dokumenten-Management. Herr Pippèrr hat sich tiefes Wissen über den Aufbau komplexer IT Architektur aneignen können und hat dieses in der Praxis erfolgreich umgesetzt. Herr Pippèrr hat eine Abschluss als Dipl. Ing. Technische Informatik (FH) an der FH Weingarten. Industry Expertise Background Functional Expertise  Datenbank Architekt für ein Projekt zur Massendatenverarbeitung in der Telekommunikation  Architekt und technische Projektverantwortung für ein Smart Metering Portal für das Erfassen von Energiezählerdaten und Asset Management  Architekt und Projektleitung , Datenbank Design und Umsetzung für die Auftragsverwaltung mit Steuerung von externen Mitarbeitern für den Sprachdienstleister von deutschen Technologiekonzern  Architekt und technische Projektverantwortung für IT Infrastrukturprojekte, z.B.:  Zentrale Datenhaltung für Münchner Hotelgruppe mit über 25 Hotels weltweit,  Redundante Cluster Datenbank Infrastrukturen für diverse größere Web Anwendungen wie Fondplattform und Versicherungsportale, Loyalty Card Anwendungen  CRM- und Ausschreibungsportal für großen Münchner Bauträger Selected Experience http://www.pipperr.de http://orapowershell.codeplex.com Web

×