前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >对imp中的fromuser参数的偏差理解

对imp中的fromuser参数的偏差理解

作者头像
bisal
发布2019-01-29 11:54:00
9710
发布2019-01-29 11:54:00
举报

这两天执行导入dump文件时总碰到一个问题。

问题现象

1. 执行:imp xyz/xxx file=test.dmp log=imp_test.log fromuser=test1 touser=test2 ignore=y commit=y buffer=300000000 feedback=10000

注:这个文件dump>200G容量。

2. 执行了许久,但最后结果和log中记录:

Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production With the Partitioning and Data Mining options Export file created by EXPORT:V10.02.01 via conventional path Warning: the objects were exported by TEST1, not by you import done in ZHS16GBK character set and AL16UTF16 NCHAR character set . importing TEST1's objects into TEST2 Import terminated successfully without warnings.

3. 但没有任何dump中的数据导入到test2用户中。

原因分析

首先,其实是对imp命令中的fromuser参数偏差的理解。

[root@vm-vmw4131-t ~]# imp -help

FROMUSER     list of owner usernames

imp指令帮助中说明FROMUSER的含义是“属主用户名列表”,相应的,从exp指令帮助中可以看到OWNER参数表示的是相同的含义:

[root@vm-vmw4131-t ~]# exp -help

OWNER        list of owner usernames

即该用户指的是对象所属用户。

其次,经过咨询,上述问题中用到的fromuser=test1这个test1用户是执行exp的系统账户,并不是数据库对象所属账户,这就能解释上面问题的原因了:由于dump文件所属的数据对象账户是另外一个账户,不是test1,因此使用imp ... fromuser=test1时,会检索这个文件dump,查找属于test1用户的对象,全文件扫描后,根本没有属于该用户的对象,因此提示“Import terminated successfully without warnings”正常结束。

总结

1. 这次导入导出时可能根本没实际考虑LANG等字符集环境变量。

2. imp的fromuser指的是对象所属用户,不是执行exp导出的用户。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2014年09月10日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档