Impdp資料泵匯入

靜以致遠√團團發表於2014-03-31
Impdp資料泵匯入

 

執行匯入前,先匯出scottschema作為測試資料:

 

[oracle@localhost ~]$ expdp scott/oracle directory=expdp_dir dumpfile=scott_schema.dmp logfile=scott_schema.log

 

IMPDPCONTENT引數:

CONNECT引數用來控制資料的匯入方式,共有三個值:

ALL : 匯入所有的物件和資料,預設的就是ALL

DATA_ONLE : 只匯入資料

METEDATA_ONLY:只匯入物件定義

 

REMAP_SCHEMA引數用來重定義所屬的schema,可以為多個shema物件重定義:

REMAP_SCHEMA=A:XB:Y

 

REMAP_TABLESPACE引數用來重定義所屬的表空間,語法格式與REMAP_SCHEMA的相似

REMAP_TABLESPACE=M:XN:Y

 

scott使用者匯出的模式匯入到xtt使用者下,並先匯入物件定義,再匯入資料,重定義表空間到EXP_TEST

 

匯入物件定義:

[oracle@localhost ~]$ impdp xtt/oracle directory=expdp_dir dumpfile=scott_schema.dmp nologfile=y content=metadata_only remap_schema=scott:xtt remap_tablespace=users:exp_test

 

.

.

.

Processing object type SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA

Processing object type SCHEMA_EXPORT/TABLE/TABLE

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/TABLE/COMMENT

Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT

Processing object type SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS

Job "XTT"."SYS_IMPORT_FULL_01" successfully completed at 08:06:11

檢視一下資料物件:

[oracle@localhost ~]$ sqlplus xtt/oracle

檢視錶空間:

SQL> select table_name,tablespace_name from user_tables;

TABLE_NAME                     TABLESPACE_NAME

------------------------------ ------------------------------

DEPT                           EXP_TEST

EMP                            EXP_TEST

BONUS                          EXP_TEST

SALGRADE                       EXP_TEST

EXPDP_TEST                     EXP_TEST

SYS_EXPORT_TABLE_01            EXP_TEST

SYS_EXPORT_TABLE_02            EXP_TEST

SYS_EXPORT_TABLE_03            EXP_TEST

檢視一下資料:

SQL> select count(*) from dept;

 

  COUNT(*)

----------

         0

 

只匯入資料:

[oracle@localhost ~]$ impdp xtt/oracle directory=expdp_dir dumpfile=scott_schema.d

mp nologfile=y content=data_only remap_schema=scott:xtt

 

.

.

.

Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA

. . imported "XTT"."EXPDP_TEST"                          138.2 MB 3670016 rows

. . imported "XTT"."SYS_EXPORT_TABLE_01"                 58.32 KB     251 rows

. . imported "XTT"."SYS_EXPORT_TABLE_02"                 50.53 KB     251 rows

. . imported "XTT"."SYS_EXPORT_TABLE_03"                 51.10 KB     253 rows

. . imported "XTT"."DEPT"                                5.656 KB       4 rows

. . imported "XTT"."EMP"                                 7.820 KB      14 rows

. . imported "XTT"."SALGRADE"                            5.585 KB       5 rows

. . imported "XTT"."BONUS"                                   0 KB       0 rows

Job "XTT"."SYS_IMPORT_FULL_01" successfully completed at 08:11:11

 

再次檢視資料:

[oracle@localhost ~]$ sqlplus xtt/oracle

 

SQL> select count(*) from dept;

  COUNT(*)

----------

         4

 

TABLE_EXISTS_ACTION引數可以控制匯入資料時對已經存在的表物件的操作:

SKIP:表示跳過該表,繼續下一個物件的處理,該引數如果在content=data_only模式下無效,會自動置為append

APPEND:向現有表中新增資料

TRUNCATEtruncate當前表,然後向該表中新增資料

REPLACE:刪除該表並重建物件,然後向該表中新增資料

 

繼續前面的匯入,如果表存在的話只需truncate操作後再新增資料:

 

[oracle@localhost ~]$ impdp xtt/oracle directory=expdp_dir dumpfile=scott_schema.d

mp nologfile=y remap_schema=scott:xtt table_exists_action=truncate

 

.

.

ORA-39153: Table "XTT"."BONUS" exists and has been truncated. Data will be loaded but all dependent metadata will be skipped due to table_exists_action of truncate.

.

.

Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA

. . imported "XTT"."EXPDP_TEST"                          138.2 MB 3670016 rows

. . imported "XTT"."SYS_EXPORT_TABLE_01"                 58.32 KB     251 rows

. . imported "XTT"."SYS_EXPORT_TABLE_02"                 50.53 KB     251 rows

. . imported "XTT"."SYS_EXPORT_TABLE_03"                 51.10 KB     253 rows

. . imported "XTT"."EMP"                                 7.820 KB      14 rows

. . imported "XTT"."SALGRADE"                            5.585 KB       5 rows

. . imported "XTT"."BONUS"                                   0 KB       0 rows

 

network_link可以控制遠端將資料匯入到本地資料庫:

 

SQL> create public database link expdp_link connect to scott identified by oracle using 'expdp_test';

Database link created.

 

需要授予本地使用者imp_full_database許可權:

 

SQL> grant imp_full_database to scott;

Grant succeeded.

 

將遠端的scott模式利用expdp_link連線匯入到本地的xtt使用者下:

[oracle@localhost ~]$ impdp scott/oracle network_link=expdp_link2 nologfile=y remap_schema=scott:xtt

 

.

.

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

.

.

. . imported "XTT"."DG_TEST"                                 17 rows

. . imported "XTT"."TEST"                                     8 rows

. . imported "XTT"."STD_TABLE"                                0 rows

. . imported "XTT"."STD_TABLE_1"                              0 rows

Processing object type SCHEMA_EXPORT/TABLE/INDEX/INDEX

Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT

.

.

.

 

SQL> select count(*) from dg_test;

 

  COUNT(*)

----------

        17

 

 

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29320885/viewspace-1132936/,如需轉載,請註明出處,否則將追究法律責任。

相關文章