Вы находитесь на странице: 1из 11

Oracle Database 12c - DataPump

Feature-1: LOGTIME Parameter


The LOGTIME parameter determines if timestamps should be included in the output messages from the
expdp and impdp utilities.
LOGTIME=[NONE | STATUS | LOGFILE | ALL]
The allowable values are explained below.
1. NONE : The default value, which indicates that no timestamps should be included in the output,
making the output look similar to that of previous versions.
2. STATUS : Timestamps are included in output to the console, but not in the associated log file.
3. LOGFILE : Timestamps are included in output to the log file, but not in the associated console
messages.
4. ALL : Timestamps are included in output to the log file and console.

[oracle@localhost ddl]$ sqlplus /nolog


SQL> connect sys/oracle@orcl as sysdba
SQL> CREATE OR REPLACE DIRECTORY test_dir AS '/u01/app/oracle/oradata/';
Directory created.
SQL> GRANT READ, WRITE ON DIRECTORY test_dir TO scott;
Grant succeeded.
SQL> !expdp scott/oracle@orcl tables=emp directory=test_dir dumpfile=emp.dmp
logfile=expdp_emp.log logtime=all
SQL> ! ls -lrt /u01/app/oracle/oradata/
total 192
-rw-r--r--. 1 oracle oinstall 1879 Nov 4 17:16 expdp_emp.log
-rw-r-----. 1 oracle oinstall 163840 Nov 4 17:16 emp.dmp
Feature-2: Export View as Table
The VIEWS_AS_TABLES parameter allows Data Pump to export the specified views as if they were tables.
The table structure matches the view columns, with the data being the rows returned by the query
supporting the views.
VIEWS_AS_TABLES=[schema_name.]view_name[:table_name], ...

Oracle Database 12c Data Pump

Page 1 of 11

SQL> connect sys/oracle@orcl as sysdba


SQL> grant create any view to scott;
SQL> connect scott/oracle@orcl
SQL> create view emp_v as select * from emp;
View created.
SQL> !expdp scott/oracle@orcl views_as_tables=scott.emp_v directory=test_dir
dumpfile=emp_v.dmp logfile=expdp_emp_v.log
Now export the view using the VIEWS_AS_TABLES parameter.
By default expdp creates a temporary table as a copy of the view, but with no data, to provide a source
of the metadata for the export. Alternatively to can specify a table with the appropriate structure. This
probably only makes sense if you are using this functionality in a read-only database.

Feature-3: Change Table Compression at Import


The TABLE_COMPRESSION_CLAUSE clause of the TRANSFORM parameter allows the tablec compression
characteristics of the tables in an import to be altered on the fly.
TRANSFORM=TABLE_COMPRESSION_CLAUSE:[NONE | compression_clause]

SQL> create user test identified by oracle;


User created.
SQL> grant connect,resource to test;
Grant succeeded.
SQL> alter user test quota unlimited on users;
User altered.
SQL> !impdp system/oracle@orcl directory=test_dir dumpfile=emp.dmp
logfile=impdp_emp.log remap_schema=scott:test
transform=table_compression_clause:compress
Feature-4: Dumpfile Compression Options
As part of the Advanced Compression option, you can specify the COMPRESSION_ALGORITHM
parameter to determine the level of compression of the export dumpfile. This is not related to table
compression discussed previously.
COMPRESSION_ALGORITHM=[BASIC | LOW | MEDIUM | HIGH]
The meanings of the available values are described below.

Oracle Database 12c Data Pump

Page 2 of 11

BASIC : The same compression algorithm used in previous versions. Provides good compression,
without severely impacting on performance.
LOW : For use when reduced CPU utilisation is a priority over compression ratio.
MEDIUM : The recommended option. Similar characteristics to BASIC, but uses a different
algorithm.
HIGH : Maximum available compression, but more CPU intensive.

Without Compression:
SQL> !expdp scott/oracle@orcl tables=emp directory=test_dir dumpfile=emp.dmp
logfile=expdp_emp.log logtime=all
04-NOV-14 17:16:12.211: . . exported "SCOTT"."EMP"

8.757 KB

14 rows

With Compression
SQL> !expdp scott/oracle@orcl tables=emp directory=test_dir dumpfile=emp1.dmp
logfile=expdp_emp1.log compression=all compression_algorithm=medium
. . exported "SCOTT"."EMP"

5.109 KB

14 rows

Feature-5: Audit Commands DataPump Dumpfile


Oracle 12c allows data pump jobs to be audited by creating an audit policy.
CREATE AUDIT POLICY policy_name
ACTIONS COMPONENT=DATAPUMP [EXPORT | IMPORT | ALL];
SQL> connect sys/oracle@orcl as sysdba
Connected.
SQL> CREATE AUDIT POLICY audit_dp_all_policy ACTIONS COMPONENT=DATAPUMP ALL;
Audit policy created.
SQL> AUDIT POLICY audit_dp_all_policy BY scott;
Audit succeeded.
SQL> !expdp scott/oracle@orcl tables=emp directory=test_dir dumpfile=emp2.dmp
logfile=expdp_emp2.log

SQL> EXEC DBMS_AUDIT_MGMT.FLUSH_UNIFIED_AUDIT_TRAIL;


PL/SQL procedure successfully completed.
SQL> SET LINESIZE 200
Oracle Database 12c Data Pump

Page 3 of 11

SQL> COLUMN event_timestamp FORMAT A30


SQL> COLUMN dp_text_parameters1 FORMAT A30
SQL> COLUMN dp_boolean_parameters1 FORMAT A30
SQL> SELECT event_timestamp,
dp_text_parameters1,
dp_boolean_parameters1
FROM unified_audit_trail
WHERE audit_type = 'Datapump'; 2 3 4 5
EVENT_TIMESTAMP
DP_TEXT_PARAMETERS1
DP_BOOLEAN_PARAMETERS1
------------------------------ ------------------------------ -----------------------------04-NOV-14 05.41.29.741142 PM MASTER TABLE: "SCOTT"."SYS_EX MASTER_ONLY: FALSE,
DATA_ONLY:
PORT_TABLE_01" , JOB_TYPE: EXP FALSE, METADATA_ONLY: FALSE,
ORT, METADATA_JOB_MODE: TABLE_ DUMPFILE_PRESENT: TRUE, JOB_RE
EXPORT, JOB VERSION: 12.1.0.0. STARTED: FALSE
0, ACCESS METHOD: AUTOMATIC, D
ATA OPTIONS: 0, DUMPER DIRECTO
RY: NULL REMOTE LINK: NULL, T
ABLE EXISTS: NULL, PARTITION O
PTIONS: NONE
SQL>
Feature-6: Encryption Password Enhancements
In previous versions, data pump encryption required the ENCRYPTION_PASSWORD parameter to be
entered on the command line, making password snooping relatively easy.
In Oracle 12c, the ENCRYPTION_PWD_PROMPT parameter enables encryption without requiring the
password to be entered as a command line parameter. Instead, the user is prompted for the password
at runtime, with their response not echoed to the screen.
ENCRYPTION_PWD_PROMPT=[YES | NO]

SQL> !expdp scott/oracle@orcl tables=emp directory=test_dir dumpfile=emp3.dmp


logfile=expdp_emp3.log encryption_pwd_prompt=yes
Feature-7: Transportable Database
The TRANSPORTABLE option can now be combined with the FULL option to transport a whole database.
Note: Place user-defined tablespaces in READ-ONLY mode except system, sysaux, temp and undotbs
tablespaces

Oracle Database 12c Data Pump

Page 4 of 11

Step-1: Create new database orcl3


[oracle@localhost ~]$ ps -ef | grep pmon
oracle 3797 1 0 02:25 ?
00:00:00 ora_pmon_orcl3
oracle 3971 3941 0 02:30 pts/2 00:00:00 grep pmon
[oracle@localhost ~]$ . oraenv
ORACLE_SID = [oracle] ? orcl
The Oracle base has been set to /u01/app/oracle
[oracle@localhost ~]$ sqlplus /nolog
SQL> connect sys/oracle as sysdba
SQL> startup;
SQL> select file_name from dba_data_files;
FILE_NAME
-------------------------------------------------------------------------------/u01/app/oracle/oradata/ORCL/datafile/o1_mf_users_b53svc3r_.dbf
/u01/app/oracle/oradata/ORCL/datafile/o1_mf_undotbs1_b53svd7h_.dbf
/u01/app/oracle/oradata/ORCL/datafile/o1_mf_sysaux_b53spns0_.dbf
/u01/app/oracle/oradata/ORCL/datafile/o1_mf_system_b53ss9xf_.dbf
/u01/app/oracle/oradata/ORCL/datafile/tbs_file_to_move01.dbf
SQL> create table scott.testtab (id number, label varchar2(20)) tablespace users;
Table created.
SQL> insert into scott.testtab values (1,'ORACLE');
1 row created.
SQL> insert into scott.testtab values (2,'SQL');
1 row created.
SQL> commit;
Commit complete.
SQL> select tablespace_name from dba_tablespaces order by 1;
TABLESPACE_NAME
-----------------------------SYSAUX
SYSTEM

Oracle Database 12c Data Pump

Page 5 of 11

TBS_FILE_TO_MOVE
TEMP
UNDOTBS1
USERS
6 rows selected.
SQL> alter tablespace TBS_FILE_TO_MOVE read only;
Tablespace altered.
SQL> alter tablespace users read only;
Tablespace altered.
SQL> !expdp system/oracle@orcl dumpfile=fulldb_orcl.dmp logfile=fulldb_orcl.log full=Y
transportable=always version=12 directory=test_dir
SQL> exit
[oracle@localhost ~]$ . oraenv
ORACLE_SID = [orcl] ? orcl3
The Oracle base remains unchanged with value /u01/app/oracle
[oracle@localhost ~]$ sqlplus /nolog
SQL> connect sys/oracle@orcl3 as sysdba
SQL> select tablespace_name from dba_tablespaces order by 1;
TABLESPACE_NAME
-----------------------------SYSAUX
SYSTEM
TEMP
UNDOTBS1
USERS
SQL> alter tablespace users rename to users_new;
Tablespace altered.
SQL> select tablespace_name from dba_tablespaces order by 1;
TABLESPACE_NAME
------------------------------

Oracle Database 12c Data Pump

Page 6 of 11

SYSAUX
SYSTEM
TEMP
UNDOTBS1
USERS_NEW
SQL> select file_name from dba_data_files;
FILE_NAME
-------------------------------------------------------------------------------/u01/app/oracle/oradata/ORCL3/datafile/o1_mf_users_b5m2kskg_.dbf
/u01/app/oracle/oradata/ORCL3/datafile/o1_mf_undotbs1_b5m2ktng_.dbf
/u01/app/oracle/oradata/ORCL3/datafile/o1_mf_sysaux_b5m2g15p_.dbf
/u01/app/oracle/oradata/ORCL3/datafile/o1_mf_system_b5m2hrb0_.dbf
SQL> alter tablespace users_new offline;
Tablespace altered.
SQL> !
[oracle@localhost ~]$ mv
/u01/app/oracle/oradata/ORCL3/datafile/o1_mf_users_b5m2kskg_.dbf
/u01/app/oracle/oradata/ORCL3/datafile/users_new01.dbf
[oracle@localhost ~]$ exit
exit
SQL> select file_name from dba_data_files;
FILE_NAME
-------------------------------------------------------------------------------/u01/app/oracle/oradata/ORCL3/datafile/o1_mf_users_b5m2kskg_.dbf
/u01/app/oracle/oradata/ORCL3/datafile/o1_mf_undotbs1_b5m2ktng_.dbf
/u01/app/oracle/oradata/ORCL3/datafile/o1_mf_sysaux_b5m2g15p_.dbf
/u01/app/oracle/oradata/ORCL3/datafile/o1_mf_system_b5m2hrb0_.dbf
SQL> alter database rename file
'/u01/app/oracle/oradata/ORCL3/datafile/o1_mf_users_b5m2kskg_.dbf' to
'/u01/app/oracle/oradata/ORCL3/datafile/users_new01.dbf';
Database altered.
SQL> alter tablespace users_new online;
Tablespace altered.

Oracle Database 12c Data Pump

Page 7 of 11

SQL> select tablespace_name from dba_tablespaces order by 1;


TABLESPACE_NAME
-----------------------------SYSAUX
SYSTEM
TEMP
UNDOTBS1
USERS_NEW
SQL> !
[oracle@localhost ~]$ pwd
/home/oracle
[oracle@localhost ~]$ cd /u01/app/oracle/oradata/orcl
bash: cd: /u01/app/oracle/oradata/orcl: No such file or directory
[oracle@localhost ~]$ cd /u01/app/oracle/oradata
[oracle@localhost oradata]$ ls
cdb1 emp1.dmp emp3.dmp emp_v.dmp
expdp_emp2.log expdp_emp.log expdporcl.log
fulldb_orcl.log noncdb ORCL3
cdb2 emp2.dmp emp.dmp expdp_emp1.log expdp_emp3.log expdp_emp_v.log
fulldb_orcl.dmp impdp_emp.log ORCL
[oracle@localhost oradata]$ cd ORCL
[oracle@localhost ORCL]$ ls
controlfile datafile online_datafile onlinelog
[oracle@localhost ORCL]$ cd datafile/
[oracle@localhost datafile]$ ls
o1_mf_sysaux_b53spns0_.dbf o1_mf_system_b53ss9xf_.dbf o1_mf_temp_b53swdsp_.tmp
o1_mf_undotbs1_b53svd7h_.dbf o1_mf_users_b53svc3r_.dbf tbs_file_to_move01.dbf
[oracle@localhost datafile]$ ls -lrth
total 1.6G
-rw-r-----. 1 oracle oinstall 11M Nov 5 02:34 tbs_file_to_move01.dbf
-rw-r-----. 1 oracle oinstall 5.1M Nov 5 02:34 o1_mf_users_b53svc3r_.dbf
-rw-r-----. 1 oracle oinstall 61M Nov 5 02:40 o1_mf_temp_b53swdsp_.tmp
-rw-r-----. 1 oracle oinstall 56M Nov 5 02:50 o1_mf_undotbs1_b53svd7h_.dbf
-rw-r-----. 1 oracle oinstall 781M Nov 5 02:50 o1_mf_system_b53ss9xf_.dbf
-rw-r-----. 1 oracle oinstall 721M Nov 5 02:50 o1_mf_sysaux_b53spns0_.dbf
[oracle@localhost datafile]$ pwd
/u01/app/oracle/oradata/ORCL/datafile
[oracle@localhost datafile]$ cd ../..
[oracle@localhost oradata]$ pwd
/u01/app/oracle/oradata
[oracle@localhost oradata]$ ls

Oracle Database 12c Data Pump

Page 8 of 11

cdb1 emp1.dmp emp3.dmp emp_v.dmp


expdp_emp2.log expdp_emp.log expdporcl.log
fulldb_orcl.log noncdb ORCL3
cdb2 emp2.dmp emp.dmp expdp_emp1.log expdp_emp3.log expdp_emp_v.log
fulldb_orcl.dmp impdp_emp.log ORCL
[oracle@localhost oradata]$ cd ORCL3
[oracle@localhost ORCL3]$ ls
controlfile datafile onlinelog
[oracle@localhost ORCL3]$ cd datafile/
[oracle@localhost datafile]$ pwd
/u01/app/oracle/oradata/ORCL3/datafile
[oracle@localhost datafile]$ ls -lrth
total 1.5G
-rw-r-----. 1 oracle oinstall 61M Nov 5 02:45 o1_mf_temp_b5m2ly4c_.tmp
-rw-r-----. 1 oracle oinstall 5.1M Nov 5 02:49 users_new01.dbf
-rw-r-----. 1 oracle oinstall 56M Nov 5 02:50 o1_mf_undotbs1_b5m2ktng_.dbf
-rw-r-----. 1 oracle oinstall 771M Nov 5 02:51 o1_mf_system_b5m2hrb0_.dbf
-rw-r-----. 1 oracle oinstall 671M Nov 5 02:51 o1_mf_sysaux_b5m2g15p_.dbf
[oracle@localhost datafile]$ pwd
/u01/app/oracle/oradata/ORCL3/datafile
[oracle@localhost datafile]$ cp
/u01/app/oracle/oradata/ORCL/datafile/tbs_file_to_move01.dbf
/u01/app/oracle/oradata/ORCL3/datafile/
[oracle@localhost datafile]$ cp
/u01/app/oracle/oradata/ORCL/datafile/o1_mf_users_b53svc3r_.dbf
/u01/app/oracle/oradata/ORCL3/datafile/
[oracle@localhost datafile]$ cd /u01/app/oracle/oradata/ORCL3/datafile/
[oracle@localhost datafile]$ ls -lrth
total 1.5G
-rw-r-----. 1 oracle oinstall 61M Nov 5 02:45 o1_mf_temp_b5m2ly4c_.tmp
-rw-r-----. 1 oracle oinstall 5.1M Nov 5 02:49 users_new01.dbf
-rw-r-----. 1 oracle oinstall 56M Nov 5 02:50 o1_mf_undotbs1_b5m2ktng_.dbf
-rw-r-----. 1 oracle oinstall 771M Nov 5 02:51 o1_mf_system_b5m2hrb0_.dbf
-rw-r-----. 1 oracle oinstall 671M Nov 5 02:51 o1_mf_sysaux_b5m2g15p_.dbf
-rw-r-----. 1 oracle oinstall 11M Nov 5 02:52 tbs_file_to_move01.dbf
-rw-r-----. 1 oracle oinstall 5.1M Nov 5 02:53 o1_mf_users_b53svc3r_.dbf
[oracle@localhost datafile]$ cd
[oracle@localhost oradata]$ cp fulldb_orcl.dmp /u01/app/oracle/admin/orcl/dpdump/
[oracle@localhost oradata]$ cd /u01/app/oracle/admin/orcl/dpdump/
[oracle@localhost dpdump]$ ls -lrth
total 2.0M
-rw-r-----. 1 oracle oinstall 116 Oct 30 07:24 dp.log

Oracle Database 12c Data Pump

Page 9 of 11

-rw-r--r--. 1 oracle oinstall 583 Nov 5 02:57 fulldb_orcl3.log


-rw-r-----. 1 oracle oinstall 2.0M Nov 5 02:58 fulldb_orcl.dmp
SQL> select file_name from dba_data_files;
FILE_NAME
-------------------------------------------------------------------------------/u01/app/oracle/oradata/ORCL3/datafile/o1_mf_system_b5m2hrb0_.dbf
/u01/app/oracle/oradata/ORCL3/datafile/o1_mf_sysaux_b5m2g15p_.dbf
/u01/app/oracle/oradata/ORCL3/datafile/users_new01.dbf
/u01/app/oracle/oradata/ORCL3/datafile/o1_mf_undotbs1_b5m2ktng_.dbf
SQL> alter user system identified by oracle;
User altered.
[oracle@localhost ~]$ cp /u01/app/oracle/admin/orcl/dpdump/fulldb_orcl.dmp
/u01/app/oracle/admin/orcl3/dpdump/fulldb_orcl.dmp
[oracle@localhost ~]$ exit
exit
SQL> !impdp system/oracle@orcl3 full=Y dumpfile=fulldb_orcl.dmp
transport_datafiles='/u01/app/oracle/oradata/ORCL3/datafile/tbs_file_to_move01.dbf',
'/u01/app/oracle/oradata/ORCL3/datafile/o1_mf_users_b53svc3r_.dbf'
logfile=fulldb_orcl3.log
SQL> sho user
USER is "SYS"
SQL> select tablespace_name from dba_tablespaces order by 1;
TABLESPACE_NAME
-----------------------------SYSAUX
SYSTEM
TBS_FILE_TO_MOVE
TEMP
UNDOTBS1
USERS
USERS_NEW
7 rows selected.
SQL> select name from v$datafile;

Oracle Database 12c Data Pump

Page 10 of 11

NAME
-------------------------------------------------------------------------------/u01/app/oracle/oradata/ORCL3/datafile/o1_mf_system_b5m2hrb0_.dbf
/u01/app/oracle/oradata/ORCL3/datafile/tbs_file_to_move01.dbf
/u01/app/oracle/oradata/ORCL3/datafile/o1_mf_sysaux_b5m2g15p_.dbf
/u01/app/oracle/oradata/ORCL3/datafile/o1_mf_undotbs1_b5m2ktng_.dbf
/u01/app/oracle/oradata/ORCL3/datafile/o1_mf_users_b53svc3r_.dbf
/u01/app/oracle/oradata/ORCL3/datafile/users_new01.dbf
6 rows selected.
SQL> select * from scott.testtab;
ID LABEL
---------- -------------------1 ORACLE
2 SQL
SQL> exit
[oracle@localhost ~]$ . oraenv
ORACLE_SID = [orcl3] ? orcl
[oracle@localhost ~]$ sqlplus /nolog
SQL> connect sys/oracle@orcl as sysdba
SQL> select tablespace_name from dba_tablespaces order by 1;
TABLESPACE_NAME
-----------------------------SYSAUX
SYSTEM
TBS_FILE_TO_MOVE
TEMP
UNDOTBS1
USERS
6 rows selected.
SQL> alter tablespace TBS_FILE_TO_MOVE read write;
Tablespace altered.
SQL> alter tablespace users read write;
Tablespace altered.
SQL> exit

Oracle Database 12c Data Pump

Page 11 of 11

Вам также может понравиться