设为首页 加入收藏

TOP

通过dblink使用expdp能不能导出9i库的数据?(一)
2015-07-24 10:21:27 来源: 作者: 【 】 浏览:3
Tags:通过 dblink 使用 expdp 不能 导出 数据

expdp/impdp是10g推出的导入导出工具,9i下是没有该工具的,有人提议用10g的expdp,通过dblink导出9i的数据,乍一听感觉是那么回事,但究竟行不行,咱们实验说明。

1. 登录到一台10g/11g的服务器,首先创建连接到9i库TEST的一个链接tlink:

SQL> create database link tlink connect to test identified by test using 'TEST';

Database link created.
2. 编辑expdp导出的配置文件:
userid=user/pwd			- expdp使用的本机数据库用户
directory=expdp_dir		- directory路径
dumpfile=testtkt.dump
logfile=testtkt.log
tables=test.t_r			- 要导出的9i库表t_r
network_link=tlink		- 链接到的9i库dblink

3. 执行expdp:

[oracle11g@Node1 expdp_dir]$ expdp parfile=tlink.par

Export: Release 11.2.0.1.0 - Production on Mon May 18 13:35:57 2015

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

Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
ORA-39006: internal error
ORA-39065: unexpected master process exception in DISPATCH
ORA-00904: "SYS"."KUPM$MCP"."GET_ENDIANNESS": invalid identifier

ORA-39097: Data Pump job encountered unexpected error -904
提示一系列ORA错误。

expdp不像exp,他是将导出转变成一个Oracle内部的job任务,有一点可以证明,就是使用exp导出时用ctrl+c中断,此时导出过程整体中断,如果使用expdp导出时用ctrl+c中断,此时导出过程并未中断,因为其已经转变为Oracle的一个任务,和客户端无关,退出交互模式后,会进入export的命令行模式,有status、start、stop等命令可以用。

从上面的报错可以看到ORA-00904: "SYS"."KUPM$MCP"."GET_ENDIANNESS": invalid identifier,关于904的错误描述:

[oracle11g@Node1 expdp_dir]$ oerr ora 904
00904, 00000, "%s: invalid identifier"
// *Cause:
// *Action:
说明是找不到对应的标识符,再看看SYS.KUPM$MCP大概是什么:
SQL> desc sys.KUPM$MCP;
PROCEDURE CLOSE_JOB
FUNCTION DISPATCH RETURNS KUPC$_MESSAGE
 Argument Name                  Type                    In/Out Default?
 ------------------------------ ----------------------- ------ --------
 REQUEST                        KUPC$_MESSAGE           IN
PROCEDURE FILE_LOG_MESSAGE
 Argument Name                  Type                    In/Out Default?
 ------------------------------ ----------------------- ------ --------
 ERRCODE                        NUMBER                  IN
 PARAMETER1                     VARCHAR2                IN     DEFAULT
 PARAMETER2                     VARCHAR2                IN     DEFAULT
 PARAMETER3                     VARCHAR2                IN     DEFAULT
 PARAMETER4                     VARCHAR2                IN     DEFAULT
 PARAMETER5                     VARCHAR2                IN     DEFAULT
 PARAMETER6                     VARCHAR2                IN     DEFAULT
 PARAMETER7                     VARCHAR2                IN     DEFAULT
 PARAMETER8                     VARCHAR2                IN     DEFAULT
PROCEDURE FILE_TO_WORKER
 Argument Name                  Type                    In/Out Default?
 ------------------------------ ----------------------- ------ --------
 MESSAGE                        KUPC$_MESSAGE           IN
FUNCTION GET_ENDIANNESS RETURNS NUMBER
PROCEDURE MAIN
 Argument Name                  Type                    In/Out Default?
 ------------------------------ ----------------------- ------ --------
 JOB_NAME                       VARCHAR2                IN
 JOB_OWNER                      VARCHAR2                IN
 RESTART_JOB                    BINARY_INTEGER          IN
 DEBUG_INFO                     BINARY_INTEGER          IN
PROCEDURE MAINLOOP
PROCEDURE SET_DEBUG
 Argument Name                  Type                    In/Out Default?
 ------------------------------ ----------------------- ------ --------
 DEBUG_FLAGS                    BINARY_INTEGER          IN
FUNCTION VALIDATE_EXPRESSION RETURNS NUMBER
 Argument Name                  Type                    In/Out Default?
 ------------------------------ ----------------------- ------ --------
 EXPR_VALUE                     VARCHAR2                IN
其实他包含了若干函数,GET_ENDIANNESS是其中一个(从名称上看,貌似是获得“大小端信息”),显然是没找到对应函数,忘了从什么地方看到过关于这个函数的描述(如果哪位高人记得,可以回复下),他在9i中是不存在的,可以证明expdp导出过程是需要调用这个函数的,但这个函数在9i中是没有定义的,因此9i下是不能使用expdp。

4. 我们接着看dblink导出10g以上版本的库

SQL> create database link ldplink connect to puser identified by puser_pwd using 'link_10g';

Database link cr
首页 上一页 1 2 3 下一页 尾页 1/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇MongoDB介绍和安装 下一篇MyISAM和InnoDB存储引擎的区别

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·Python 数据分析与可 (2025-12-26 21:51:20)
·从零开始学Python之 (2025-12-26 21:51:17)
·超长干货:Python实 (2025-12-26 21:51:14)
·为什么 Java 社区至 (2025-12-26 21:19:10)
·Java多线程阻塞队列 (2025-12-26 21:19:07)