项目实施中oracle数据库表空间问题

本文介绍了如何解决Oracle数据库中表空间分配错误的问题。通过备份数据库、调整用户配额及重新导入数据等步骤,实现了表数据的正确存放。此外,还提供了在Windows和Linux环境下创建表空间的具体命令。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述:前一段时间,项目部署到客户机房服务器上的时候,我们发现我们的测试数据库的表都放在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下创建表空间命令:(windowsLinux稍微不同)

首先以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;

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值