Upload
doancong
View
243
Download
0
Embed Size (px)
Citation preview
Oracle Database 11g Data Pump – der mächtige Nachfolger von exp/imp p g g p p
Claudia HüfferPrincipal Sales ConsultantPrincipal Sales ConsultantServer Technologies Competence CenterORACLE Deutschland GmbH, Geschäftsstelle Hamburg
Agenda
<I t Pi t H >
Agenda
<Insert Picture Here>
• Einleitung• Data Pump Architektur und ÜberblickData Pump Architektur und Überblick• Data Pump - Voraussetzungen• Data Pump KommandosData Pump Kommandos• Data Pump am Beispiel• Data Pump ParallelisierungData Pump Parallelisierung• Zusammenfassung
Daten laden bewegen verschiebenDaten laden, bewegen, verschieben,…Utilities und Methoden
• Create table as select (auch via dblink)• Data Pump (expdp, impdp, DP API)Data Pump (expdp, impdp, DP API)• SQL*Loader (Laden von Flat Files)• External TablesExternal Tables • Transportable Tablespaces
• Original Export / Import
Agenda
<I t Pi t H >
Agenda
<Insert Picture Here>
• Einleitung• Data Pump Architektur und ÜberblickData Pump Architektur und Überblick• Data Pump - Voraussetzungen• Data Pump KommandosData Pump Kommandos• Data Pump am Beispiel• Data Pump ParallelisierungData Pump Parallelisierung• Zusammenfassung
Überblick Data Pump 1/5Überblick Data Pump 1/5
• Erlaubt sehr schnelles Bewegen von Daten und/oder• Erlaubt sehr schnelles Bewegen von Daten und/oder Metadaten, parallelisierbar (EE), modifizierbar
• Benötigt keine speziellen Tuning-Parameter (buffer commitBenötigt keine speziellen Tuning Parameter (buffer, commit, direct, recordlength,..)
• Besteht aus drei Komponenten:Besteht aus drei Komponenten:– Command Line Clients expdp, impdp– PL/SQL Data Pump API DBMS_DATAPUMP – PL/SQL Data Pump API DBMS_METADATA
• Export/Import Interfaces:– Command-Line Interface: expdp/impdp– Parameter File Interface: expdp/impdp PARFILE=[<dir>]:<parfile.par>
Interactive Command Interface– Interactive Command Interface
Überblick Data Pump 2/5Überblick Data Pump 2/5
• Verwendung von Parameter-File wird empfohlen • Eingeführt mit Oracle 10gR1Eingeführt mit Oracle 10gR1• Original Export: “Desupport for general use” in
Oracle 11gg• In Oracle10gR2 Unterstützung aller 10g Features
außer XML Schemas und XML Schema based Tables
• In Oracle 11g keine Einschränkungen • Benötigt Schreibzugriff auf DB-Server für master
table, Export von readonly DBs via NETWORK_LINK
Überblick Data Pump 3/5Überblick Data Pump 3/5
• Export/Import Modi– Full– Schema– Table– TablespaceTablespace– Transportable Tablespace
• Server-Utility, d.h. läuft auf dem DB Server, zu dem Cder Connect gemacht wurde
• Erstellt Dumpfile-Sets, benötigt DirectoriesDP D fil i k tib l i i l /i• DP Dumpfiles inkompatibel zu original exp/imp-Dumpfiles
Überblick Data Pump 4/5Überblick Data Pump 4/5
• Zwei Datenzugriffs Methoden:• Zwei Datenzugriffs-Methoden:– Direct Path Loads and Unloads– External tablesExternal tables
• Direct path ist default und schneller als external table• Zugriffsart hängt von Datentypen und Strukturen abZugriffsart hängt von Datentypen und Strukturen ab
– Z.B. kein direct path load bei: table in cluster, fine grained access control in insert mode, referential integrity or active t i i ti t bl t bl ith t d ltrigger on pre-existing table, table with encrypted columns, …
– Z.B. kein direct path unload: bei fine grained access control p gin select mode, table is queue table, table mit LONG als nicht letzte Spalte, …
Überblick Data Pump 5/5Überblick Data Pump 5/5
• External Tables Mode bei:Very Large Tables/Partitions where parallel SQL can• Very Large Tables/Partitions where parallel SQL can be used– Loading tables with active triggersLoading tables with active triggers– Loading tables with encrypted columns– Loading tables with fine-grained access control for insert– Loading tables that are partitioned differently at load time
and unload time – …
Data Pump ArchitekturData Pump Architektur
Q ll htt // db i /bl /bl f/ h i f t/bl t 2006 05 26 3042156388Quelle: http://www.dbazine.com/blogs/blog-cf/chrisfoot/blogentry.2006-05-26.3042156388
Data Pump Prozess-Komponenten 1/3Data Pump Prozess-Komponenten 1/3
• Master-Table– Herz von Data Pump– Angelegt im Schema des connected users– Verwaltet den gesamten Data Pump Job
S O– Status aller bearbeiteten Objekte– Erlaubt Wiederanlaufen nach Stop oder Fehler– Wird im letzten Schritt beim export ins Dumpfile geschriebenWird im letzten Schritt beim export ins Dumpfile geschrieben
Data Pump Prozess-Komponenten 2/3Data Pump Prozess-Komponenten 2/3
• Client ProcessClient Process– Macht DP API Aufrufe
• Shadow Process– Standard DB foreground process– Bedient alle DP API Requests
Beim DBMS DATAPUMP OPEN call werden Job Master– Beim DBMS_DATAPUMP.OPEN call werden Job Master-Table, AQ queues und Master Control Process erstellt
• Master Control Process (MCP)– Kontrolliert die Ausführung und Reihenfolge der Jobs– Ein MCP pro DP Job
Verwaltet Job Beschreibung Status Restart dumpfile Infos– Verwaltet Job Beschreibung, Status, Restart, dumpfile Infos– Name: <SID>_DMnn_<PID>
Data Pump Prozess-Komponenten 3/3Data Pump Prozess-Komponenten 3/3
• Worker Process– Erstellung bei job_start Request– Anzahl bestimmt durch PARALLEL=n– Macht die eigentliche Load/Unload Arbeit
S– Name <SID>_DWnn_<PID>
• Parallel Query ProcessVerwendung beim external tables Mode– Verwendung beim external tables Mode
– In RAC-Umgebungen Instanz-Übergreifend!!!– Dadurch optimale Performance und hoherDadurch optimale Performance und hoher
Parallelisierungsgrad möglich
Data Pump Ablauf/DatenflussData Pump Ablauf/Datenfluss
Q ll htt // db i /bl /bl f/ h i f t/bl t 2006 05 26 3042156388Quelle: http://www.dbazine.com/blogs/blog-cf/chrisfoot/blogentry.2006-05-26.3042156388
Agenda
<I t Pi t H >
Agenda
<Insert Picture Here>
• Einleitung• Data Pump Architektur und ÜberblickData Pump Architektur und Überblick• Data Pump - Voraussetzungen• Data Pump KommandosData Pump Kommandos• Data Pump am Beispiel• Data Pump ParallelisierungData Pump Parallelisierung• Zusammenfassung
VoraussetzungenVoraussetzungen
• Schreibender Zugriff auf DB notwendig (Master-Table, Job Queues)
• Existierendes Directory (DB Objekt)• Default für privileged DB-User: DATA_PUMP_DIR
Z iff f Di t Obj t ( d/ it ) fü U• Zugriff auf Directory Object (read/write) für User• OS Zugriff auf physikalisches Verzeichnis für
oracle-Useroracle-User• Ggfs. EXP_FULL_DATABASE,
IMP_FULL_DATABASE, CREATE ANY _ _DIRECTORY Privilegien erforderlich
• Bei ASM ein Directory im FS für Logs sinnvoll
Erste Schritte 1/2Erste Schritte 1/2
• SQL> CREATE DIRECTORY dpump_dir1 AS ’/u01/dp/dumpfiles’;SQL> CREATE DIRECTORY dpump logs ASSQL> CREATE DIRECTORY dpump_logs AS ’/u01/dp/logfiles’;
Oder:• SQL> CREATE DIRECTORY dpump dir1 AS• SQL> CREATE DIRECTORY dpump_dir1 AS ’+DATAFILES/’; SQL> CREATE DIRECTORY dpump_logs AS ’/u01/dp/logfiles’;/u01/dp/logfiles ;
Und:• SQL> GRANT READ, WRITE ON DIRECTORY dpump_dir1 TO scott; SQL> GRANT READ, WRITE ON DIRECTORY dpump_logs TO scott;
Erste Schritte 2/2Erste Schritte 2/2
• %expdp scott/tiger TABLES=emp DUMPFILE=dpump_dir1:emp.dmp LOGFILE=dpump_logs:exp.log
• Zur Vereinfachung ggf:• Zur Vereinfachung ggf:•setenv DATA_PUMP_DIR dpump_dir1•export DATA PUMP DIR=dpump dir1•export DATA_PUMP_DIR=dpump_dir1
• %expdp scott/tiger TABLES=emp DUMPFILE=emp dmp• %expdp scott/tiger TABLES=emp DUMPFILE=emp.dmp
Agenda
<I t Pi t H >
Agenda
<Insert Picture Here>
• Einleitung• Data Pump Architektur und ÜberblickData Pump Architektur und Überblick• Data Pump - Voraussetzungen• Data Pump KommandosData Pump Kommandos• Data Pump am Beispiel• Data Pump ParallelisierungData Pump Parallelisierung• Zusammenfassung
Command-Line Mode ParameterCommand-Line Mode Parameter expdp/impdpATTACH COMPRESSION CONTENT
DIRECTORY DUMPFILE DATA_OPTIONS11g
ENCRYPTION 11g ENCRYPTION_ALGORITHM 11g
ENCRYPTION_MODE 11gGORITHM 11g DE 11g
ENCRYPTION_PASSWORD
ESTIMATE ESTIMATE_ONLY
EXCLUDE FILE_SIZE FLASHBACK_SCN
FLASHBACK_TIME FULL HELP
INCLUDE JOBNAME LOGFILE
NETWORK LINK NOLOGFILE PARALLELNETWORK_LINK NOLOGFILE PARALLEL
Command-Line Mode ParameterCommand-Line Mode Parameter expdp/impdp PARFILE QUERY SAMPLE
SCHEMAS STATUS TABLES
TABLESPACES REMAP_DATA 11g VERSION
TRANSPORT FULL TRANSPORT TABLE REUSE DUMPFILESTRANSPORT_FULL_CHECK
TRANSPORT_TABLESPACES
REUSE_DUMPFILES11g
PARTITIONS_OPTION 11g
REMAP_DATAFILE REMAP_SCHEMAN 11gREMAP_TABLE 11g REMAP_TABLESPAC
EREUSE_DATAFILES
SKIP_UNUSABLE_INDEXES
SQLFILE STREAMS_CONFIGURATION
TABLE EXISTS ACT TRANSFORM TRANSPORT DATAFTABLE_EXISTS_ACTION
TRANSFORM TRANSPORT_DATAFILES
Bedeutung einzelner ParameterBedeutung einzelner Parameter (Auszug)
• COMPRESSION = (ALL|DATA_ONLY|METADATA_ONLY|NONE)– Ermöglicht Komprimierung der Informationen im Dumpfile– ALL bzw DATA_ONLY neu in 11g, benötigt Advanced
Compression OptionCompression Option
• CONTENT = (ALL|DATA ONLY|METADATA ONLY)(ALL|DATA_ONLY|METADATA_ONLY)– Bestimmt was exportiert/importiert werden soll
• DATA OPTIONS = XML CLOBS (exp)DATA_OPTIONS XML_CLOBS (exp)– Exportiert XML-Daten als uncompressed CLOB-Daten, egal
ob Speicherung als CLOB, OR oder binary
Bedeutung einzelner ParameterBedeutung einzelner Parameter (Auszug)
• ESTIMATE = {BLOCKS | STATISTICS}– Berechnet den benötigten Plattenplatz für die Tabellendaten
• EXCLUDE = object_type[:name_clause],…– Bestimmt was beim exp/imp ausgeschlossen werden soll– EXCLUDE = TABLE:” LIKE ‘EMP%’ “– EXCLUDE = SCHEMA:” =‘HR’ “EXCLUDE = VIEW PACKAGE FUNCTION– EXCLUDE = VIEW, PACKAGE, FUNCTION
• INCLUDE = object_type[:name_clause],…Bestimmt exlizit was berücksichtig wird– Bestimmt exlizit was berücksichtig wird
– Logik analog zu EXCLUDE
Bedeutung einzelner ParameterBedeutung einzelner Parameter (Auszug)
• DUMPFILE = [directory_object:]file_name,…– Bestimmt den/die Namen der Dumpfiles– Wildcard “%U” erlaubt und sinnvoll bei Verwendung von
PARALLEL, %U Werte von 01 bis 99DUMPFILE = dpump dir1:exp1%U dmp– DUMPFILE = dpump_dir1:exp1%U.dmp, dpump_dir2:exp2%U.dmp, dpump_dir3:exp3%U.dmp
• NETWORK LINK = source database link_ _ _– Erlaubt Export von einer Quelldatenbank via Datenbank-Link – Job läuft auf DB des expdp-Connects, daher auch für Read-
Only Source geeignet– Beim impdp direktes Laden aus Source ohne Dumpfiles!
Bedeutung einzelner ParameterBedeutung einzelner Parameter (Auszug)
• SAMPLE = [[schema.]table_name:]sample_percent– Erlaubt das Laden einer prozentualen Teilmenge von Daten– 0,00001 <= sample_percent < 100– Nicht für Network-exports
• QUERY = [[schema.]table_name:]query_clause– Erlaubt das Filtern von Daten aufgrund einer SQL-QueryQUERY = scott emp: ‘ “ WHERE deptno>10 AND Sal– QUERY = scott.emp: ‘ “ WHERE deptno>10 AND Sal >5500” ‘
– Am besten im Parameter-File definieren
Bedeutung einzelner ParameterBedeutung einzelner Parameter (Auszug)• REMAP_DATAFILE = source_datafile:target_datafile
– Erlaubt das automatische Ändern von Dateinamen in allen SQL B f hl ( t t bl lib di t )SQL-Befehlen (create tablespace, library, directory)
– REMAP_DATAFILE = ‘DB1$:[HRDATA:PAYROLL]tbs6.dbf’ : ‘/u01/oradata/tbs6.dbf’
• REMAP_SCHEMA = source_schema:target_schema– Übertragung von einem ins andere Schema– Nur für Schema-Objekte keine Anpassung innerhalb vonNur für Schema-Objekte, keine Anpassung innerhalb von
Prozeduren,…• REMAP_TABLE =
[ h ] ld t bl [ titi ] t bl[schema.]old_tablename[.partition]:new_tablename– Erlaubt das Umbenennen von Tabellen
Interactive command ModeInteractive command ModeAufruf mit CTRL+C oder expdp/impdp <user>/<pw> ATTACH = <job>
expdp impdpADD_FILE X add Dumpfiles_ pCONTINUE_CLIENT X X Enter Logging Mode=Status displayEXIT_CLIENT X X Exit interactive modeFILESIZE X Redefine filesize subsequent filesHELP X X Online HelpKILLJOB X X Kill current jobPARALLEL X X Increase/decrease # worker procs.START JOB X X R t t j b tl tt h d tSTART_JOB X X Restart job currently attached toSTATUS X X Show status once or frequentlySTOP JOB X X Stop job restartable laterSTOP_JOB X X Stop job, restartable later
Agenda
<I t Pi t H >
Agenda
<Insert Picture Here>
• Einleitung• Data Pump Architektur und ÜberblickData Pump Architektur und Überblick• Data Pump - Voraussetzungen• Data Pump KommandosData Pump Kommandos• Data Pump am Beispiel• Data Pump ParallelisierungData Pump Parallelisierung• Zusammenfassung
Export-BeispieleExport-Beispiele
Export-BeispieleExport-Beispiele
Import-BeispieleImport-Beispiele
Agenda
<I t Pi t H >
Agenda
<Insert Picture Here>
• Einleitung• Data Pump Architektur und ÜberblickData Pump Architektur und Überblick• Data Pump - Voraussetzungen• Data Pump KommandosData Pump Kommandos• Data Pump am Beispiel• Data Pump ParallelisierungData Pump Parallelisierung• Zusammenfassung
Parallelisierung mit Data PumpParallelisierung mit Data Pump
• Parameter PARALLEL = n • Kann zur Laufzeit geändert werden• Parameter bestimmt max. Anzahl aktiver Worker-Process/Parallel
Q PQuery Processes• Dient der Performance-Steigerung• Ausreichende Anzahl Dumpfiles beachten (%U mehrere Directories)Ausreichende Anzahl Dumpfiles beachten (%U, mehrere Directories)• Passende Einstellung von PROCESSES, SESSIONS,
PARALLEL_MAX_SERVERS beachten• Streams-Pool wird verwendet STREAMS_POOL_SIZE oder
SGA_TARGET beachten• Nur Daten-Export parallelisierbar Meta-Daten werden immer seriellNur Daten Export parallelisierbar, Meta Daten werden immer seriell
exportiert
Agenda
<I t Pi t H >
Agenda
<Insert Picture Here>
• Einleitung• Data Pump Architektur und ÜberblickData Pump Architektur und Überblick• Data Pump - Voraussetzungen• Data Pump KommandosData Pump Kommandos• Data Pump am Beispiel• Data Pump ParallelisierungData Pump Parallelisierung• Zusammenfassung
ZusammenfassungZusammenfassungTrad. exp/imp Expdp/impdp
• Data Pump ist mächtiger Nachfolger von exp/imp• Läuft immer auf dem DB-Server• Monitoring und Änderung im Laufzeitverhalten
möglichR t t bl• Restartable
• Designed für große DatenmengenPerformanter als exp / imp• Performanter als exp / imp
• Parallelisierung möglich• Exp desupported for general use in Oracle 11g• Exp desupported for general use in Oracle 11g• Imp weiter supported
Weiterführende InformationenWeiterführende Informationen
Oracle Technet Database Related Technologies Utilities (http://www.oracle.com/technology/products/database/utilities/index.html):
• Data Pump Feature Overview (PDF 150KB) • Data Pump Technical White Paper (PDF 199KB) • Parallel Capabilities of Oracle Data Pump (PDF 122KB) • Data Transformations With Oracle Data Pump (PDF 127KB) ( )• Oracle Data Pump: Quick Start (PDF 142KB) • Data Pump FAQ (HTML)
Produktdokumentation:Oracle® Database Utilities 11g Release 1 (11.1) B28319-02
Externer Blog:http://www.dbazine.com/blogs/blog-cf/chrisfoot/blogentry.2006-05-
26 304215638826.3042156388
Metalink-NotesMetalink-Notes
• Note 453895.1: Checklist for Slow Performance of Export Data Pump (expdp) and Import DataPump (impdp)
• Note 286496.1: Export/Import DataPump Parameter TRACE -How to Diagnose Oracle Data Pump
• Note 553337.1: Export/Import DataPump Parameter VERSION ote 55333 po t/ po t ata u p a a ete S O- Compatibility of Data Pump Between Different Oracle Versions
• Note 365459 1: Parallel Capabilities of Oracle Data Pump• Note 365459.1: Parallel Capabilities of Oracle Data Pump• Note 262557.1: 10g: DataPump Export and Import Job and
Attached Client Sessions
Q&AQ&A
VeranstaltungenVeranstaltungen
25.09.2008 Köln Oracle Technology Day - Data Warehouse Infrastructure 25.09.2008 Köln30.09.2008 München Oracle's BEA Welcome Event - Munich
01.10.2008 München Oracle Technology Day - Data Warehouse Infrastructure
02.10.2008 Frankfurt Oracle Technology Day - Data Warehouse Infrastructure
07.10.2008 Düsseldorf Oracle Data Integrator und Datenqualität
08.10.2008 Dreieich Oracle Data Integrator und Datenqualität
09.10.2008 Stuttgart Oracle Data Integrator und Datenqualität
23.10.2008 Frankfurt Moderne Unternehmensplanung mit Hyperion Planning und Hyperion Essbase
29.10.2008 Düsseldorf Moderne Unternehmensplanung mit Hyperion Planning 29.10.2008 Düsseldorf p g yp gund Hyperion Essbase
04.11.2008 Hamburg Oracle for SAP - sicher, hochverfuegbar, performant
11 11 2008 Mü h Oracle Security Symposium11.11.2008 München Oracle Security Symposium
ZusatzfolienZusatzfolien
Data Pump Overview: PerformanceData Pump Overview: Performance• Typical results for data load/unload
expdp is ~2x faster than original exp– expdp is ~2x faster than original exp– impdp is ~15-40x faster than original imp– Using PARALLEL can further improve performance
• Your mileage may vary!– Metadata performance essentially unchanged, sometimes
slower– Data performance vastly improved– Small amount of fixed overhead will affect performance of
small jobssmall jobs– Storage and file system characteristics are a major factor in
performanceM D t P f l t i thi t lk!More on Data Pump performance later in this talk!
Data Pump PerformanceData Pump Performance• Test Results by Prof. Carl Dudley, University of Wolverhampton, UK• Timings taken for sample employee tables containing 1 0 5m 1m 2m• Timings taken for sample employee tables containing 1, 0.5m, 1m, 2m,
4m, 8m and 16m rows– Original Export
D t P E t i di t th d t l t bl– Data Pump Export using direct path and external table– Original Import– Data Pump Export using direct path and external table
• Sizes of dump file sets compared for – Original Export– Data Pump Export using direct path and external tablep p g p
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO SEQID----- ----- -------- ---- --------- ---- ---- ------ -----7369 SMITH CLERK 7902 17 DEC 80 800 20 17369 SMITH CLERK 7902 17-DEC-80 800 20 17499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30 27521 WARD SALESMAN 7698 22-FEB-81 1250 500 30 37566 JONES MANAGER 7839 02-APR-81 2975 20 4
Data Pump Export Timings and SizesData Pump Export Timings and SizesRows 1 0.5M 1M 2M 4M 8M
Timings (seconds)
Data PumpDirect path
28 38 58 69 90 114
Data Pump 51 70 90 105 120 146Data PumpExternal Tables
51 70 90 105 120 146
Original Export 2 21 32 52 100 192g p
Rows 1 0.5M 1M 2M 4M 8MSize of Export File (MB)
Data PumpDirect path
0.008 20 41 82 169 331
Data PumpExternal Tables
0.008 20 41 82 169 331
Original Export 0 008 23 47 89 190 389Original Export 0.008 23 47 89 190 389
Data Pump Export Performancem
e
3 min
espo
nse
tim
Export - conventional pathData Pump - direct pathData Pump - external table
2 min
Re Data Pump - external table
1 min
0 5m 1m 2m 4m 8mRows (millions)0.5m 1m 2m 4m 8mRows (millions)
Data Pump Import TimingsData Pump Import Timings
Rows 1 0.5M 1M 2M 4M 8MTimings (seconds)
Data PumpDirect path
7 12 16 25 46 86
Data Pump 25 33 33 44 63 120Data PumpExternal Tables
25 33 33 44 63 120
Original Import 2 15 33 73 157 306
Data Pump Import Performance
5 min
me
Import
4 min
espo
nse
tim ImportData Pump - direct pathData Pump - external table
3 min
Re
2 min
1 min
0 5 1 2 4 8mRows (millions)0.5m 1m 2m 4m 8mRows (millions)
Kontinuierliche InnovationKontinuierliche Innovation
Audit VaultAudit VaultDatabase VaultDatabase Vault
Grid ComputingGrid ComputingAutomatic Storage Mgmt Automatic Storage Mgmt Oracle 8
Oracle 8i
Self Managing Database Self Managing Database XML DatabaseXML Database
Oracle Data GuardOracle Data GuardReal Application ClustersReal Application Clusters
Oracle 7
Oracle 8
Real Application ClustersReal Application ClustersFlashback QueryFlashback Query
Virtual Private DatabaseVirtual Private DatabaseBuilt in Java VMBuilt in Java VM
Partitioning SupportPartitioning Support
Oracle 6Oracle 10g
g ppg ppBuilt in MessagingBuilt in Messaging
Object Relational SupportObject Relational SupportMultimedia SupportMultimedia Support
Data Warehousing OptimizationsData Warehousing OptimizationsParallel OperationsParallel Operations
Oracle 2Oracle 9i
Oracle 5
Parallel OperationsParallel OperationsDistributed SQL & Transaction SupportDistributed SQL & Transaction Support
Cluster and MPP SupportCluster and MPP SupportMultiMulti--version Read Consistencyversion Read Consistency
Client/Server SupportClient/Server SupportPlatform PortabilityPlatform Portability
C i l SQL I l t tiC i l SQL I l t tiCommercial SQL ImplementationCommercial SQL Implementation