日期:2014-05-16 浏览次数:20464 次
问题描述:前一段时间,项目部署到客户机房服务器上的时候,我们发现我们的测试数据库的表都放在system或者users表空间下面。相应的表并没有放到对应的表空间下,比如我创建一个cncb的表空间和数据库用户,当我们导入数据的时候数据并没有导入到相应的表空间下,如下图所示:
?
?
为此在网上查了一些资料,进行了如下处理:
?刷新可以看到,如下图所示:--首先需要备份一下数据库
exp cncb/join@orcl file=f:\cncb20120331.dmp owner=(cncb)
revoke unlimited tablespace from cncb;
alter user cncb quota 0 on 表空间名;
--补充,凡是其他表空间中存在cncb的表的都执行上边语句,绝对保障其他表空间存储cncb的空间额度设置为0
alter user cncb quota unlimited on cncb;
--执行完之后,再倒入刚才备份的数据库
?
?
顺便总结一下:
Windows下创建表空间命令:(windows和Linux稍微不同)
首先以dba的角色登陆,或者使用sqlplus或者使用plsql
sqlplus /nolog connect system/admin@ORCL as sysdba drop tablespace test including contents; create tablespace test datafile 'F:\oracle\product\10.2.0\oradata\ORCL\ test.ora' size 100m reuse autoextend on maxsize unlimited default storage(initial 320k next 320k minextents 1 maxextents unlimited pctincrease 0); --创建用户 create user 数据库用户名 identified by 密码 default tablespace 表空间名 temporary tablespace temp; --授权,一般为了方便,我们直接赋权dba grant dba to 数据库用户;
?
Linux下创建表空间命令:
?--创建临时表空间
create temporary tablespace test_temp
tempfile '/opt/oracle/oradata/orcl /test_temp01.dbf'
size 64m
autoextend on
next 65m maxsize 2048m
extent management local;
--创建表空间
create tablespace test_data
logging
datafile '/opt/oracle/oradata/orcl/test_data01.dbf'
size 64m
autoextend on
next 65m maxsize 2048m
extent management local;
?