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
-------------------- ------------------------------
NLS_LANGUAGE
NLS_TERRITORY
NLS_CHARACTERSET
(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
--------------- -------------------- ----------
xxxxx
xxxxx
xxxxx
3.查看要导出的磁盘是否有空间
[oracle@test64 backup]$ df -h .
Filesystem
/dev/mapper/VolGroup01-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)
用户名密码如果没有注明的话,需要自己手工输入,增加安全性。或者你可以如上指定用户名密码
最后导出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
REMAP_TABLESPACE
TABLE_EXISTS_ACTION
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导入和导出数据