Oracle中数据库用户和表空间关系
一个用户可以使用一个或多个表空间,一个表空间也可以供多个用户使用。用户和表空间没有隶属关系,表空是一个用来管理数据存储逻辑概念,表空间只是和数据文件发生关系,数据文件是物理的,一个表空间可以包含多个数据文件,而一个数据文件只能隶属一个表空间。
用户属于数据库实例的,在一个实例下不能同名用户。但在一oracle服务器,可以创建多个实例,只要你的机器配置够用就可以。因为一个实例启动起码需要100多兆内存的。所以在一oracle服务器上可以存在多个同名用户,他们是属于不同数据库实例,他们对应使用的表空间在不同的实例上。
查询表空间和用户之间的关系:
SELECT from DBA_SEGMENTS WHERE TABLESPACE_NAME=?
FAQ:
在Oracle中建立了一个用户UB,它的默认表空间是TSA,在数据库用了一段时间后,发现原来搞错了,把默认表空间改成TSB。现在想问几个问题:
1.数据究竟放在那个表空间上了?
更改以前的放在tsa里面,后来的放在tsb里面
2.我想把数据都放回表空间TSB上可以吗?
将表b存放在tsa里面 --alter table b move tablespace tsb;
3.怎样才知道数据表放在哪个表空间上?
select table_name,TABLESPACE_NAME from user_tables;
4.我用Exp 来导出UB这个用户,能把它所有数据都导出吗?
可以。
相关文档:
oracle表空间操作详解
1
2
3作者: 来源: 更新日期:2006-01-04
5
6
7建立表空间
8
9CREATE TABLESPACE data01
10DATAFILE '/ora ......
1 查看某张表的index的详细信息。(column_position代表选择顺序)
select table_name, index_name, column_name, column_position
from user_ind_columns
where table_name = 'T_BASE_DATA_DICTIONARY'
order by table_name, index_name, column_position;
2 在创建表时对列指定NOT NULL后会禁用N ......
oracle的体系太庞大了,对于初学者来说,难免会有些无从下手的感觉,什么都想学,结果什么都学不好,所以把学习经验共享一下,希望让刚刚入门的人对oracle有一个总体的认识,少走一些弯路。
一、定位
oracle分两大块,一块是开发,一块是管理。开发主要是写写存储过程、触发器什么的,还有就是用Oracle的Devel ......
关键词:
绑定变量(binding variable),共享池(shared buffer pool), SGA(system global area);
在开发一个数据库
系统前,有谁对Oracle 系统了解很多,尤其是它的特性,好象很少吧;对初学者来讲,这更是不可能的事情;仅仅简单掌握了SQL
的写法,就开始了数据库的开发,其结果只能是开发一个没有效率,也没有可扩展的系统;
j8m ......
1.查看表空间:
SELECT A.TABLESPACE_NAME,A.BYTES TOTAL,B.BYTES USED, C.BYTES FREE,
(B.BYTES*100)/A.BYTES "% USED",(C.BYTES*100)/A.BYTES "% FREE"
from SYS.SM$TS_AVAIL A,SYS.SM$TS_USED B,SYS.SM$TS_FREE C
WHERE A.TABLESPACE_NAME=B.TABLESPACE_NAME AND A.T ......