ORACLE 数据泵之NETWORK_LINK

 数据泵之NETWORK_LINK

blog结构图:

 

1  环境介绍


 


SOURCE DB(虚拟机)


TARGET DB(虚拟机)


CLIENT(笔记本)


EXP/IMP


11.2.0.3.0


11.2.0.1.0


11.2.0.1.0


EXPDP/IMPDP


11.2.0.3.0


11.2.0.1.0


11.2.0.1.0


HOST IP


192.168.59.130


192.168.59.128


192.168.59.1


host 平台

内存


RHEL 6.5

MemTotal:  2.6g


windows XP

MemTotal:  2g


windows 8.1

MemTotal:  20g


DB VERSION


11.2.0.3.0


11.2.0.1.0



ORACLE_SID


orclasm


orcl



tnsname


orclasm


orclxp


 

 

注意: 本实验所有的代码无特殊说明均在client客户端执行

 

 

 

图形关系如下:

 

 

2  imp和exp简介

 

首先来看这句话: expdp属于服务端工具,而exp属于客户端工具,expdp生成的文件默认是存放在服务端的,而exp生成的文件是存放在客户端的

 

来验证exp和imp:

 

我们在client客户端执行:

C:\Users\Administrator>exp  lhr/lhr@orclasm  tables=xb_log_lhr  file=e:\e1.dmp  log=E:\exp_table.log  buffer=41943040

 

Export: Release 11.2.0.1.0 - Production on 星期二 2月 10 15:55:25 2015

 

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

 

 

连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production

With the Partitioning, Automatic Storage Management, OLAP, Data Mining

and Real Application Testing options

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

 

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

. . 正在导出表                      XB_LOG_LHR导出了          56 行

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

 

C:\Users\Administrator>imp  lhr/lhr@orclxp  tables=xb_log_lhr  file=e:\e1.dmp  log=E:\exp_table.log  buffer=41943040

 

Import: Release 11.2.0.1.0 - Production on 星期二 2月 10 15:59:42 2015

 

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

 

 

连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

 

经由常规路径由 EXPORT:V11.02.00 创建的导出文件

已经完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的导入

. 正在将 LHR 的对象导入到 LHR

. 正在将 LHR 的对象导入到 LHR

. . 正在导入表                    "XB_LOG_LHR"导入了          56 行

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

 

而文件也的确是在本机的:

 

 

 

3  expdp不使用network_link

根据expdp的语法,我们执行如下脚本:

 

 

C:\Users\Administrator>expdp lhr/lhr@orclasm directory=DATA_PUMP_DIR dumpfile=exptable.dmp TABLES=xb_log_lhr LOGFILE=expdp_table.log

 

Export: Release 11.2.0.1.0 - Production on 星期二 2月 10 16:37:40 2015

 

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

 

连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production

With the Partitioning, Automatic Storage Management, OLAP, Data Mining

and Real Application Testing options

启动 "LHR"."SYS_EXPORT_TABLE_01":  lhr/********@orclasm directory=DATA_PUMP_DIR dumpfile=exptable.dmp TABLES=xb_log_lhr LOGFILE=expdp_table.log

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

处理对象类型 TABLE_EXPORT/TABLE/TABLE_DATA

使用 BLOCKS 方法的总估计: 64 KB

处理对象类型 TABLE_EXPORT/TABLE/TABLE

处理对象类型 TABLE_EXPORT/TABLE/COMMENT

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

处理对象类型 TABLE_EXPORT/TABLE/INDEX/FUNCTIONAL_INDEX/INDEX

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

处理对象类型 TABLE_EXPORT/TABLE/INDEX/STATISTICS/FUNCTIONAL_INDEX/INDEX_STATISTICS

处理对象类型 TABLE_EXPORT/TABLE/TRIGGER

处理对象类型 TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS

. . 导出了 "LHR"."XB_LOG_LHR"                          18.75 KB      56 行

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

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

LHR.SYS_EXPORT_TABLE_01 的转储文件集为:

  /u01/app/oracle/admin/orclasm/dpdump/exptable.dmp

作业 "LHR"."SYS_EXPORT_TABLE_01" 已于 16:38:00 成功完成

 

 

C:\Users\Administrator>

 

 

在服务器端查看可知,文件是存放在linux服务器端的:

 

[oracle@rhel6_lhr dpdump]$ ll

total 156

-rw-r--r-- 1 oracle asmadmin   1391 Feb 10 16:38 expdp_table.log

-rw-r----- 1 oracle asmadmin 151552 Feb 10 16:38 exptable.dmp

[oracle@rhel6_lhr dpdump]$ pwd

/u01/app/oracle/admin/orclasm/dpdump

[oracle@rhel6_lhr dpdump]$

 

而在这种情况下必须将exptable.dmp 拷贝到windows XP上的相应目录下才能使用impdp来进行导入,如下利用ftp下载:

 

 

将exptable.dmp放到windows XP下的虚拟机里:

C:\Users\Administrator>sqlplus lhr/lhr@orclxp

 

SQL*Plus: Release 11.2.0.1.0 Production on 星期二 2月 10 16:46:37 2015

 

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

 

 

连接到:

Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

 

SQL> set line 9999

SQL> SELECT * FROM  dba_directories d WHERE d.directory_name='DATA_PUMP_DIR';

 

OWNER                          DIRECTORY_NAME                 DIRECTORY_PATH

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

SYS                            DATA_PUMP_DIR                  F:\app\oracle\admin\orcl\dpdump\

 

SQL>

 

 

 

 

然后再进行导入操作:

 

C:\Users\Administrator>impdp lhr/lhr@orclxp directory=DATA_PUMP_DIR dumpfile=exptable.dmp LOGFILE=impdp_table.log

 

Import: Release 11.2.0.1.0 - Production on 星期二 2月 10 16:50:46 2015

 

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

 

连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

已成功加载/卸载了主表 "LHR"."SYS_IMPORT_FULL_01"

启动 "LHR"."SYS_IMPORT_FULL_01":  lhr/********@orclxp directory=DATA_PUMP_DIR dumpfile=exptable.dmp LOGFILE=impdp_table.log

处理对象类型 TABLE_EXPORT/TABLE/TABLE

处理对象类型 TABLE_EXPORT/TABLE/TABLE_DATA

. . 导入了 "LHR"."XB_LOG_LHR"                          18.75 KB      56 行

处理对象类型 TABLE_EXPORT/TABLE/COMMENT

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

处理对象类型 TABLE_EXPORT/TABLE/INDEX/FUNCTIONAL_INDEX/INDEX

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

处理对象类型 TABLE_EXPORT/TABLE/INDEX/STATISTICS/FUNCTIONAL_INDEX/INDEX_STATISTICS

处理对象类型 TABLE_EXPORT/TABLE/TRIGGER

处理对象类型 TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS

作业 "LHR"."SYS_IMPORT_FULL_01" 已经完成。

 

 

C:\Users\Administrator>

 

 

日志文件路径:

 

 

 

这样操作是否非常麻烦,那么如何将生成的文件放在目标数据库而不放在源数据库呢,在expdp中使用network_link。

 

 

 

4  expdp使用network_link

 

 

 

4.1  目标数据库创建dblink

C:\Users\Administrator>sqlplus lhr/lhr@orclxp

 

SQL*Plus: Release 11.2.0.1.0 Production on 星期二 2月 10 16:55:43 2015

 

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

 

 

连接到:

Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

 

SQL> create public database link dblk_orclasm connect to lhr identified by lhr using 'orclasm' ;

 

数据库链接已创建。

SQL> SELECT count(1) FROM xb_log_lhr@dblk_orclasm;

 

  COUNT(1)

----------

        56

 

SQL> SELECT count(1) FROM xb_log_lhr;

SELECT count(1) FROM xb_log_lhr

                     *

第 1 行出现错误:

ORA-00942: 表或视图不存在

 

 

SQL>

 

SQL> exit

从 Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options 断开

 

C:\Users\Administrator>

 

 

 

 

 

4.2  client端或目标数据库执行

注意这里的连接标识符是orclxp,即连接到windows xp系统,是target库。

C:\Users\Administrator>expdp lhr/lhr@orclxp directory=DATA_PUMP_DIR dumpfile=exptable.dmp TABLES=xb_log_lhr  network_link=dblk_orclasm LOGFILE=expdp_table.log

 

Export: Release 11.2.0.1.0 - Production on 星期二 2月 10 17:07:35 2015

 

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

 

连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

启动 "LHR"."SYS_EXPORT_TABLE_01":  lhr/********@orclxp directory=DATA_PUMP_DIR dumpfile=exptable.dmp TABLES=xb_log_lhr network_link=dblk_orclasm LOGFILE=expdp_table.log

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

处理对象类型 TABLE_EXPORT/TABLE/TABLE_DATA

使用 BLOCKS 方法的总估计: 64 KB

处理对象类型 TABLE_EXPORT/TABLE/TABLE

处理对象类型 TABLE_EXPORT/TABLE/COMMENT

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

处理对象类型 TABLE_EXPORT/TABLE/INDEX/FUNCTIONAL_INDEX/INDEX

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

处理对象类型 TABLE_EXPORT/TABLE/INDEX/STATISTICS/FUNCTIONAL_INDEX/INDEX_STATISTICS

处理对象类型 TABLE_EXPORT/TABLE/TRIGGER

处理对象类型 TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS

. . 导出了 "LHR"."XB_LOG_LHR"                          18.75 KB      56 行

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

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

LHR.SYS_EXPORT_TABLE_01 的转储文件集为:

  F:\APP\ORACLE\ADMIN\ORCL\DPDUMP\EXPTABLE.DMP

作业 "LHR"."SYS_EXPORT_TABLE_01" 已于 17:07:58 成功完成

 

 

C:\Users\Administrator>

 

结果:

 

 

C:\Users\Administrator>impdp lhr/lhr@orclxp directory=DATA_PUMP_DIR dumpfile=exptable.dmp LOGFILE=impdp_table.log

 

Import: Release 11.2.0.1.0 - Production on 星期二 2月 10 17:13:20 2015

 

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

 

连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

已成功加载/卸载了主表 "LHR"."SYS_IMPORT_FULL_01"

启动 "LHR"."SYS_IMPORT_FULL_01":  lhr/********@orclxp directory=DATA_PUMP_DIR dumpfile=exptable.dmp LOGFILE=impdp_table.log

处理对象类型 TABLE_EXPORT/TABLE/TABLE

处理对象类型 TABLE_EXPORT/TABLE/TABLE_DATA

. . 导入了 "LHR"."XB_LOG_LHR"                          18.75 KB      56 行

处理对象类型 TABLE_EXPORT/TABLE/COMMENT

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

处理对象类型 TABLE_EXPORT/TABLE/INDEX/FUNCTIONAL_INDEX/INDEX

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

处理对象类型 TABLE_EXPORT/TABLE/INDEX/STATISTICS/FUNCTIONAL_INDEX/INDEX_STATISTICS

处理对象类型 TABLE_EXPORT/TABLE/TRIGGER

处理对象类型 TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS

作业 "LHR"."SYS_IMPORT_FULL_01" 已经完成(于 17:13:23 完成)

 

 

C:\Users\Administrator>

 

 

4.3  总结

采用network_link选项时,所有的操作均在target即目标端执行。

 

 

5  impdp使用network_link

 

如果想不生成dmp文件而直接将需要的数据导入garget数据库,则直接使用impdp带network_link ,这样可以直接impdp,而绕过了expdp的步骤

 

5.1  目标数据库创建dblink

C:\Users\Administrator>sqlplus lhr/lhr@orclxp

 

SQL*Plus: Release 11.2.0.1.0 Production on 星期二 2月 10 16:55:43 2015

 

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

 

 

连接到:

Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

 

SQL> create public database link dblk_orclasm connect to lhr identified by lhr using 'orclasm' ;

 

数据库链接已创建。

SQL> SELECT count(1) FROM xb_log_lhr@dblk_orclasm;

 

  COUNT(1)

----------

        56

 

SQL> SELECT count(1) FROM xb_log_lhr;

SELECT count(1) FROM xb_log_lhr

                     *

第 1 行出现错误:

ORA-00942: 表或视图不存在

 

 

SQL>

 

SQL> exit

从 Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options 断开

 

C:\Users\Administrator>

 

 

 

 

.5.2  client或目标端执行

 

C:\Users\Administrator>impdp lhr/lhr@orclxp  network_link=dblk_orclasm directory=DATA_PUMP_DIR TABLES=xb_log_lhr PARALLEL=2

 

Import: Release 11.2.0.1.0 - Production on 星期二 2月 10 17:20:58 2015

 

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

 

连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

启动 "LHR"."SYS_IMPORT_TABLE_01":  lhr/********@orclxp network_link=dblk_orclasm directory=DATA_PUMP_DIR TABLES=xb_log_lhr PARALLEL=2

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

处理对象类型 TABLE_EXPORT/TABLE/TABLE_DATA

使用 BLOCKS 方法的总估计: 64 KB

处理对象类型 TABLE_EXPORT/TABLE/TABLE

. . 导入了 "LHR"."XB_LOG_LHR"                              56 行

处理对象类型 TABLE_EXPORT/TABLE/COMMENT

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

处理对象类型 TABLE_EXPORT/TABLE/INDEX/FUNCTIONAL_INDEX/INDEX

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

处理对象类型 TABLE_EXPORT/TABLE/INDEX/STATISTICS/FUNCTIONAL_INDEX/INDEX_STATISTICS

处理对象类型 TABLE_EXPORT/TABLE/TRIGGER

处理对象类型 TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS

作业 "LHR"."SYS_IMPORT_TABLE_01" 已经完成(于 17:21:10 完成)

 

 

C:\Users\Administrator>

 

 

 

5.3  总结

不生成数据文件而直径导入的方法类似于在目标库中执行create table xxx as select * from xxx@dblink ,不过impdp+nework_link一并将数据及其索引触发器等都导入到了目标端,这样就省了很多事情了。

时间: 2024-09-20 22:42:13

ORACLE 数据泵之NETWORK_LINK的相关文章

oracle数据泵不同工作方式性能比较(五)测试NETWORK_LINK导入方式

根据Oracle的文档的描述,数据泵采用不同的方式导出导入,性能也会有明显的差别,这次正好有机会测试一下,迁移表空间.直接路径.外部表方式,以及数据库链方式导出.导入的性能差异. 这篇测试NETWORK_LINK导入方式. 首先清除上一篇文章中导入的用户和表空间,并重新建立测试用户和表空间. SQL> DROP USER TJSQ_NDMAIN CASCADE; User dropped. SQL> DROP USER TJSQ_TRADE CASCADE; User dropped. SQL

Oracle数据泵导出导入与传统导出导入的区别

 估计有不少的朋友不清楚Oracle数据泵导出导入与传统导出导入的区别吧,下面小编为各位介绍一下,有兴趣的朋友不防进入一起参考.   先来看一下Oracle数据泵导出导入例子 1.首先建立目录: create directory 目录名称 as '数据库服务器上的一个目录',如:  create directory 别名 as 'd:\服务器目录名';  将导入或导出的文件放在这个目录下 2.导出及导入 以SID=orcl,导出dmp的账号为test,导入dmp的账号为test为例. 若将数据从

oracle数据泵EXPDP和IMPDP使用说明

oracle数据泵EXPDP和IMPDP使用说明       首先标题不知道是否正确,oracle数据泵好像包含了好多概念,目前只是零星接触了一下EXPDP和IMPDP工具.据百度而来的资料,oracle10g之后推出的这个工具在性能上要比此前的EXP和IMP要高,而且支持从高版本向低版本导入和导出,所以在需要学习数据导入导出的时候,直接考虑EXPDP和IMPDP了.在此,记录一下这两个工具的使用方法. 一.准备:创建逻辑目录,并赋予oracle对其的读写权限 1.使用EXPDP工具时,其转存储

oracle数据泵不同工作方式性能比较(三)测试直接路径导出、导入方式

根据Oracle的文档的描述,数据泵采用不同的方式导出导入,性能也会有明显的差别,这次正好有机会测试一下,迁移表空间.直接路径.外部表方式,以及数据库链方式导出.导入的性能差异. 这篇测试直接路径导出.导入方式. 首先清除上一篇文章中导入的用户和表空间,并重新建立测试用户和表空间. SQL> DROP USER TJSQ_NDMAIN CASCADE; User dropped. SQL> DROP USER TJSQ_TRADE CASCADE; User dropped. SQL>

Oracle数据泵(Data Dump)错误汇集

Oracle数据泵(Data Dump)使用过程当中经常会遇到一些奇奇怪怪的错误案例,下面总结一些自己使用数据泵(Data Dump)过程当中遇到的问题以及解决方法.都是在使用过程中遇到的问题,以后陆续遇到数据泵(Data Dump)的错误案例,都会补充在此篇. 错误案例1: ORA-39065: DISPATCH 中出现意外的主进程异常错误:ORA-44002: 对象名无效 Windows 平台错误提示: Linux平台错误提示 解决方法: [oracle@DB-Server admin]$

Oracle数据泵(Data Dump)使用过程当中经常会遇到一些奇奇怪怪的错误案例_oracle

Oracle数据泵(Data Dump)使用过程当中经常会遇到一些奇奇怪怪的错误案例,下面总结一些自己使用数据泵(Data Dump)过程当中遇到的问题以及解决方法.都是在使用过程中遇到的问题,以后陆续遇到数据泵(Data Dump)的错误案例,都会补充在此篇. 错误案例1: ORA-39065: DISPATCH 中出现意外的主进程异常错误:ORA-44002: 对象名无效 Windows 平台错误提示: Linux平台错误提示 解决方法: [oracle@DB-Server admin]$

Oracle数据泵如何对已经存在的表加载索引

一个朋友提到一个数据泵导入的问题,在表存在的情况下,不删除表,且导入表的数据和索引. 其实这个任务对于imp很简单,因为imp的工作方式就是如此. SQL> CREATE TABLE T_EXP 2  (ID NUMBER, NAME VARCHAR2(30)); 表已创建. SQL> CREATE INDEX IND_T_EXP_ID 2  ON T_EXP(ID); 索引已创建. SQL> INSERT INTO T_EXP 2  SELECT ROWNUM, TNAME 3  FR

Oracle数据泵技术详解

Oracle Database 10g中采用了数据泵(Data Dump)技术,使DBA或开发人员可以将数据库元数据(对象定义)和数据快速移动到另一个oracle数据库中. 一. 数据泵导出导入(EXPDP和IMPDP)的作用: 1.实现逻辑备份和逻辑恢复. 2.在数据库用户之间移动对象. 3.在数据库之间移动对象 4.实现表空间搬移. 二. 数据泵导出导入与传统导出导入的区别: 在10g之前,传统的导出和导入分别使用EXP工具和IMP工具,从10g开始,增加了数据泵导出导入工具EXPDP和IM

oracle数据泵导入分区表统计信息报错(三)

前不久检查了一篇以往的BLOG,意外的发现这个bug居然被我忘记了,时隔一年继续解决这个问题. 根据上一篇文章所介绍的分析过程,基本上可以确认和这几张分区表的统计信息本身有关. 由于当前数据库是从920环境EXP导出,IMP导入到同版本的中间数据库,最终通过数据泵IMPDP导入到当前数据库的.而分区表由于无法解决表空间的转换问题,因此在中间数据库手工创建,在IMP导入的时候指定了IGNORE=Y参数. 而现在恰好问题出在这个用户的所有分区表上,难道问题和迁移的过程有关系.检查了当时的脚本,没有发