IMPDP & EXPDP实例

来源:互联网 发布:上交所技术公司 知乎 编辑:程序博客网 时间:2024/04/28 02:44

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导入和导出数据

原创粉丝点击