SlideShare ist ein Scribd-Unternehmen logo
1 von 84
Downloaden Sie, um offline zu lesen
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
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
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
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
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
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:
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
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:=>
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
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
Weitere
Clients
DBMS_DATAPUMP
Loader
External Table API
DataPump
Direct Path API Metadata API:
DBMS_METADATA
Data/Metadata movement engine
Data Pump
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
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)
 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
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!
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!
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
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
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
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
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
Seite 22Gunther Pippèrr © 2015 http://www.pipperr.de
Der Praktische Einsatz von
Data Pump
Wie kann ich das am besten täglich
verwenden
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;
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;
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 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
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
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!
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
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:
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
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
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
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
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
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
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
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!
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
/
Seite 40Gunther Pippèrr © 2015 http://www.pipperr.de
Beispiel Exclude – Keine Statistiken exportieren
 Parameter „exclude=statistics”
– Keine Statistiken exportieren
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 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
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
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
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
….
Seite 46Gunther Pippèrr © 2015 http://www.pipperr.de
Tabellen beim Import umbenennen
 Parameter REMAP_TABLE
– Beispiel
REMAP_TABLE=emp:mitarbeiter
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
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
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 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:
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
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.
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!
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!
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 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
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
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
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
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
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
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)
);
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],
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
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
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 aus der
Datenbank heraus
 Benötigte Rollen:
• EXP_FULL_DATABASE
• IMP_FULL_DATABASE
 Job anlegen mit: dbms_datapump.open
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
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!
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
Seite 71Gunther Pippèrr © 2015 http://www.pipperr.de
External Table mit Data Pump
Datenaustausch zwischen Datenbanken
Archivieren von Alt Daten
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)
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
/
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
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 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
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
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=[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
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
– Restart möglich
– Wesentlich performanter
 Nachteil:
– Je nach dem, läuft nur auf dem Server
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
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
• 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

Weitere ähnliche Inhalte

Was ist angesagt?

MySQL Absicherung und Datensicherung
MySQL Absicherung und DatensicherungMySQL Absicherung und Datensicherung
MySQL Absicherung und DatensicherungLenz Grimmer
 
DOAG2018 / Oracle DB erfolgreich betreiben auf SPARC/LDoms/Solaris/ZFS
DOAG2018 / Oracle DB erfolgreich betreiben auf SPARC/LDoms/Solaris/ZFSDOAG2018 / Oracle DB erfolgreich betreiben auf SPARC/LDoms/Solaris/ZFS
DOAG2018 / Oracle DB erfolgreich betreiben auf SPARC/LDoms/Solaris/ZFSJomaSoft
 
OSMC 2008 | Monitoring Microsoft SQL Server by Michael Streb
OSMC 2008 | Monitoring Microsoft SQL Server by Michael StrebOSMC 2008 | Monitoring Microsoft SQL Server by Michael Streb
OSMC 2008 | Monitoring Microsoft SQL Server by Michael StrebNETWAYS
 
Rex Linuxtag 2012
Rex Linuxtag 2012Rex Linuxtag 2012
Rex Linuxtag 2012inovex GmbH
 
DOAG 2018 / Praktische Erfahrungen mit SPARC S7-2 Server
DOAG 2018 / Praktische Erfahrungen mit SPARC S7-2 ServerDOAG 2018 / Praktische Erfahrungen mit SPARC S7-2 Server
DOAG 2018 / Praktische Erfahrungen mit SPARC S7-2 ServerJomaSoft
 
PowerShell Sicherheit in 6 Schritten produktiv absichern
PowerShell Sicherheit in 6 Schritten produktiv absichernPowerShell Sicherheit in 6 Schritten produktiv absichern
PowerShell Sicherheit in 6 Schritten produktiv absichernAttila Krick
 
Monitoring von SAP mit check_sap_health
Monitoring von SAP mit check_sap_healthMonitoring von SAP mit check_sap_health
Monitoring von SAP mit check_sap_healthGerhard Lausser
 
Opensource Tools für das Data Center Management
Opensource Tools für das Data Center ManagementOpensource Tools für das Data Center Management
Opensource Tools für das Data Center Managementinovex GmbH
 
Automation with Ansible
Automation with AnsibleAutomation with Ansible
Automation with AnsibleSusannSgorzaly
 
Schlaglichter Oracle DB 11gR2 - DOAG Regio-Treffen 2010 - OPITZ CONSULTING - ...
Schlaglichter Oracle DB 11gR2 - DOAG Regio-Treffen 2010 - OPITZ CONSULTING - ...Schlaglichter Oracle DB 11gR2 - DOAG Regio-Treffen 2010 - OPITZ CONSULTING - ...
Schlaglichter Oracle DB 11gR2 - DOAG Regio-Treffen 2010 - OPITZ CONSULTING - ...OPITZ CONSULTING Deutschland
 
Nagios Conference 2007 | Vmware Monitoring by Ingo Latschner
Nagios Conference 2007 | Vmware Monitoring by Ingo LatschnerNagios Conference 2007 | Vmware Monitoring by Ingo Latschner
Nagios Conference 2007 | Vmware Monitoring by Ingo LatschnerNETWAYS
 
C1 Adcon Backup For Domino
C1 Adcon Backup For DominoC1 Adcon Backup For Domino
C1 Adcon Backup For DominoAndreas Schulte
 
Andreas Jordan – IT-Tage 2015 – Flashback – Warum Oracle Zeitreisen anbieten ...
Andreas Jordan – IT-Tage 2015 – Flashback – Warum Oracle Zeitreisen anbieten ...Andreas Jordan – IT-Tage 2015 – Flashback – Warum Oracle Zeitreisen anbieten ...
Andreas Jordan – IT-Tage 2015 – Flashback – Warum Oracle Zeitreisen anbieten ...Informatik Aktuell
 
MySQL - New Features 5.6
MySQL - New Features 5.6MySQL - New Features 5.6
MySQL - New Features 5.6FromDual GmbH
 
Praktische Erfahrungen mit den kleinen SPARC S7-2 Servern
Praktische Erfahrungen mit den kleinen SPARC S7-2 ServernPraktische Erfahrungen mit den kleinen SPARC S7-2 Servern
Praktische Erfahrungen mit den kleinen SPARC S7-2 ServernJomaSoft
 
Upgrading Puppet CommitterConf Essen 2014
Upgrading Puppet CommitterConf Essen 2014Upgrading Puppet CommitterConf Essen 2014
Upgrading Puppet CommitterConf Essen 2014Martin Alfke
 
Oracle Critical Patch Update und Patch Set Update - DOAG SIG Security 2011 - ...
Oracle Critical Patch Update und Patch Set Update - DOAG SIG Security 2011 - ...Oracle Critical Patch Update und Patch Set Update - DOAG SIG Security 2011 - ...
Oracle Critical Patch Update und Patch Set Update - DOAG SIG Security 2011 - ...OPITZ CONSULTING Deutschland
 
Python builds mit ant
Python builds mit antPython builds mit ant
Python builds mit antroskakori
 
Einführung in Elasticsearch - August 2014
Einführung in Elasticsearch - August 2014Einführung in Elasticsearch - August 2014
Einführung in Elasticsearch - August 2014inovex GmbH
 

Was ist angesagt? (20)

MySQL Absicherung und Datensicherung
MySQL Absicherung und DatensicherungMySQL Absicherung und Datensicherung
MySQL Absicherung und Datensicherung
 
DOAG2018 / Oracle DB erfolgreich betreiben auf SPARC/LDoms/Solaris/ZFS
DOAG2018 / Oracle DB erfolgreich betreiben auf SPARC/LDoms/Solaris/ZFSDOAG2018 / Oracle DB erfolgreich betreiben auf SPARC/LDoms/Solaris/ZFS
DOAG2018 / Oracle DB erfolgreich betreiben auf SPARC/LDoms/Solaris/ZFS
 
OSMC 2008 | Monitoring Microsoft SQL Server by Michael Streb
OSMC 2008 | Monitoring Microsoft SQL Server by Michael StrebOSMC 2008 | Monitoring Microsoft SQL Server by Michael Streb
OSMC 2008 | Monitoring Microsoft SQL Server by Michael Streb
 
Rex Linuxtag 2012
Rex Linuxtag 2012Rex Linuxtag 2012
Rex Linuxtag 2012
 
DOAG 2018 / Praktische Erfahrungen mit SPARC S7-2 Server
DOAG 2018 / Praktische Erfahrungen mit SPARC S7-2 ServerDOAG 2018 / Praktische Erfahrungen mit SPARC S7-2 Server
DOAG 2018 / Praktische Erfahrungen mit SPARC S7-2 Server
 
PowerShell Sicherheit in 6 Schritten produktiv absichern
PowerShell Sicherheit in 6 Schritten produktiv absichernPowerShell Sicherheit in 6 Schritten produktiv absichern
PowerShell Sicherheit in 6 Schritten produktiv absichern
 
Monitoring von SAP mit check_sap_health
Monitoring von SAP mit check_sap_healthMonitoring von SAP mit check_sap_health
Monitoring von SAP mit check_sap_health
 
Opensource Tools für das Data Center Management
Opensource Tools für das Data Center ManagementOpensource Tools für das Data Center Management
Opensource Tools für das Data Center Management
 
Automation with Ansible
Automation with AnsibleAutomation with Ansible
Automation with Ansible
 
Schlaglichter Oracle DB 11gR2 - DOAG Regio-Treffen 2010 - OPITZ CONSULTING - ...
Schlaglichter Oracle DB 11gR2 - DOAG Regio-Treffen 2010 - OPITZ CONSULTING - ...Schlaglichter Oracle DB 11gR2 - DOAG Regio-Treffen 2010 - OPITZ CONSULTING - ...
Schlaglichter Oracle DB 11gR2 - DOAG Regio-Treffen 2010 - OPITZ CONSULTING - ...
 
Nagios Conference 2007 | Vmware Monitoring by Ingo Latschner
Nagios Conference 2007 | Vmware Monitoring by Ingo LatschnerNagios Conference 2007 | Vmware Monitoring by Ingo Latschner
Nagios Conference 2007 | Vmware Monitoring by Ingo Latschner
 
C1 Adcon Backup For Domino
C1 Adcon Backup For DominoC1 Adcon Backup For Domino
C1 Adcon Backup For Domino
 
Node.js Security
Node.js SecurityNode.js Security
Node.js Security
 
Andreas Jordan – IT-Tage 2015 – Flashback – Warum Oracle Zeitreisen anbieten ...
Andreas Jordan – IT-Tage 2015 – Flashback – Warum Oracle Zeitreisen anbieten ...Andreas Jordan – IT-Tage 2015 – Flashback – Warum Oracle Zeitreisen anbieten ...
Andreas Jordan – IT-Tage 2015 – Flashback – Warum Oracle Zeitreisen anbieten ...
 
MySQL - New Features 5.6
MySQL - New Features 5.6MySQL - New Features 5.6
MySQL - New Features 5.6
 
Praktische Erfahrungen mit den kleinen SPARC S7-2 Servern
Praktische Erfahrungen mit den kleinen SPARC S7-2 ServernPraktische Erfahrungen mit den kleinen SPARC S7-2 Servern
Praktische Erfahrungen mit den kleinen SPARC S7-2 Servern
 
Upgrading Puppet CommitterConf Essen 2014
Upgrading Puppet CommitterConf Essen 2014Upgrading Puppet CommitterConf Essen 2014
Upgrading Puppet CommitterConf Essen 2014
 
Oracle Critical Patch Update und Patch Set Update - DOAG SIG Security 2011 - ...
Oracle Critical Patch Update und Patch Set Update - DOAG SIG Security 2011 - ...Oracle Critical Patch Update und Patch Set Update - DOAG SIG Security 2011 - ...
Oracle Critical Patch Update und Patch Set Update - DOAG SIG Security 2011 - ...
 
Python builds mit ant
Python builds mit antPython builds mit ant
Python builds mit ant
 
Einführung in Elasticsearch - August 2014
Einführung in Elasticsearch - August 2014Einführung in Elasticsearch - August 2014
Einführung in Elasticsearch - August 2014
 

Andere mochten auch

Doag 2104 manuskript_hadoop_oracle_integration_gunther_pipperr_v02
Doag 2104 manuskript_hadoop_oracle_integration_gunther_pipperr_v02Doag 2104 manuskript_hadoop_oracle_integration_gunther_pipperr_v02
Doag 2104 manuskript_hadoop_oracle_integration_gunther_pipperr_v02Gunther Pippèrr
 
CARTA ALS REIS MAGS P-5 B
CARTA ALS REIS MAGS P-5 BCARTA ALS REIS MAGS P-5 B
CARTA ALS REIS MAGS P-5 BXeli Alcaide
 
Informatica agricultura
Informatica  agriculturaInformatica  agricultura
Informatica agriculturaYinnaSalazar97
 
Ofelia De León, una vida dedicada al arte
Ofelia De León, una vida dedicada al arteOfelia De León, una vida dedicada al arte
Ofelia De León, una vida dedicada al arteEnrique Rojas
 
Inocencio meléndez julio. modalidades de financiamiento de la empresa a cort...
Inocencio meléndez julio. modalidades de financiamiento de la empresa a cort...Inocencio meléndez julio. modalidades de financiamiento de la empresa a cort...
Inocencio meléndez julio. modalidades de financiamiento de la empresa a cort...INOCENCIO MELÉNDEZ JULIO
 
Open Laboratory Ressourcen teilen und verteilen
Open Laboratory Ressourcen teilen und verteilenOpen Laboratory Ressourcen teilen und verteilen
Open Laboratory Ressourcen teilen und verteilenSocialbar Stuttgart
 
Nutzen Sie doch Reddit für Ihr Unternehmen!
Nutzen Sie doch Reddit für Ihr Unternehmen!Nutzen Sie doch Reddit für Ihr Unternehmen!
Nutzen Sie doch Reddit für Ihr Unternehmen!ROHINIE.COM Limited
 
SOLCOM Marktstudie - Verträge und Regularien im Projektgeschäft
SOLCOM Marktstudie - Verträge und Regularien im ProjektgeschäftSOLCOM Marktstudie - Verträge und Regularien im Projektgeschäft
SOLCOM Marktstudie - Verträge und Regularien im ProjektgeschäftSOLCOM GmbH
 
So bekommen Sie Ihre Google+ Updates indexiert!
So bekommen Sie Ihre Google+ Updates indexiert!So bekommen Sie Ihre Google+ Updates indexiert!
So bekommen Sie Ihre Google+ Updates indexiert!ROHINIE.COM Limited
 
Jahresfinanzbericht 2013 14
Jahresfinanzbericht 2013 14Jahresfinanzbericht 2013 14
Jahresfinanzbericht 2013 14AT&S_IR
 

Andere mochten auch (20)

Taller de medallas
Taller de medallasTaller de medallas
Taller de medallas
 
Fdi
FdiFdi
Fdi
 
Powerpoint perivallontiko germ
Powerpoint perivallontiko germPowerpoint perivallontiko germ
Powerpoint perivallontiko germ
 
Doag 2104 manuskript_hadoop_oracle_integration_gunther_pipperr_v02
Doag 2104 manuskript_hadoop_oracle_integration_gunther_pipperr_v02Doag 2104 manuskript_hadoop_oracle_integration_gunther_pipperr_v02
Doag 2104 manuskript_hadoop_oracle_integration_gunther_pipperr_v02
 
CARTA ALS REIS MAGS P-5 B
CARTA ALS REIS MAGS P-5 BCARTA ALS REIS MAGS P-5 B
CARTA ALS REIS MAGS P-5 B
 
Informatica agricultura
Informatica  agriculturaInformatica  agricultura
Informatica agricultura
 
Ser Madre deja huellas
Ser Madre deja huellasSer Madre deja huellas
Ser Madre deja huellas
 
Modelo informe daniel_rarenas _3_
Modelo informe daniel_rarenas _3_Modelo informe daniel_rarenas _3_
Modelo informe daniel_rarenas _3_
 
Mi credo pedagógico art.3
Mi credo pedagógico art.3Mi credo pedagógico art.3
Mi credo pedagógico art.3
 
Webquest schiller
Webquest schillerWebquest schiller
Webquest schiller
 
Ofelia De León, una vida dedicada al arte
Ofelia De León, una vida dedicada al arteOfelia De León, una vida dedicada al arte
Ofelia De León, una vida dedicada al arte
 
Jugadores de fútbol radicales
Jugadores de fútbol radicalesJugadores de fútbol radicales
Jugadores de fútbol radicales
 
Inocencio meléndez julio. modalidades de financiamiento de la empresa a cort...
Inocencio meléndez julio. modalidades de financiamiento de la empresa a cort...Inocencio meléndez julio. modalidades de financiamiento de la empresa a cort...
Inocencio meléndez julio. modalidades de financiamiento de la empresa a cort...
 
Open Laboratory Ressourcen teilen und verteilen
Open Laboratory Ressourcen teilen und verteilenOpen Laboratory Ressourcen teilen und verteilen
Open Laboratory Ressourcen teilen und verteilen
 
Nutzen Sie doch Reddit für Ihr Unternehmen!
Nutzen Sie doch Reddit für Ihr Unternehmen!Nutzen Sie doch Reddit für Ihr Unternehmen!
Nutzen Sie doch Reddit für Ihr Unternehmen!
 
SOLCOM Marktstudie - Verträge und Regularien im Projektgeschäft
SOLCOM Marktstudie - Verträge und Regularien im ProjektgeschäftSOLCOM Marktstudie - Verträge und Regularien im Projektgeschäft
SOLCOM Marktstudie - Verträge und Regularien im Projektgeschäft
 
So bekommen Sie Ihre Google+ Updates indexiert!
So bekommen Sie Ihre Google+ Updates indexiert!So bekommen Sie Ihre Google+ Updates indexiert!
So bekommen Sie Ihre Google+ Updates indexiert!
 
Iphone
IphoneIphone
Iphone
 
Jahresfinanzbericht 2013 14
Jahresfinanzbericht 2013 14Jahresfinanzbericht 2013 14
Jahresfinanzbericht 2013 14
 
Pinterest im Beauty-Marketing
Pinterest im Beauty-MarketingPinterest im Beauty-Marketing
Pinterest im Beauty-Marketing
 

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

Norbert Rieger – IT-Tage 2015 – Optimierung der Performance bei Oracle-Datenb...
Norbert Rieger – IT-Tage 2015 – Optimierung der Performance bei Oracle-Datenb...Norbert Rieger – IT-Tage 2015 – Optimierung der Performance bei Oracle-Datenb...
Norbert Rieger – IT-Tage 2015 – Optimierung der Performance bei Oracle-Datenb...Informatik Aktuell
 
Datentransfer mit Oracle Tools
Datentransfer mit Oracle ToolsDatentransfer mit Oracle Tools
Datentransfer mit Oracle ToolsChristian Gohmann
 
Oracle connection manager_cman_doag_sig_security_mai_2015
Oracle connection manager_cman_doag_sig_security_mai_2015Oracle connection manager_cman_doag_sig_security_mai_2015
Oracle connection manager_cman_doag_sig_security_mai_2015Gunther Pippèrr
 
Rollout-Prozess für APEX Anwendungen
Rollout-Prozess für APEX AnwendungenRollout-Prozess für APEX Anwendungen
Rollout-Prozess für APEX AnwendungenOliver Lemm
 
DBSAT – Die Oracle DATENBANK bzgl. PII Daten analysieren
DBSAT – Die Oracle DATENBANK bzgl. PII Daten analysierenDBSAT – Die Oracle DATENBANK bzgl. PII Daten analysieren
DBSAT – Die Oracle DATENBANK bzgl. PII Daten analysierenGunther Pippèrr
 
Oracle workshop sessiontracing
Oracle workshop sessiontracingOracle workshop sessiontracing
Oracle workshop sessiontracingciganek
 
SQL Server 2012 070-462 prüfung deutsch
SQL Server 2012 070-462 prüfung deutschSQL Server 2012 070-462 prüfung deutsch
SQL Server 2012 070-462 prüfung deutschholgerschmitz2011
 
Grundlagen puppet
Grundlagen puppetGrundlagen puppet
Grundlagen puppetinovex GmbH
 
Überblick: 18c und Autonomous Data Warehouse Cloud (ADWC)
Überblick: 18c und Autonomous Data Warehouse Cloud (ADWC)Überblick: 18c und Autonomous Data Warehouse Cloud (ADWC)
Überblick: 18c und Autonomous Data Warehouse Cloud (ADWC)Ulrike Schwinn
 
Forms and Reports 12c - Processes and Automation in Development and Operations
Forms and Reports 12c - Processes and Automation in Development and OperationsForms and Reports 12c - Processes and Automation in Development and Operations
Forms and Reports 12c - Processes and Automation in Development and OperationsTorsten Kleiber
 
Oracle 11g - Neuerungen im Überblick
Oracle 11g - Neuerungen im ÜberblickOracle 11g - Neuerungen im Überblick
Oracle 11g - Neuerungen im ÜberblickGFU Cyrus AG
 
Oracle oem 12c_plugin_development-doag-konferenz_11_2014_print_gunther_pipperr
Oracle oem 12c_plugin_development-doag-konferenz_11_2014_print_gunther_pipperrOracle oem 12c_plugin_development-doag-konferenz_11_2014_print_gunther_pipperr
Oracle oem 12c_plugin_development-doag-konferenz_11_2014_print_gunther_pipperrGunther Pippèrr
 
Über Rechte/Rollen und den sicheren Betrieb der Datenbank
Über Rechte/Rollen und den sicheren Betrieb der DatenbankÜber Rechte/Rollen und den sicheren Betrieb der Datenbank
Über Rechte/Rollen und den sicheren Betrieb der DatenbankGunther Pippèrr
 
Oracle GoldenGate Monitoring
Oracle GoldenGate MonitoringOracle GoldenGate Monitoring
Oracle GoldenGate MonitoringIleana Somesan
 
Oracle hadoop doag-big-data_09_2014_gpi
Oracle hadoop doag-big-data_09_2014_gpiOracle hadoop doag-big-data_09_2014_gpi
Oracle hadoop doag-big-data_09_2014_gpiGunther Pippèrr
 
Komprimierung in der Oracle Datenbank (Stand 11gR2, 12c)
Komprimierung in der Oracle Datenbank (Stand 11gR2, 12c)Komprimierung in der Oracle Datenbank (Stand 11gR2, 12c)
Komprimierung in der Oracle Datenbank (Stand 11gR2, 12c)Ulrike Schwinn
 
OSMC 2008 | PNP4Nagios - Installation, Konfiguration und Template Erstellung ...
OSMC 2008 | PNP4Nagios - Installation, Konfiguration und Template Erstellung ...OSMC 2008 | PNP4Nagios - Installation, Konfiguration und Template Erstellung ...
OSMC 2008 | PNP4Nagios - Installation, Konfiguration und Template Erstellung ...NETWAYS
 
Enterprise Java Batch mit Spring
Enterprise Java Batch mit SpringEnterprise Java Batch mit Spring
Enterprise Java Batch mit Springdenschu
 
AdminCamp 2011 Performance
AdminCamp 2011 PerformanceAdminCamp 2011 Performance
AdminCamp 2011 PerformanceUlrich Krause
 

Ähnlich wie Introduction into Oracle Data Pump 11g/12c - Export and Import Data (20)

Norbert Rieger – IT-Tage 2015 – Optimierung der Performance bei Oracle-Datenb...
Norbert Rieger – IT-Tage 2015 – Optimierung der Performance bei Oracle-Datenb...Norbert Rieger – IT-Tage 2015 – Optimierung der Performance bei Oracle-Datenb...
Norbert Rieger – IT-Tage 2015 – Optimierung der Performance bei Oracle-Datenb...
 
Datentransfer mit Oracle Tools
Datentransfer mit Oracle ToolsDatentransfer mit Oracle Tools
Datentransfer mit Oracle Tools
 
Oracle connection manager_cman_doag_sig_security_mai_2015
Oracle connection manager_cman_doag_sig_security_mai_2015Oracle connection manager_cman_doag_sig_security_mai_2015
Oracle connection manager_cman_doag_sig_security_mai_2015
 
Rollout-Prozess für APEX Anwendungen
Rollout-Prozess für APEX AnwendungenRollout-Prozess für APEX Anwendungen
Rollout-Prozess für APEX Anwendungen
 
DBSAT – Die Oracle DATENBANK bzgl. PII Daten analysieren
DBSAT – Die Oracle DATENBANK bzgl. PII Daten analysierenDBSAT – Die Oracle DATENBANK bzgl. PII Daten analysieren
DBSAT – Die Oracle DATENBANK bzgl. PII Daten analysieren
 
Oracle workshop sessiontracing
Oracle workshop sessiontracingOracle workshop sessiontracing
Oracle workshop sessiontracing
 
SQL Server 2012 070-462 prüfung deutsch
SQL Server 2012 070-462 prüfung deutschSQL Server 2012 070-462 prüfung deutsch
SQL Server 2012 070-462 prüfung deutsch
 
Grundlagen puppet
Grundlagen puppetGrundlagen puppet
Grundlagen puppet
 
Überblick: 18c und Autonomous Data Warehouse Cloud (ADWC)
Überblick: 18c und Autonomous Data Warehouse Cloud (ADWC)Überblick: 18c und Autonomous Data Warehouse Cloud (ADWC)
Überblick: 18c und Autonomous Data Warehouse Cloud (ADWC)
 
Forms and Reports 12c - Processes and Automation in Development and Operations
Forms and Reports 12c - Processes and Automation in Development and OperationsForms and Reports 12c - Processes and Automation in Development and Operations
Forms and Reports 12c - Processes and Automation in Development and Operations
 
Oracle 11g - Neuerungen im Überblick
Oracle 11g - Neuerungen im ÜberblickOracle 11g - Neuerungen im Überblick
Oracle 11g - Neuerungen im Überblick
 
Logging mit log4net
Logging mit log4netLogging mit log4net
Logging mit log4net
 
Oracle oem 12c_plugin_development-doag-konferenz_11_2014_print_gunther_pipperr
Oracle oem 12c_plugin_development-doag-konferenz_11_2014_print_gunther_pipperrOracle oem 12c_plugin_development-doag-konferenz_11_2014_print_gunther_pipperr
Oracle oem 12c_plugin_development-doag-konferenz_11_2014_print_gunther_pipperr
 
Über Rechte/Rollen und den sicheren Betrieb der Datenbank
Über Rechte/Rollen und den sicheren Betrieb der DatenbankÜber Rechte/Rollen und den sicheren Betrieb der Datenbank
Über Rechte/Rollen und den sicheren Betrieb der Datenbank
 
Oracle GoldenGate Monitoring
Oracle GoldenGate MonitoringOracle GoldenGate Monitoring
Oracle GoldenGate Monitoring
 
Oracle hadoop doag-big-data_09_2014_gpi
Oracle hadoop doag-big-data_09_2014_gpiOracle hadoop doag-big-data_09_2014_gpi
Oracle hadoop doag-big-data_09_2014_gpi
 
Komprimierung in der Oracle Datenbank (Stand 11gR2, 12c)
Komprimierung in der Oracle Datenbank (Stand 11gR2, 12c)Komprimierung in der Oracle Datenbank (Stand 11gR2, 12c)
Komprimierung in der Oracle Datenbank (Stand 11gR2, 12c)
 
OSMC 2008 | PNP4Nagios - Installation, Konfiguration und Template Erstellung ...
OSMC 2008 | PNP4Nagios - Installation, Konfiguration und Template Erstellung ...OSMC 2008 | PNP4Nagios - Installation, Konfiguration und Template Erstellung ...
OSMC 2008 | PNP4Nagios - Installation, Konfiguration und Template Erstellung ...
 
Enterprise Java Batch mit Spring
Enterprise Java Batch mit SpringEnterprise Java Batch mit Spring
Enterprise Java Batch mit Spring
 
AdminCamp 2011 Performance
AdminCamp 2011 PerformanceAdminCamp 2011 Performance
AdminCamp 2011 Performance
 

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

  • 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. 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. 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. 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. 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. 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. 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. 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. 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. Seite 10Gunther Pippèrr © 2015 http://www.pipperr.de Die Architektur von Data Pump Wie funktioniert das nun im Detail?
  • 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. 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. Seite 13Gunther Pippèrr © 2015 http://www.pipperr.de Im Detail
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. Seite 25Gunther Pippèrr © 2015 http://www.pipperr.de Export Die Daten extrahieren
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. Seite 40Gunther Pippèrr © 2015 http://www.pipperr.de Beispiel Exclude – Keine Statistiken exportieren  Parameter „exclude=statistics” – Keine Statistiken exportieren
  • 41. Seite 41Gunther Pippèrr © 2015 http://www.pipperr.de Import Daten wieder importieren
  • 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. 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. 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. 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. Seite 46Gunther Pippèrr © 2015 http://www.pipperr.de Tabellen beim Import umbenennen  Parameter REMAP_TABLE – Beispiel REMAP_TABLE=emp:mitarbeiter
  • 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. 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. Seite 49Gunther Pippèrr © 2015 http://www.pipperr.de Job Control Exp/Imp kontrollieren und überwachen
  • 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. 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. 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. 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. 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. Seite 55Gunther Pippèrr © 2015 http://www.pipperr.de Weitere Features Noch mehr Möglichkeiten
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. Seite 66Gunther Pippèrr © 2015 http://www.pipperr.de Data Pump aus der DB aufrufen Eine Export per PL/SQL durchführen
  • 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. 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. 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. 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. Seite 71Gunther Pippèrr © 2015 http://www.pipperr.de External Table mit Data Pump Datenaustausch zwischen Datenbanken Archivieren von Alt Daten
  • 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. 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. 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. Seite 75Gunther Pippèrr © 2015 http://www.pipperr.de Transportable Tablespace Datendateien austauschen
  • 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. 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. Seite 78Gunther Pippèrr © 2015 http://www.pipperr.de Data Masking mit Data Pump Daten beim laden verändern
  • 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. Seite 80Gunther Pippèrr © 2015 http://www.pipperr.de Zusammenfassung Was bringt uns das?
  • 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. 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. Seite 83Gunther Pippèrr © 2015 http://www.pipperr.de AF& Fragen Antworten Oracle Data Pump
  • 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