日期:2014-05-16 浏览次数:20426 次
一个用户可以使用一个或多个表空间,一个表空间也可以供多个用户使用。用户和表空间没有隶属关系,表空间是 一个用来管理数据存储逻辑概念,表空间只是和数据文件发生关系,数据文件是物理的,一个表空间可以包含多 个数据文件,而一个数据文件只能隶属一个表空间。 用户属于数据库实例的,在一个实例下不能同名用户。但在一Oracle服务器,可以创建多个实例,只要你的 机器配置够用就可以。因为一个实例启动起码需要100多兆内存的。所以在一Oracle服务器上可以存在多个同名 用户,他们是属于不同数据库实例,他们对应使用的表空间在不同的实例上。 查询表空间和用户之间的关系: SELECT * FROM DBA_SEGMENTS WHERE TABLESPACE_NAME=? 当用户在使用表一段时间之后发现表空间使用错误的操作过程 1.dba用户登录 sqlplus /nolog conn /as sysdba 2.查看各表空间的使用状态 select tablespace_name,status from dba_tablespaces; 3.切换至一般用户 conn scott/tigger 4.查询用户表和表空间的关系 select table_name,tablespace_name from user_tables; 5.迁移表数据到相应的表空间 alter table emp move tablespace tbs_data; 6.确认用户表和表空间的关系 select table_name,tablespace_name from user_tables; 建议用户创建方式如下: create user jinfeng identified by ticket default tablespace tbs_data temporary tablespace tbs_temp; quota 38M on tbs_data quota 28M on tbs_index profile tbs_profile; 查看用户所属,默认的临时表空间 select username,default_tablespace ,temporary_tablespace,created ,profile from dba_users where username ='SCOTT'; 查看用户可以在每一个表空间中可用的磁盘空间大上限 select username ,tablespace_name,bytes/1024/1024/1024 MB, max_bytes/1024/1024 MAXMB from dba_ts_quotas where username='SCOTT';
?