关于表空间的疑惑
新建了一个表空间KK,指定文件名为KK.DBF,大小为1024M
用户UTC的默认表空间为KK.DBF
现在在dos下用imp导入数据,为什么导进去的数据不是在KK.DBF里而是在USERS01.DBF里?
问题1:如果把导入USERS01.DBF里的数据删除,我用drop tablespace KK including contents and datafils ,只删除了KK.dbf,再导的时候就提示违反唯一性了。
问题2: 怎样才能把数据导在KK.DBF里?
问题3:如果不能把数据导在KK。DBF里,那建表空间的意义何在呢?
刚入门,菜菜,谢谢先。
------解决方案--------------------新建了一个表空间KK,指定文件名为KK.DBF,大小为1024M
用户UTC的默认表空间为KK.DBF
现在在dos下用imp导入数据,为什么导进去的数据不是在KK.DBF里而是在USERS01.DBF里?
可能原因:导出的数据的表空间为users,且用户UTC是否拥有unlimited tablespace权限,revoke unlimited tablespace from utc;
收回权限再尝试
问题1:如果把导入USERS01.DBF里的数据删除,我用drop tablespace KK including contents and datafils ,只删除了KK.dbf,再导的时候就提示违反唯一性了。
删除了KK tablespace和users tablespace一点关系都没有,所以删除KK表空间不影响刚才导入的数据
重新导入的时候加上参数ignore=y等,就可以了
------解决方案--------------------.回收用户unlimited tablespace权限
这样就可以导入到用户缺省表空间
SQL> create user bjbbs identified by passwd
2 default tablespace bjbbs
3 temporary tablespace temp
4 /
User created.
SQL> grant connect,resource to bjbbs;
Grant succeeded.
SQL> grant dba to bjbbs;
Grant succeeded.
SQL> revoke unlimited tablespace from bjbbs;
Revoke succeeded.
SQL> alter user bjbbs quota 0 on users;
User altered.
SQL> alter user bjbbs quota unlimited on bjbbs;
User altered.
SQL> exit
再重新导入