IMPDP & EXPDP實例

EXPDP導出

一.導出前準備

1.設置NLS_LANG環境變量

(1)查看數據庫用的啥子字符集

col PARAMETER for a20

col VALUE for a30

select * from nls_database_parameters
where PARAMETER in ('NLS_LANGUAGE','NLS_TERRITORY','NLS_CHARACTERSET')
/

PARAMETER            VALUE
-------------------- ------------------------------
NLS_LANGUAGE         AMERICAN
NLS_TERRITORY        AMERICA
NLS_CHARACTERSET     AL32UTF8

 

(2)指定當前shell的NLS_LANG參數(即設置exp工具的字符集)

[oracle@test64 ~]$ export NLS_LANG=AMERICAN_AMERICA.AL32UTF8

2.查看要導出的幾張表大小,估算dmp文件大小(實際值一般會比這少,因爲導出的是使用了的塊,另外exp支持壓縮,而expdp是自動壓縮的)

 

col SEGMENT_NAME for a15
col PARTITION_NAME for a20
col size for a10

select SEGMENT_NAME,PARTITION_NAME,BYTES/1024/1024 ||' m' "size" from user_segments
where PARTITION_NAME like 'xxxxx_201111_%'
/

SEGMENT_NAME    PARTITION_NAME       size
--------------- -------------------- ----------
xxxxx           xxxxx_201111_1      288 m
xxxxx           xxxxx_201111_2      296 m
xxxxx           xxxxx_201111_3      304 m

 

 

3.查看要導出的磁盤是否有空間

[oracle@test64 backup]$ df -h .
Filesystem            容量  已用 可用 已用% 掛載點
/dev/mapper/VolGroup01-backup
                      4.0G  2.8G 1014M  74% /backup

 

4.建目錄對象
SQL> create directory BACKUP as '/backup';

Directory created.

 

5.將目錄對象BACKUP授權給所有人
SQL> grant read ,write on directory BACKUP to public;

Grant succeeded.

 

二.開始導出
expdp system/oracle DIRECTORY=BACKUP LOGFILE=test_expdp.log DUMPFILE=test_dp.dmp CONTENT=DATA_ONLY tables=(schema.table:xxxxx_201111_1,schema.table:xxxxx_201111_2,schema.table:xxxxx_201111_3)

 

用戶名密碼如果沒有註明的話,需要自己手工輸入,增加安全性。或者你可以如上指定用戶名密碼    system/oracle

 

最後導出756M的dmp文件(自動壓縮了的),expdp導出僅用35秒

 

==================================================================================================

 

IMPDP導入

三.導入前準備

1.根據要導入的數據庫,設置NLS_LANG環境變量

2.查看要導入的表空間是否夠用

3.建目錄對象
SQL> create directory BACKUP as '/backup';

Directory created.

4.將目錄對象BACKUP授權給所有人
SQL> grant read ,write on directory BACKUP to public;

Grant succeeded.

 

四.開始導入
[oracle@test64 backup]$ impdp system/oracle DIRECTORY=BACKUP DUMPFILE=test_dp.dmp CONTENT=DATA_ONLY LOGFILE=test_impdp.log TABLES=(schema.table:xxxxx_201111_1,schema.table:xxxxx_201111_2,schema.table:xxxxx_201111_3)

 

導入時間11分50秒

 

因爲導入時會自動維護index,如果將表上的索引刪除或者unusable的話,導入時間更快

 

想對impdp提速的話,可以加個平行度參數PARALLEL,但impdp設置的PARALLEL的值必須小於等於expdp時設置的值。

 

 

=================================================================================================

 

常用參數

impdp help=y


REMAP_SCHEMA          Objects from one schema are loaded into another schema.
REMAP_TABLESPACE      Tablespace object are remapped to another tablespace.

TABLE_EXISTS_ACTION   Action to take if imported object already exists.
                      Valid keywords: (SKIP), APPEND, REPLACE and TRUNCATE.

REMAP_SCHEMA=source_schema:target_schema[,source_schema:target_schema]

REMAP_TABLESPACE=source_tablespace:target_tablespace[,source_tablespace:target_tablespace]

 

參考書籍《塗抹ORACLE--三思筆記之一步一步學oracle》第13章data pump導入和導出數據

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章