Dieser Blogeintrag zeigt die neuen Features und Verbesserungen von Data Pump mit der Veröffentlichung des Releases 12c Release 1.
Table of Contents
Demo-Umgebung
Zur Demonstration muss eine Oracle 12c Release 1 Datenbank und ein Schema mit Datenbankobjekten vorhanden sein. Für diesen Zweck verwende ich das Beispielschema SCOTT, das mithilfe des Datenbankkonfigurations-Assistenten (DBCA) konfiguriert wurde.
Zusätzlich wird ein DIRECTORY Objekt für den Data Pump Export/Import in der Datenbank benötigt.
SQL> CREATE DIRECTORY OBJECT data_pump AS '/u01/app/oracle/dump';
Hinweis: Das physikalische Verzeichnis muss existieren und der Oracle Home Besitzer muss Schreibrechte besitzen.
Data Pump Neuheiten
Deaktivierung Archive Logging
Es besteht nun die Möglichkeit das Schreiben von Archive Logs während des Imports zu deaktivieren. Für diesen Zweck wurde der TRANSFORM Parameter um die neue Option DISABLE_ARCHIVE_LOGGING erweitert.
$> impdp system/oracle directory=DATA_PUMP dumpfile=expdp_scott.dmp logfile=impdp_scott.log schemas=scott TRANSFORM=DISABLE_ARCHIVE_LOGGING:Y
;;; Import: Release 12.1.0.1.0 - Production on Tue Jan 7 11:10:03 2014 Copyright (c) 1982, 2013, Oracle and/or its affiliates. All rights reserved. ;;; Connected to: Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production With the Partitioning, Automatic Storage Management, OLAP, Advanced Analytics and Real Application Testing options Master table "SYSTEM"."SYS_IMPORT_SCHEMA_02" successfully loaded/unloaded Starting "SYSTEM"."SYS_IMPORT_SCHEMA_02": system/******** directory=DATA_PUMP dumpfile=expdp_scott.dmp logfile=impdp_scott.log schemas=scott TRANSFORM=DISABLE_ARCHIVE_LOGGING:Y Processing object type SCHEMA_EXPORT/USER Processing object type SCHEMA_EXPORT/SYSTEM_GRANT Processing object type SCHEMA_EXPORT/ROLE_GRANT Processing object type SCHEMA_EXPORT/DEFAULT_ROLE Processing object type SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA Processing object type SCHEMA_EXPORT/TABLE/TABLE Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA . . imported "SCOTT"."DEPT" 6.007 KB 4 rows . . imported "SCOTT"."EMP" 8.757 KB 14 rows . . imported "SCOTT"."SALGRADE" 5.937 KB 5 rows . . imported "SCOTT"."BONUS" 0 KB 0 rows Processing object type SCHEMA_EXPORT/TABLE/INDEX/INDEX Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT Processing object type SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS Processing object type SCHEMA_EXPORT/VIEW/VIEW Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT Processing object type SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS Processing object type SCHEMA_EXPORT/STATISTICS/MARKER Job "SYSTEM"."SYS_IMPORT_SCHEMA_02" successfully completed at Tue Jan 7 11:10:18 2014 elapsed 0 00:00:14
Views als Tabellen exportieren
Dieses Features erlaubt das Exportieren einer View als Tabelle. Damit ist es zum Beispiel sehr einfach möglich nur eine Teilmenge einer Tabelle zu exportieren.
Als Beispiel wird im Schema SCOTT eine View angelegt, die nur die Basisinformationen aller Mitarbeiter, die mit M beginnen anzeigt.
SQL> CREATE VIEW emp_m AS SELECT empno, ename, job FROM emp WHERE ename LIKE 'M%';
Die View liefert in meinem Beispiel die folgenden Werte zurück.
SQL> SELECT * FROM emp_m; EMPNO ENAME JOB ---------- ---------- --------- 7654 MARTIN SALESMAN 7934 MILLER CLERK
Anschließend kann die View wie folgt exportiert werden.
$> expdp system/oracle directory=DATA_PUMP dumpfile=expdp_scott_view.dmp logfile=expdp_scott_view.log VIEWS_AS_TABLES=SCOTT.EMP_M
;;; Export: Release 12.1.0.1.0 - Production on Tue Jan 7 10:52:07 2014 Copyright (c) 1982, 2013, Oracle and/or its affiliates. All rights reserved. ;;; Connected to: Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production With the Partitioning, Automatic Storage Management, OLAP, Advanced Analytics and Real Application Testing options Starting "SYSTEM"."SYS_EXPORT_TABLE_01": system/******** directory=DATA_PUMP dumpfile=expdp_scott_view.dmp logfile=expdp_scott_view.log VIEWS_AS_TABLES=SCOTT.EMP_M Estimate in progress using BLOCKS method... Processing object type TABLE_EXPORT/VIEWS_AS_TABLES/TABLE_DATA Total estimation using BLOCKS method: 16 KB Processing object type TABLE_EXPORT/VIEWS_AS_TABLES/TABLE . . exported "SCOTT"."EMP_M" 5.968 KB 2 rows Master table "SYSTEM"."SYS_EXPORT_TABLE_01" successfully loaded/unloaded ****************************************************************************** Dump file set for SYSTEM.SYS_EXPORT_TABLE_01 is: /u00/oracle/dump/expdp_scott_view.dmp Job "SYSTEM"."SYS_EXPORT_TABLE_01" successfully completed at Tue Jan 7 10:52:14 2014 elapsed 0 00:00:06
Nach dem erneuten Import wurde aus der View eine Tabelle.
SQL> SELECT * FROM tab; TNAME TABTYPE CLUSTERID -------------------- ------- ---------- EMP_M TABLE
Zeitstempel anzeigen
Es besteht nun die Möglichkeit mithilfe des LOGTIME Parameters einen Zeitstempel einzublenden. Daduch kann man zum Beispiel erkennen, wie lange der Export oder Import einer Tabelle gedauert hat.
Dem LOGTIME Parameter können folgende Werte übergeben werden.
Wert | Bedeutung |
NONE | Keine Ausgabe von Zeitstempeln (Standardwert). |
STATUS | Ausgabe der Zeitstempel nur auf dem Bildschirm. |
LOGFILE | Ausgabe der Zeitstempel nur in der Logdatei. |
ALL | Ausgabe der Zeitstempel auf dem Bildschirm und in der Logdatei. |
Ein Export könnte dann wie folgt aussehen.
$> expdp system/oracle directory=DATA_PUMP dumpfile=expdp_scott_logtime,dmp logfile=expdp_scott_logtime SCHEMAS=emp LOGTIME=AL
;;; Export: Release 12.1.0.1.0 - Production on Tue Jan 7 10:22:49 2014 Copyright (c) 1982, 2013, Oracle and/or its affiliates. All rights reserved. ;;; Connected to: Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production With the Partitioning, Automatic Storage Management, OLAP, Advanced Analytics and Real Application Testing options 07-JAN-14 10:22:51.864: Starting "SYSTEM"."SYS_EXPORT_SCHEMA_01": system/******** directory=DATA_PUMP dumpfile=expdp_scott_logtime.dmp logfile=expdp_scott_logtime.log schemas=SCOTT LOGTIME=all 07-JAN-14 10:22:52.066: Estimate in progress using BLOCKS method... 07-JAN-14 10:22:52.486: Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA 07-JAN-14 10:22:52.552: Total estimation using BLOCKS method: 192 KB 07-JAN-14 10:22:52.828: Processing object type SCHEMA_EXPORT/USER 07-JAN-14 10:22:52.912: Processing object type SCHEMA_EXPORT/SYSTEM_GRANT 07-JAN-14 10:22:52.921: Processing object type SCHEMA_EXPORT/ROLE_GRANT 07-JAN-14 10:22:52.932: Processing object type SCHEMA_EXPORT/DEFAULT_ROLE 07-JAN-14 10:22:53.123: Processing object type SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA 07-JAN-14 10:23:00.260: Processing object type SCHEMA_EXPORT/TABLE/TABLE 07-JAN-14 10:23:00.379: Processing object type SCHEMA_EXPORT/TABLE/INDEX/INDEX 07-JAN-14 10:23:01.001: Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT 07-JAN-14 10:23:01.010: Processing object type SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS 07-JAN-14 10:23:01.074: Processing object type SCHEMA_EXPORT/VIEW/VIEW 07-JAN-14 10:23:01.252: Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT 07-JAN-14 10:23:01.270: Processing object type SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS 07-JAN-14 10:23:01.281: Processing object type SCHEMA_EXPORT/STATISTICS/MARKER 07-JAN-14 10:23:08.284: . . exported "SCOTT"."DEPT" 6.007 KB 4 rows 07-JAN-14 10:23:08.312: . . exported "SCOTT"."EMP" 8.757 KB 14 rows 07-JAN-14 10:23:08.346: . . exported "SCOTT"."SALGRADE" 5.937 KB 5 rows 07-JAN-14 10:23:08.357: . . exported "SCOTT"."BONUS" 0 KB 0 rows 07-JAN-14 10:23:08.792: Master table "SYSTEM"."SYS_EXPORT_SCHEMA_01" successfully loaded/unloaded 07-JAN-14 10:23:08.795: ****************************************************************************** 07-JAN-14 10:23:08.797: Dump file set for SYSTEM.SYS_EXPORT_SCHEMA_01 is: 07-JAN-14 10:23:08.802: /u00/oracle/dump/expdp_scott_logtime.dmp 07-JAN-14 10:23:08.809: Job "SYSTEM"."SYS_EXPORT_SCHEMA_01" successfully completed at Tue Jan 7 10:23:08 2014 elapsed 0 00:00:18
Weitere Neuigkeiten findet man in der Oracle® Database Utilities 12c Release 1 (12.1) Dokumentation.
Fazit
Die Anzahl neuer Features oder Verbesserungen von Data Pump halten sich in Grenzen. Data Pump wurde aber um einige kleine, aber sehr nützliche Eigenschaften erweitert. Allen voran die Möglichkeit zum Deaktivieren des Archive Loggings und die Anzeige von Zeitstempeln während des Ex- oder Imports.