读书人

oracle11g数据库泵expdp与impdp导出导

发布时间: 2012-12-16 12:02:32 作者: rapoo

oracle11g数据库泵expdp与impdp导出导入问题!40分
在导入的时候,如下:
create or replace directory impdir as 'F:\jhfund';

grant read,write on directory impdir to jhfund;

C:\Documents and Settings\Administrator>impdp jhfund/jhfund directory=IMPDIR du
pfile=funddacc201001210030_%U.dmp REMAP_SCHEMA=jhfund REMAP_TABLESPACE=fundacc:
hfundspa full=y logfile=DATA_PUMP_DIR:jhfund.log

Import: Release 11.1.0.6.0 - Production on 星期日, 19 9月, 2010 17:12:39

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

连接到: Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
ORA-39001: 参数值无效
ORA-39000: 转储文件说明错误
ORA-31640: 无法打开要读取的转储文件 "F:\jhfund\funddacc201001210030_01.dmp"
ORA-27041: 无法打开文件
OSD-04002: 无法打开文件
O/S-Error: (OS 2) 系统找不到指定的文件。
请问是什么原因?
[最优解释]

引用:
Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.

C:\Documents and Settings\Administrator>impdp jhfund/jhfund directory=dump_dir d
umpfile=funddacc201001210030_%U.dmp REMAP_S……


"f:\jhfund\funddacc201001210030_01.dmp这个文件是否存在,有无被破坏?
看到你下面的回复,似乎有成功开始导入的情况?使用的是怎样的命令?

另外对于下面报的ORA-04030,通常都是内存不足导致的,先确定下pga+sga的设置是否超过了限制
1. 32位系统,SGA不能超过1.7G
2. pga+sga不能超过物理内存+swap空间(windows也就是虚拟内存)

另外,你可以在导入的时候通过如下语句查看impdp session使用的内存,进一步分析原因

SELECT server,name,value/1024/1024,s.sid,s.serial#
FROM v$session s, v$sesstat st,v$statname sn
WHERE st.sid = s.sid
and st.statistic# = sn.statistic#
and sn.name LIKE 'session pga memory'
and s.sid = impdp的sid(可以从DBA_DATAPUMP_SESSIONS视图查到)

引用:
. . 导入了 "JHFUND"."ZCCODEDZB" 0 KB 0 行
. . 导入了 "JHFUND"."ZQLTYW" 0 KB 0 行
处理对象类型 SCHEMA_EXPORT/TABLE/INDEX/INDEX
ORA-39097: 数据泵作……

[其他解释]
把你的dumpfile文件名funddacc201001210030_%U.dmp,先换成funddacc201001210030.dmp
试一下这个:
impdp jhfund/jhfund directory=dump_dir schemas=fundacc dumpfile=funddacc201001210030.dmp REMAP_SCHEMA=fundacc:jhfund REMAP_TABLESPACE
=FUNDACC:JHFUND logfile=jhfund.log
[其他解释]
impdp jhfund/jhfund directory=dump_f_dir dumpfile=fundacc201001210030_%U.dmp REMAP_SCHEMA=fundacc:jhfund REMAP_TABLESPACE=fundacc:ysstech full=y logfile=jhfund.log

create or replace directory dump_f_dir as 'f:\jhfund';

grant read,write on directory dump_f_dir to jhfund;



这个是其他同事导入的时候语句,为什么我的就不行呢,各位大虾们,帮帮忙!
[其他解释]
mark!明天看看
[其他解释]
2楼的,干嘛呢,怎么没人回答呢,是不是大家都不会这个新玩意啊!
[其他解释]
logfile=DATA_PUMP_DIR:jhfund.log--你的这个写错了
logfile=jhfund.log

[其他解释]
. . 导入了 "JHFUND"."ZCCODEDZB" 0 KB 0 行
. . 导入了 "JHFUND"."ZQLTYW" 0 KB 0 行
处理对象类型 SCHEMA_EXPORT/TABLE/INDEX/INDEX
ORA-39097: 数据泵作业出现意外的错误 -1423
ORA-39065: MAIN 中出现意外的主进程异常错误
ORA-01423: 检查实际提取的多余行时出错
ORA-04030: 在尝试分配 16396 字节 (QERHJ hash-joi,QERHJ Bit vector) 时进程内存不足
作业 "JHFUND"."SYS_IMPORT_FULL_03" 因致命错误于 23:52:25 停止

导入最后,出现这种问题,请问大虾们,该如何解决!

还有就是我现在不能直接访问表,必须通过用户名.表名,来访问,该如何处理!
[其他解释]
你以导入用户的身份登录也要用户名.表名 这样才能访问吗?
[其他解释]
以导入用户名的身份登录要用户名.表名才能访问,如果是表名访问不了,提示不存在!奇怪呢!
[其他解释]
Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.

C:\Documents and Settings\Administrator>impdp jhfund/jhfund directory=dump_dir d
umpfile=funddacc201001210030_%U.dmp REMAP_SCHEMA=fundacc:jhfund REMAP_TABLESPACE
=fundacc:jhfund full=y logfile=jhfund.log

Import: Release 10.2.0.1.0 - Production on 星期六, 25 9月, 2010 13:42:09

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
ORA-39001: 参数值无效
ORA-39000: 转储文件说明错误
ORA-31640: 无法打开要读取的转储文件 "f:\jhfund\funddacc201001210030_01.dmp"
ORA-27041: 无法打开文件
OSD-04002: 无法打开文件
O/S-Error: (OS 2) 系统找不到指定的文件。

到不进去啊!
[其他解释]
导入之前必须确定存在备份的那个表空间和表名以及用户名称,而且用户还必须有跟备份的时候的相同的权限。
[其他解释]
使用的命令就是:
impdp jhfund/jhfund directory=dump_dir d
umpfile=funddacc201001210030_%U.dmp REMAP_SCHEMA=fundacc:jhfund REMAP_TABLESPACE
=fundacc:jhfund full=y logfile=jhfund.log
就是数据库不一样,一个是oracle11g可以导入,但是出现问题;另一个就是oracle10g(10.2.0.1)版本的,导入不了,原因可能有两个:
导入数据的dmp版本高于我目前使用的版本,另一种情况就是命令不对,可是如果命令不对的话,oracle11g就导入不了的,所以我认为还是数据库版本的问题。另外数据泵好像本身还有一些问题。技术不是很成熟!

令一个问题:我是以jhfund用户名导入数据的,用pl/sql工具查询(以jhfund登陆的):在表的前面要用jhfund才能查询数据,直接使用表名,提示不存在。

然后我用sqlplus,以jhfund登陆,可以直接使用表名来查询@!请问高手们,这是数据库什么地方设置不对,希望高手们回答详细点,一方面我能看懂,另一方面也方面大家过来查阅,帮助其他遇到此类问题的同行们!谢谢!
------其他解决方案--------------------


12楼的,我的文件单个多个是一样的,不是这个原因,谢谢您发表宝贵的意见!
[其他解释]

引用:
你以导入用户的身份登录也要用户名.表名 这样才能访问吗?


以导入用户的身份登录,也要加用户名。表名,所以我感觉到很奇怪ne!
[其他解释]
我也遇到你这个问题,不过刚才搜索了下百度,自己解决了:
11g版本导出,导入到10g
具体如下:
导出脚本(11G):
expdp test109/test109@orcl directory=expdp dumpfile=test10930bak.dmp logfile=mydb.log filesize=200m full=y version=10.2.0.1.0
version号一定要哈

导入脚本(10G):
impdp shl1017/shl1017 directory=expdp dumpfile=TEST10930BAK.dmp version=10.2.0.1.0 REMAP_SCHEMA=test109:shl1017
各参数对应的数据你根据自己的修改下哈。

读书人网 >oracle

热点推荐