EXP,EXPDP数据导入本地性能测试的一点心得

二、EXP,EXPDP数据导入本地性能测试

本文编写背景:

大家都知道,Oracle数据库有两种比较方便的导出导入工具,那就是exp/imp和expdp/impdp。熟悉此工具的人也会了解到,exp/imp的使用 (服务器端和客户端都可以执行,并且备份文件可以在客户端产生);expdp/impdp的使用 (服务器端和客户端都可以执行,备份文件只能存在服务器里面)。

但鉴于导出导入工具的特点,我们就想能否通过expdp将远端数据库数据导入到本地库中呢?当然可以!下面我们就一起来做一个测试吧。

测试说明:

目的:将远端数据库服务器(IP为65)的数据导入到本地(IP为67)dmp文件中

其中用到服务器(65)一个用户(user_exp)的一张表做测试(t_exp)

Create tablespace tbs_exp datafile ‘D:\tbs_exp.dbf’ size 10240m autoextend off;

Create user user_exp identified by user_exp default tablespace tbs_exp;

Grant connect,resource,unlimited tablespace to user_exp;

Conn user_exp/user_exp

create table t_exp as

select * from user_tablespaces;

declare

begin

for i in 1 .. 10000000 loop

insert into t_exp

(tablespace_name, block_size, initial_extent,MIN_EXTENTS )

values

('tablespace_name',0,0,i);

end loop;

commit;

end;

/

1.EXP工具数据导入本地步骤

直接通过以下代码将服务器数据导入到本地:

exp user_exp/user_exp@orcl_65 file=d:\exp_01.dmp log=d:\exp_01.log tables=(t_exp)

2.EXPDP工具数据导入本地步骤

第一步:本地建立导出用户

Create user db_exp identified by db_exp;

Grant connect,resource,create database link to db_exp;

第二步:本地创建directory,并授权导出用户使用

在操作系统上创建direxp目录

create or replace directory DIR_EXP as 'D:\direxp';

grant read,write on directory DIR_EXP to db_exp;

第三步:,并创建db link 链接

-- Create database link

create database link to_exp_65

connect to user_exp identified by user_exp

using '(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 10.48.1.65)(PORT = 1521))

(CONNECT_DATA =

(SERVER = DEDICATED)

(SID = orcl)

)

)';

Select 1 from dual@to_exp_65;

第四步:导出代码

expdp db_exp/db_exp@orcl_67 directory=DIR_EXP dumpfile=expdp_01.dmp logfile=expdp_01.log tables=(t_exp) network_link=to_exp_65

其他备注:

Db_exp 本地用户,用来连接远端数据库服务器

Dir_exp 本地db_exp用户下 的 directory 用户本地指定expdp写入目录,这里是D盘direxp文件夹

To_exp_65 本地db_exp用户下的 db link ,用来连接远端数据库服务器

3.EXP,EXPDP工具数据导入本地性能对比

性能测试结果:

Exp导出过程如下:

C:\Documents and Settings\Administrator>prompt $P$G$T$G

C:\Documents and Settings\Administrator>16:10:55.37>

C:\Documents and Settings\Administrator>16:11:05.92>exp user_exp/user_exp@orcl_6

5 file=d:\exp_01.dmp log=d:\exp_01.log tables=(t_exp)

Export: Release 10.2.0.1.0 - Production on 星期三 10月 12 16:11:07 2011

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production

With the Partitioning, OLAP and Data Mining options

已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集

服务器使用 AL32UTF8 字符集 (可能的字符集转换)

即将导出指定的表通过常规路径...

. . 正在导出表                           T_EXP导出了    10000007 行

成功终止导出, 没有出现警告。

C:\Documents and Settings\Administrator>16:17:51.04>

用时:6分钟46秒

Expdp导出过程如下:

C:\Documents and Settings\Administrator>16:22:15.25>expdp db_exp/db_exp@orcl_67

directory=DIR_EXP dumpfile=expdp_01.dmp logfile=expdp_01.log tables=(t_exp) netw

ork_link=to_exp_65

Export: Release 10.2.0.1.0 - Production on 星期三, 12 10月, 2011 16:22:16

Copyright (c) 2003, 2005, Oracle.  All rights reserved.

连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production

With the Partitioning, OLAP and Data Mining options

启动 "DB_EXP"."SYS_EXPORT_TABLE_01":  db_exp/********@orcl_67 directory=DIR_EXP

dumpfile=expdp_01.dmp logfile=expdp_01.log tables=(t_exp) network_link=to_exp_65

正在使用 BLOCKS 方法进行估计...

处理对象类型 TABLE_EXPORT/TABLE/TABLE_DATA

使用 BLOCKS 方法的总估计: 336 MB

处理对象类型 TABLE_EXPORT/TABLE/TABLE

. . 导出了 "USER_EXP"."T_EXP"                          285.8 MB 10000007 行

已成功加载/卸载了主表 "DB_EXP"."SYS_EXPORT_TABLE_01"

******************************************************************************

DB_EXP.SYS_EXPORT_TABLE_01 的转储文件集为:

D:\DIREXP\EXPDP_01.DMP

作业 "DB_EXP"."SYS_EXPORT_TABLE_01" 已于 16:23:35 成功完成

C:\Documents and Settings\Administrator>16:23:36.46>

用时:1分钟21秒

另:Expdp导入到远程数据库服务端 所耗时间如下:

C:\Documents and Settings\Administrator>16:27:40.92>expdp user_exp/user_exp@orcl

_65 directory=DATA_FILE_DIR dumpfile=expdp_02.dmp logfile=expdp_02.log

Export: Release 10.2.0.1.0 - Production on 星期三, 12 10月, 2011 16:27:41

Copyright (c) 2003, 2005, Oracle.  All rights reserved.

连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production

With the Partitioning, OLAP and Data Mining options

启动 "USER_EXP"."SYS_EXPORT_SCHEMA_01":  user_exp/********@orcl_65 directory=DAT

A_FILE_DIR dumpfile=expdp_02.dmp logfile=expdp_02.log

正在使用 BLOCKS 方法进行估计...

处理对象类型 SCHEMA_EXPORT/TABLE/TABLE_DATA

使用 BLOCKS 方法的总估计: 336 MB

处理对象类型 SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA

处理对象类型 SCHEMA_EXPORT/TABLE/TABLE

处理对象类型 SCHEMA_EXPORT/TABLE/INDEX/INDEX

处理对象类型 SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT

处理对象类型 SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS

处理对象类型 SCHEMA_EXPORT/TABLE/COMMENT

. . 导出了 "USER_EXP"."T_EXP"                          285.9 MB 10000007 行

已成功加载/卸载了主表 "USER_EXP"."SYS_EXPORT_SCHEMA_01"

******************************************************************************

USER_EXP.SYS_EXPORT_SCHEMA_01 的转储文件集为:

E:\ORACLE\PRODUCT\10.2.0\DB_1\DEMO\SCHEMA\SALES_HISTORY\EXPDP_02.DMP

作业 "USER_EXP"."SYS_EXPORT_SCHEMA_01" 已于 16:24:52 成功完成

C:\Documents and Settings\Administrator>16:27:59.70>

用时:0分钟19秒

可见,从远端服务器导数据到本地,使用数据泵也是可以完成的,同时效率还是远远高于普通的exp导出。

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

另外:exp,imp 导出导入参数介绍

一、Oracle数据库EXP\IMP\EXPDP\IMPDP使用说明

1.Exp数据导出

1.1.exp关键字说明

关键字 说明 (默认值)

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

USERID 用户名/口令

BUFFER 数据缓冲区大小

FILE 输出文件 (EXPDAT.DMP)

COMPRESS 导入到一个区 (Y)

GRANTS 导出权限 (Y)

INDEXES 导出索引 (Y)

DIRECT 直接路径 (N) --直接导出速度较快

LOG 屏幕输出的日志文件

ROWS 导出数据行 (Y)

CONSISTENT 交叉表的一致性 (N)

FULL 导出整个文件 (N)

OWNER 所有者用户名列表

TABLES 表名列表

RECORDLENGTH IO记录的长度

INCTYPE 增量导出类型

RECORD 跟踪增量导出 (Y)

TRIGGERS 导出触发器 (Y)

STATISTICS 分析对象 (ESTIMATE)

PARFILE 参数文件名

CONSTRAINTS 导出的约束条件 (Y)

OBJECT_CONSISTENT 只在对象导出期间设置为只读的事务处理 (N)

FEEDBACK 每 x 行显示进度 (0)

FILESIZE 每个转储文件的最大大小

FLASHBACK_SCN 用于将会话快照设置回以前状态的 SCN

FLASHBACK_TIME 用于获取最接近指定时间的 SCN 的时间

QUERY 用于导出表的子集的 select 子句

RESUMABLE 遇到与空格相关的错误时挂起 (N)

RESUMABLE_NAME 用于标识可恢复语句的文本字符串

RESUMABLE_TIMEOUT RESUMABLE 的等待时间

TTS_FULL_CHECK 对 TTS 执行完整或部分相关性检查

TABLESPACES 要导出的表空间列表

TRANSPORT_TABLESPACE 导出可传输的表空间元数据 (N)

TEMPLATE 调用 iAS 模式导出的模板名

1.2.常用的exp关键字举例

1、full用于导出整个数据库,在rows=n一起使用,导出整个数据库的结构。

如:exp userid=gwm/gwm file=/test.dmp log=test.log full=y rows=n direct=y

2、OWNER和TABLES,用于定义exp导出的对象

如:exp userid=gwm/gwm file=/test.dmp log=test.log owner=gwm table=(table1,table2)

3、buffer和feedback 若导出数据较大,考虑使用这两个参数。

如:exp userid=gwm/gwm file=/test.dmp log=test.log feedback=10000 buffer=100000000 tables=(table1,table2)

4、file和log 用于指定备份的dmp名称和log名称

5、compress 不压缩导出数据的内容,默认y

6、filesize 若导出的数据文件大,应该用该参数,限制文件大小不要超过2g

如:exp userid=gwm/gwm file=/test1,test2,test3,test4,test5 filesize=2G log=test.log

这样将创建test1.dmp,test2.dmp等,每个文件大小为2g。

1.3.exp导出实例

--数据库全备--

exp system/manger@link file=E:\file_name.dmp full=y direct=y log=E:\log_name.log

--可选择的备份数据库一些用户--

exp system/manger@link file=E:\file_name.dmp owner=(username1,username2) direct=y log=E:\log_name.log

--备份一个用户的数据--

exp username/password@link file=E:\file_name.dmp direct=y log=E:\log_name.log

2.Imp数据导入

imp关键字说明

关键字 说明 (默认值) 关键字 说明 (默认值)

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

USERID 用户名/口令 FULL 导入整个文件 (N)

BUFFER 数据缓冲区大小 FROMUSER 所有者用户名列表

FILE 输入文件 (EXPDAT.DMP) TOUSER 用户名列表

SHOW 只列出文件内容 (N) TABLES 表名列表

IGNORE 忽略创建错误 (N) RECORDLENGTH IO 记录的长度

GRANTS 导入权限 (Y) INCTYPE 增量导入类型

INDEXES 导入索引 (Y) COMMIT 提交数组插入 (N)

ROWS 导入数据行 (Y) PARFILE 参数文件名

LOG 屏幕输出的日志文件 CONSTRAINTS 导入限制 (Y)

DESTROY 覆盖表空间数据文件 (N)

INDEXFILE 将表/索引信息写入指定的文件

SKIP_UNUSABLE_INDEXES 跳过不可用索引的维护 (N)

FEEDBACK 每 x 行显示进度 (0)

TOID_NOVALIDATE 跳过指定类型 ID 的验证

FILESIZE 每个转储文件的最大大小

STATISTICS 始终导入预计算的统计信息

RESUMABLE 在遇到有关空间的错误时挂起 (N)

RESUMABLE_NAME 用来标识可恢复语句的文本字符串

RESUMABLE_TIMEOUT RESUMABLE 的等待时间

COMPILE 编译过程, 程序包和函数 (Y)

STREAMS_CONFIGURATION 导入流的一般元数据 (Y)

STREAMS_INSTANTIATION 导入流实例化元数据 (N)

下列关键字仅用于可传输的表空间

TRANSPORT_TABLESPACE 导入可传输的表空间元数据 (N)

TABLESPACES 将要传输到数据库的表空间

DATAFILES 将要传输到数据库的数据文件

TTS_OWNERS 拥有可传输表空间集中数据的用户

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

另外: expdp 和 impdp 参数和事例说明

3.Expdp数据泵导出

3.1.EXPDP命令行选项

1. ATTACH

该选项用于在客户会话与已存在导出作用之间建立关联.语法如下

ATTACH=[schema_name.]job_name

Schema_name用于指定方案名,job_name用于指定导出作业名.注意,如果使用ATTACH选项,在命令行除了连接字符串和ATTACH选项外,不能指定任何其他选项,示例如下:

Expdp scott/tiger ATTACH=scott.export_job

2. CONTENT

该选项用于指定要导出的内容.默认值为ALL

CONTENT={ALL | DATA_ONLY | METADATA_ONLY}

当设置CONTENT为ALL时,将导出对象定义及其所有数据.为DATA_ONLY时,只导出对象数据,为METADATA_ONLY时,只导出对象定义

Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dump CONTENT=METADATA_ONLY

3. DIRECTORY

指定转储文件和日志文件所在的目录

DIRECTORY=directory_object

Directory_object用于指定目录对象名称.需要注意,目录对象是使用CREATE DIRECTORY语句建立的对象,而不是OS目录

Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dump

4. DUMPFILE

用于指定转储文件的名称,默认名称为expdat.dmp

DUMPFILE=[directory_object:]file_name [,….]

Directory_object用于指定目录对象名,file_name用于指定转储文件名.需要注意,如果不指定directory_object,导出工具会自动使用DIRECTORY选项指定的目录对象

Expdp scott/tiger DIRECTORY=dump1 DUMPFILE=dump2:a.dmp

5. ESTIMATE

指定估算被导出表所占用磁盘空间分方法.默认值是BLOCKS

ESTIMATE={BLOCKS | STATISTICS}

设置为BLOCKS时,oracle会按照目标对象所占用的数据块个数乘以数据块尺寸估算对象占用的空间,设置为STATISTICS时,根据最近统计值估算对象占用空间

Expdp scott/tiger TABLES=emp ESTIMATE=STATISTICS DIRECTORY=dump DUMPFILE=a.dump

6. ESTIMATE_ONLY

指定是否只估算导出作业所占用的磁盘空间,默认值为N

EXTIMATE_ONLY={Y | N}

设置为Y时,导出作用只估算对象所占用的磁盘空间,而不会执行导出作业,为N时,不仅估算对象所占用的磁盘空间,还会执行导出操作.

Expdp scott/tiger ESTIMATE_ONLY=y NOLOGFILE=y

7. EXCLUDE(具体见2、Exclude导出用户中指定类型的指定对象)

该选项用于指定执行操作时释放要排除对象类型或相关对象

EXCLUDE=object_type[:name_clause] [,….]

Object_type用于指定要排除的对象类型,name_clause用于指定要排除的具体对象.EXCLUDE和INCLUDE不能同时使用

Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dup EXCLUDE=VIEW

8. FILESIZE

指定导出文件的最大尺寸,默认为0,(表示文件尺寸没有限制)

9. FLASHBACK_SCN

指定导出特定SCN时刻的表数据

FLASHBACK_SCN=scn_value

Scn_value用于标识SCN值.FLASHBACK_SCN和FLASHBACK_TIME不能同时使用

Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dmp FLASHBACK_SCN=358523

10. FLASHBACK_TIME

指定导出特定时间点的表数据

FLASHBACK_TIME=”TO_TIMESTAMP(time_value)”

Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dmp FLASHBACK_TIME=“TO_TIMESTAMP(’25-08-2004 14:35:00’,’DD-MM-YYYY HH24:MI:SS’)”

11. FULL

指定数据库模式导出,默认为N

FULL={Y | N}

为Y时,标识执行数据库导出.

12. HELP

指定是否显示EXPDP命令行选项的帮助信息,默认为N

当设置为Y时,会显示导出选项的帮助信息.

Expdp help=y

13. INCLUDE(具体见1、Include导出用户中指定类型的指定对象)

指定导出时要包含的对象类型及相关对象

INCLUDE = object_type[:name_clause] [,… ]

14. JOB_NAME

指定要导出作用的名称,默认为SYS_XXX

JOB_NAME=jobname_string

SELECT * FROM DBA_DATAPUMP_JOBS;--查看存在的job

15. LOGFILE

指定导出日志文件文件的名称,默认名称为export.log

LOGFILE=[directory_object:]file_name

Directory_object用于指定目录对象名称,file_name用于指定导出日志文件名.如果不指定directory_object.导出作用会自动使用DIRECTORY的相应选项值.

Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dmp logfile=a.log

16. NETWORK_LINK

指定数据库链名,如果要将远程数据库对象导出到本地例程的转储文件中,必须设置该选项.

如:expdp gwm/gwm directory=dir_dp NETWORK_LINK=igisdb tables=p_street_area dumpfile =p_street_area.dmp logfile=p_street_area.log job_name=my_job

igisdb是目的数据库与源数据的链接名,

dir_dp是目的数据库上的目录

而如果直接用使用连接字符串(@fgisdb),expdp属于服务端工具,expdp生成的文件默认是存放在服务端的

17. NOLOGFILE

该选项用于指定禁止生成导出日志文件,默认值为N.

18. PARALLEL

指定执行导出操作的并行进程个数,默认值为1

注:并行度设置不应该超过CPU数的2倍,如果cpu为2个,可将PARALLEL设为2,在导入时速度比PARALLEL为1要快

而对于导出的文件,如果PARALLEL设为2,导出文件只有一个,导出速度提高不多,因为导出都是到同一个文件,会争抢资源。所以可以设置导出文件为两个,如下所示:

expdp gwm/gwm directory=d_test dumpfile=gwmfile1.dp,gwmfile2.dp parallel=2

19. PARFILE

指定导出参数文件的名称

PARFILE=[directory_path] file_name

20. QUERY

用于指定过滤导出数据的where条件

QUERY=[schema.] [table_name:] query_clause

Schema用于指定方案名,table_name用于指定表名,query_clause用于指定条件限制子句.QUERY选项不能与CONNECT=METADATA_ONLY,EXTIMATE_ONLY,TRANSPORT_TABLESPACES等选项同时使用.

Expdp scott/tiger directory=dump dumpfile=a.dmp Tables=emp query=’WHERE deptno=20’

21. SCHEMAS

该方案用于指定执行方案模式导出,默认为当前用户方案.

22. STATUS

指定显示导出作用进程的详细状态,默认值为0

23. TABLES

指定表模式导出

TABLES=[schema_name.]table_name[artition_name][,…]

Schema_name用于指定方案名,table_name用于指定导出的表名,partition_name用于指定要导出的分区名.

24. TABLESPACES

指定要导出表空间列表

25. TRANSPORT_FULL_CHECK

该选项用于指定被搬移表空间和未搬移表空间关联关系的检查方式,默认为N.

当设置为Y时,导出作用会检查表空间直接的完整关联关系,如果表空间所在表空间或其索引所在的表空间只有一个表空间被搬移,将显示错误信息.当设置为N时,导出作用只检查单端依赖,如果搬移索引所在表空间,但未搬移表所在表空间,将显示出错信息,如果搬移表所在表空间,未搬移索引所在表空间,则不会显示错误信息.

26. TRANSPORT_TABLESPACES

指定执行表空间模式导出

27. VERSION

指定被导出对象的数据库版本,默认值为COMPATIBLE.

VERSION={COMPATIBLE | LATEST | version_string}

为COMPATIBLE时,会根据初始化参数COMPATIBLE生成对象元数据;为LATEST时,会根据数据库的实际版本生成对象元数据.version_string用于指定数据库版本字符串.调用EXPDP

3.2.数据泵工具导出的步骤

1、创建DIRECTORY

create directory dir_dp as 'D:\oracle\dir_dp';

2、授权

Grant read,write on directory dir_dp to lttfm;

--查看目录及权限

SELECT privilege, directory_name, DIRECTORY_PATH FROM user_tab_privs t, all_directories d

WHERE t.table_name(+) = d.directory_name ORDER BY 2, 1;

3、执行导出

expdp lttfm/lttfm@fgisdb schemas=lttfm directory=dir_dp dumpfile =expdp_test1.dmp logfile=expdp_test1.log;

连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1

With the Partitioning, OLAP and Data Mining options

启动 "LTTFM"."SYS_EXPORT_SCHEMA_01": lttfm/********@fgisdb sch

ory=dir_dp dumpfile =expdp_test1.dmp logfile=expdp_test1.log; */

3.3.其他使用说明

1、directory=dir_dp必须放在前面,如果将其放置最后,会提示 ORA-39002: 操作无效

ORA-39070: 无法打开日志文件。

ORA-39087: 目录名 DATA_PUMP_DIR; 无效

2、在导出过程中,DATA DUMP 创建并使用了一个名为SYS_EXPORT_SCHEMA_01的对象,此对象就是DATA DUMP导出过程中所用的JOB名字,如果在执行这个命令时如果没有指定导出的JOB名字那么就会产生一个默认的JOB名字,如果在导出过程中指定JOB名字就为以指定名字出现

如下改成:

expdp lttfm/lttfm@fgisdb schemas=lttfm directory=dir_dp dumpfile =expdp_test1.dmp logfile=expdp_test1.log,job_name=my_job1;

3、导出语句后面不要有分号,否则如上的导出语句中的job表名为‘my_job1;’,而不是my_job1。因此导致expdp lttfm/lttfm attach=lttfm.my_job1执行该命令时一直提示找不到job表

4、创建的目录一定要在数据库所在的机器上。否则也是提示:

ORA-39002: 操作无效

ORA-39070: 无法打开日志文件。

ORA-39087: 目录名 DATA_PUMP_DIR; 无效

3.4.导出的其他相关命令使用

1)Ctrl+C组合键:在执行过程中,可以按Ctrl+C组合键退出当前交互模式,退出之后,导出操作不会停止

2)Export> status --查看当前JOB的状态及相关信息

3)Export> stop_job --暂停JOB(暂停job后会退出expor模式)

4)重新进入export模式下:C:\Documents and Settings\Administrator>expdp lttfm/lttfm attach=lttfm.my_job1 --语句后面不带分号

5)Export> start_job --打开暂停的JOB(并未开始重新执行)

6)Export> continue_client --通过此命令重新启动 "LTTFM"."MY_JOB":

7)Export> kill_job --取消当前的JOB并释放相关客户会话(将job删除同时删除dmp文件)

8)Export> exit_client --通过此命令退出export模式(通过4)可再进入export模式下)

注:导出完成后job自动卸载

3.5.数据泵导出的各种模式

1、按表模式导出:

expdp lttfm/lttfm@fgisdb tables=lttfm.b$i_exch_info,lttfm.b$i_manhole_info dumpfile =expdp_test2.dmp logfile=expdp_test2.log directory=dir_dp job_name=my_job

2、按查询条件导出:

expdp lttfm/lttfm@fgisdb tables=lttfm.b$i_exch_info dumpfile =expdp_test3.dmp logfile=expdp_test3.log directory=dir_dp job_name=my_job query='"where rownum<11"'

3、按表空间导出:

Expdp lttfm/lttfm@fgisdb dumpfile=expdp_tablespace.dmp tablespaces=GCOMM.DBF logfile=expdp_tablespace.log directory=dir_dp job_name=my_job

4、导出方案

Expdp lttfm/lttfm DIRECTORY=dir_dp DUMPFILE=schema.dmp SCHEMAS=lttfm,gwm

5、导出整个数据库:

expdp lttfm/lttfm@fgisdb dumpfile =full.dmp full=y logfile=full.log directory=dir_dp job_name=my_job

6、使用exclude,include导出数据

1)、Include导出用户中指定类型的指定对象

--仅导出lttfm用户下以B开头的所有表,包含与表相关的索引,备注等。不包含过程等其它对象类型:

expdp lttfm/lttfm@fgisdb dumpfile=include_1.dmp logfile=include_1.log directory=dir_dp job_name=my_job include=TABLE:\"LIKE \'B%\'\"

--导出lttfm用户下排除B$开头的所有表:

expdp lttfm/lttfm@fgisdb schemas=lttfm dumpfile=include_1.dmp logfile=include_1.log directory=dir_dp job_name=my_job include=TABLE:\"NOT LIKE \'B$%\'\"

--仅导出lttfm用户下的所有存储过程:

expdp lttfm/lttfm@fgisdb schemas=lttfm dumpfile=include_1.dmp logfile=include_1.log directory=dir_dp job_name=my_job include=PROCEDURE;

2)、Exclude导出用户中指定类型的指定对象

--导出lttfm用户下除TABLE类型以外的所有对象,如果表不导出那么与表相关的索引,约束等与表有关联的对象类型也不会被导出:

expdp lttfm/lttfm@fgisdb schemas=lttfm dumpfile=exclude_1.dmp logfile=exclude_1.log directory=dir_dp job_name=my_job exclude=TABLE;

--导出lttfm用户下排除B$开头的所有表:

expdp lttfm/lttfm@fgisdb dumpfile=include_1.dmp logfile=include_1.log directory=dir_dp job_name=my_job exclude=TABLE:\"LIKE\'b$%\'\";

--导出lttfm用户下的所有对象,但是对于表类型只导出以b$开头的表:

expdp lttfm/lttfm@fgisdb dumpfile=include_1.dmp logfile=include_1.log directory=dir_dp job_name=my_job exclude=TABLE:\"NOT LIKE \'b$%\'\";

4.Impdp数据泵导入

4.1.IMPDP命令行选项

与EXPDP有很多相同的,不同的有:

1、REMAP_DATAFILE

该选项用于将源数据文件名转变为目标数据文件名,在不同平台之间搬移表空间时可能需要该选项.

REMAP_DATAFIEL=source_datafie:target_datafile

2、REMAP_SCHEMA

该选项用于将源方案的所有对象装载到目标方案中.

REMAP_SCHEMA=source_schema:target_schema

3、REMAP_TABLESPACE

将源表空间的所有对象导入到目标表空间中

REMAP_TABLESPACE=source_tablespace:target:tablespace

4、REUSE_DATAFILES

该选项指定建立表空间时是否覆盖已存在的数据文件.默认为N

REUSE_DATAFIELS={Y | N}

5、SKIP_UNUSABLE_INDEXES

指定导入是是否跳过不可使用的索引,默认为N

6、SQLFILE

指定将导入要指定的索引DDL操作写入到SQL脚本中

SQLFILE=[directory_object:]file_name

Impdp scott/tiger DIRECTORY=dump DUMPFILE=tab.dmp SQLFILE=a.sql

7、STREAMS_CONFIGURATION

指定是否导入流元数据(Stream Matadata),默认值为Y.

8、TABLE_EXISTS_ACTION

该选项用于指定当表已经存在时导入作业要执行的操作,默认为SKIP

TABBLE_EXISTS_ACTION={SKIP | APPEND | TRUNCATE | FRPLACE }

当设置该选项为SKIP时,导入作业会跳过已存在表处理下一个对象;当设置为APPEND时,会追加数据,为TRUNCATE时,导入作业会截断表,然后为其追加新数据;当设置为REPLACE时,导入作业会删除已存在表,重建表病追加数据,注意,TRUNCATE选项不适用与簇表和NETWORK_LINK选项

9、TRANSFORM

该选项用于指定是否修改建立对象的DDL语句

TRANSFORM=transform_name:value[bject_type]

Transform_name用于指定转换名,其中SEGMENT_ATTRIBUTES用于标识段属性(物理属性,存储属性,表空间,日志等信息),STORAGE用于标识段存储属性,VALUE用于指定是否包含段属性或段存储属性,object_type用于指定对象类型.

Impdp scott/tiger directory=dump dumpfile=tab.dmp Transform=segment_attributes:n:table

10、TRANSPORT_DATAFILES

该选项用于指定搬移空间时要被导入到目标数据库的数据文件

TRANSPORT_DATAFILE=datafile_name

Datafile_name用于指定被复制到目标数据库的数据文件

Impdp system/manager DIRECTORY=dump DUMPFILE=tts.dmp

TRANSPORT_DATAFILES=’/user01/data/tbs1.f’调用IMPDP

4.2.impdp导入模式

1、按表导入

p_street_area.dmp文件中的表,此文件是以gwm用户按schemas=gwm导出的:

impdp gwm/gwm@fgisdb dumpfile =p_street_area.dmp logfile=imp_p_street_area.log directory=dir_dp tables=p_street_area job_name=my_job

2、按用户导入(可以将用户信息直接导入,即如果用户信息不存在的情况下也可以直接导入)

impdp gwm/gwm@fgisdb schemas=gwm dumpfile =expdp_test.dmp logfile=expdp_test.log directory=dir_dp job_name=my_job

3、不通过expdp的步骤生成dmp文件而直接导入的方法:

--从源数据库中向目标数据库导入表p_street_area

impdp gwm/gwm directory=dir_dp NETWORK_LINK=igisdb tables=p_street_area logfile=p_street_area.log job_name=my_job

igisdb是目的数据库与源数据的链接名,dir_dp是目的数据库上的目录

4、更换表空间

采用remap_tablespace参数

--导出gwm用户下的所有数据

expdp system/orcl directory=data_pump_dir dumpfile=gwm.dmp SCHEMAS=gwm

注:如果是用sys用户导出的用户数据,包括用户创建、授权部分,用自身用户导出则不含这些内容

--以下是将gwm用户下的数据全部导入到表空间gcomm(原来为gmapdata表空间下)下

impdp system/orcl directory=data_pump_dir dumpfile=gwm.dmp remap_tablespace=gmapdata:gcomm

oracle 导入性能,EXP,EXPDP数据导入本地性能测试的一点心得相关推荐

  1. oracle如何导入一个用户,Oracle 把一个用户的数据导入另一个用户 (数据泵)

    Oracle 把一个用户的数据导入另一个用户 (数据泵) 发布时间:2020-06-06 23:38:49 来源:51CTO 阅读:6700 作者:crazy_charles 192.168.0.1- ...

  2. oracle12c导入,Oracle 12c pdb使用expdp/impdp导入导出

    1.查看当前的SID,查看pdb并切换到容器数据库,这里的pluggable数据库是pdborcl[oracle@test admin]$ echo $ORACLE_SID [oracle@test  ...

  3. 如何将excel表格导入matlab,将Excel数据导入MATLAB中的方法

    在使用MATLAB对矩阵进行数据处理时,为了方便编辑与修改,常常需要先将数据录入到Excel中,然后再将其导入到MATLAB中参与矩阵运算.那么下面小编教你怎么将Excel数据导入MATLAB中. 将 ...

  4. impdp oracle 只导入表结构_Oracle数据导入导出(expdp impdp)

    oracle数据泵的使用方式, 以及数据泵命令的参数说明 使用expdp和impdp时应该注重的事项: 1.exp和imp是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用. 2.expdp ...

  5. Oracle数据库的创建、数据导入导出

    如何结合Sql脚本和PL/SQL Developer工具来实现创建表空间.创建数据库.备份数据库.还原数据库等操作,然后实现Oracle对象创建.导入数据等操作,方便我们快速了解.创建所需要的部署Sq ...

  6. 用ado把excel数据写入oracle,如何将excel表格数据导入到oracle数据库对应的表中?!oracle导出excel文件...

    如何把excel里的表导入到oracle里 使用第三方工具吧,toad之类的 一个excel表格中有多个sheet,如何将其导入oracle数据库 户和要用DBA 最简单得建用户: create us ...

  7. oracle通过load data 将数据导入表中通过存储过程进行批量处理

    说明:虽然没图,但文字表述很清楚,自己做过的项目留着备用(这只是初版,比较繁琐,但很明确) 准备工作做完之后,后期可直接使用.如后期excel数据有变更,只需改动对应的部分即可,不涉及改动的可直接使用 ...

  8. oracle+excel转txt,Excel数据导入Oracle的方法

    Excel数据导入Oracle的方法 最近同事遇到了每天手工导入Excel数据到Oracle的问题,他目前的操作是使用PL/SQL Developer中的复制粘贴方法,这样每天都需要进行手工的操作,很 ...

  9. 转:[Asp.net]常见数据导入Excel,Excel数据导入数据库解决方案,总有一款适合你!...

    引言 项目中常用到将数据导入Excel,将Excel中的数据导入数据库的功能,曾经也查找过相关的内容,将曾经用过的方案总结一下. 方案一 NPOI NPOI 是 POI 项目的 .NET 版本.POI ...

  10. sqoop将hbase数据导入mysql_Sqoop将mysql数据导入hbase的血与泪

    Sqoop将mysql数据导入hbase的血与泪(整整搞了大半天) 版权声明:本文为yunshuxueyuan原创文章. 如需转载请标明出处: https://my.oschina.net/yunsh ...

最新文章

  1. tomcat8 启动项目pom.xml配置
  2. Xamarin XAML语言教程Progress属性设置进度条进度
  3. element 修改表单值后表单验证无效_javascript自学记录:表单脚本1
  4. 用数据驱动思想来设计游戏-读《游戏编程精粹1》
  5. spring项目属性注入和bean管理xml 注入一般属性和集合属性
  6. tar压缩解压缩命令详解
  7. Error:Connection timed out: connect
  8. python--从入门到实践--chapter 11 代码测试unittest
  9. oracle 9企业版,Oracle 9i简体中文企业版【32位amp;564位客户端】 - 网络软件频道 -天天游戏吧...
  10. android 360相机,相机360app安卓版
  11. 设计模式讲解2:static proxy和decorator的不同点
  12. Git生成并添加SSH key[并添加到Github]
  13. 修改高通IPQ4019/4018的flash的分区
  14. 全国办公软件高级操作员证书是计算机水平,《办公软件应用高级操作员级课程标准》.doc...
  15. 使用企业微信做微信消息通知
  16. 用python写一个股票提醒、并用邮件方式发送出去
  17. linux查看ssh进程命令,查看linux ssh服务信息及运行状态方法
  18. 网站服务器坏了要修多久,大学服务器电脑坏了,一分钟修好收500,朋友:有钱不挣是傻子!...
  19. Mapbox相机动画整理(1)示例解析
  20. Neo4j技能树学习之路

热门文章

  1. 计算机操作系统笔记——线程及其实现
  2. 关于linux下的iptables 的浅析命令和了解
  3. [CTO札记]李彦宏:《领导者的心态——Best of the best》
  4. WCF去掉证书验证(转载)
  5. 从周五开始美国服务器特别慢,美国服务器用户有同感吗?...
  6. 数据挖掘——统计学分析(一:数据的整理与图示表示)
  7. 引入springboot的两种方式以及springboot容器的引入
  8. 反射机制——获取Class中的方法
  9. Finding distance between two curves
  10. 制定Windows重要安全计划——12步纲要