Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1702759
  • 博文数量: 136
  • 博客积分: 10021
  • 博客等级: 上将
  • 技术积分: 3261
  • 用 户 组: 普通用户
  • 注册时间: 2007-01-22 11:26
文章分类

全部博文(136)

文章存档

2010年(1)

2009年(26)

2008年(109)

我的朋友

分类: Oracle

2008-08-19 17:25:33

刚刚碰到了一个问题:现场人员给了一个 Oracle 的 DMP,我得把它导入测试库。由于不知道导出的版本和用户,所以我先随便写一个 fromuser 的值,做一下测试:
 
C:\>imp userid=tianyc/test fromuser=xx touser=tianyc file=D:\hd_hos_zd.dmp
 
Import: Release 10.2.0.1.0 - Production on 星期二 8月 19 16:51:56 2008
 
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
 
经由常规路径由 EXPORT:V10.02.01 创建的导出文件
 
警告: 这些对象由 HD_HOS_ZD 导出, 而不是当前用户
 
已经完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的导入
IMP-00034: 警告: 在导出文件中未找到 FromUser "XX"
成功终止导入, 但出现警告。
 
C:\>
 
看到了导出版本为10.02.01,导出用户的名字为 HD_HOS_ZD,然后执行导入。在这里虽然提示成功,但却并没有导入什么东西:
 
C:\>imp userid=tianyc/test fromuser=HD_HOS_ZD touser=tianyc file=D:\hd_hos_zd.dmp
 
Import: Release 10.2.0.1.0 - Production on 星期二 8月 19 16:52:36 2008
 
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
 
经由常规路径由 EXPORT:V10.02.01 创建的导出文件
 
警告: 这些对象由 HD_HOS_ZD 导出, 而不是当前用户
 
已经完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的导入
成功终止导入, 没有出现警告。
 
为什么?
 
这个 DMP 文件有 40M 左右;用编辑器打开查看 DMP 文件中的内容,确实是存在数据的;字符集也没有问题;导入版本也相同。一切都没有问题,但测试了很多次,结果都一样:没有数据。
 
查看 IMP 的参数时,发现了 full(全库导出),试试看:
 
C:\Documents and Settings\IBM>imp userid=tianyc/test full=y file=D:\hd_hos_zd.dmp
 
Import: Release 10.2.0.1.0 - Production on 星期二 8月 19 17:07:36 2008
 
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
 
经由常规路径由 EXPORT:V10.02.01 创建的导出文件
 
警告: 这些对象由 HD_HOS_ZD 导出, 而不是当前用户
 
已经完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的导入
. 正在将 HD_HOS_ZD 的对象导入到 TIANYC
. 正在将 HD_HOS_DD 的对象导入到 HD_HOS_DD

IMP-00003: 遇到 ORACLE 错误 1435
ORA-01435: 用户不存在
成功终止导入, 但出现警告。
 
咦,还有一个用户“HD_HOS_DD”呢!原来如此,现场人员是用全库导出的方式做的 EXP。这个数据库有两个用户,而我最初使用 fromuser=xx 测试出来的用户恰巧是废弃的用户,它没有对象,所以总是提示导入成功,但却没有数据。将参数换成 fromuser=HD_HOS_DD 就可以了。
 
为了省事,我一直都是随便写一个 fromuser 的值来测试导出的用户,就这次有点背。
阅读(4296) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

hoolma2008-12-03 22:55:21

好似没说得太清,目标用户也要相应有才可以: 这样做 imp userid=tianyc/test full=y file=D:\hd_hos_zd.dmp 集体明天做做测试