免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3485 | 回复: 9
打印 上一主题 下一主题

A用户数据库导出的DMP,导入B用户时的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-11-27 15:52 |只看该作者 |倒序浏览
数据库用户A备份出的文件1.dmp,导入新建数据库用户B中(两用户的表空间不一样,一个是A1TS,一个是B1TS),在导入较大的表时总出错,查看错误提示,发现提示的是在A的空间建立表时出的错。
疑问是A用户的备份文件导入B用户时,与A用户还有什么关系么?

[ 本帖最后由 newsmart 于 2006-11-27 16:06 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2006-11-27 16:07 |只看该作者
列出具体的imp语句,和详细的报错信息。

论坛徽章:
0
3 [报告]
发表于 2006-11-27 16:24 |只看该作者
oracle>imp

Import: Release 8.1.7.0.0 - Production on Mon Nov 27 15:24:15 2006

(c) Copyright 2000 Oracle Corporation.  All rights reserved.

Username: USER_B
Password:

Connected to: Oracle8i Release 8.1.7.0.0 - Production
JServer Release 8.1.7.0.0 - Production

Import file: expdat.dmp > /b-2006-11-22.dmp

Enter insert buffer size (minimum is 8192) 30720>

Export file created by EXPORT:V07.03.04 via direct path

Warning: the objects were exported by USER_A, not by you

List contents of import file only (yes/no): no >

Ignore create error due to object existence (yes/no): no >

Import grants (yes/no): yes >

Import table data (yes/no): yes >

Import entire export file (yes/no): no > yes

. importing USER_A's objects into USER_B


IMP-00017: following statement failed with ORACLE error 1658:
...
...
IMP-00003: ORACLE error 1658 encountered
ORA-01658: unable to create INITIAL extent for segment in tablespace USERA_TS

谢谢

论坛徽章:
0
4 [报告]
发表于 2006-11-27 16:40 |只看该作者
原帖由 newsmart 于 2006-11-27 16:24 发表
oracle>imp

Import: Release 8.1.7.0.0 - Production on Mon Nov 27 15:24:15 2006

(c) Copyright 2000 Oracle Corporation.  All rights reserved.

Username: USER_B
Password:

Connected to:  ...


这是因为你导出的表是创建在tablespace USERA_TS上的,所以导入的时候还是要创建在tablespace USERA_TS上的。
现在可能是tablespace USERA_TS没有足够的剩余空间来创建新表或者user_b没有quota在tablespace USERA_TS上。

1.  核查tablespace USERA_TS有没有足够的剩余空间,如果没有,add new datafile
2.  如果USERA_TS有足够的空间,则核查user_b有没有quota on tablespace USERA_TS

论坛徽章:
0
5 [报告]
发表于 2006-11-27 16:53 |只看该作者
我想楼主的意思就是想导入到在不同表空间的其它用户上,他并不想创建一个与导出用户一样的表空间。这个是可以实现的,我没有时间来告诉你了,你在网上查,应该能找到资料的。

论坛徽章:
0
6 [报告]
发表于 2006-11-27 17:25 |只看该作者
谢谢,
是想导入不同表空间的用户上,quota on tablespace USERA_TS   如何来实现呢?

论坛徽章:
0
7 [报告]
发表于 2006-11-28 08:37 |只看该作者
创建USERb
授权 connect,resource
取消USERb的unlimit tablespace 系统权限
再对用户USERB_TS添加限额到 USERb_TS
重新导入a用户数据。

论坛徽章:
0
8 [报告]
发表于 2006-11-28 09:19 |只看该作者
谢谢,我试一下

论坛徽章:
0
9 [报告]
发表于 2006-11-28 09:39 |只看该作者
可能是表空间空间使用权限问题,也可能是表的初始扩展太大
先建好表(可以建在其他表空间),然后imp的时候加ignore=y试一试

论坛徽章:
0
10 [报告]
发表于 2006-11-28 10:29 |只看该作者
1. sqlplus / as sysdba
2. revoke unlimited tablespace from userb
3. alter user userb quota 0 on usera_ts
                              quota unlimited on userb_ts;
4. imp xx/xx fromuser=usera touser=userb ...;
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP