Neue Data Pump Features in Oracle 12c

Dieser Blogeintrag zeigt die neuen Features und Verbesserungen von Data Pump mit der Veröffentlichung des Releases 12c Release 1.

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.

Referenzen

Leave a Reply

Your email address will not be published. Required fields are marked *