简介:ORACLE物理上是由磁盘上的以下几种文件:数据文件和控制文件和LOGFILE构成的
表空间就只谈相关的数据文件
首先明确概念:表空间是ORACLE内部定义的一个概念,是为了统一ORACLE物理和逻辑
上的结构而专门建立的,从物理上来说,一个表空间是由具体的一个或多个磁盘上数
据文件构成的(至少1对1,可以1对多),从逻辑上来说一个表空间是由具体的一个或
多个用户模式下的表,索引等等里面的数据所构成的.
因此从用户的角度来看是不应该看到磁盘上物理的数据文件的,其从小到大的视角关系:
字段值 --> 记录值 --> 表数据 --> 用户 --> 表空间 --> ORACLE
而从一个ORACLE DBA的视角来看应是这样的关系:数据文件 --> 表空间 --> ORACLE
综合一下,也就是说在ORACLE中表不可能单独存在,一定隶属于某一个用户,而某一用户的数据必定存在于某个表空间中.
临时表空间用于排序,索引表空间用于放置索引,UNDO表空间用于回滚,用户表空间用于存放用户表。
系统表空间用于存放数据字典。oracle这样分是为了提高系统性能和系统的安全性。
因为oracle不仅有用户权限也有资源权限,可以更好的控制和分配权限的使用。
Oracle数据库关系图:
具体实验步骤:
1创建数据库:
2创建表空间:
[oracle@localhost ~]$ sqlplus / as sysdba
SQL> create tablespace tbs_work
2 datafile '/orc/app/oracle/oradata/worktbs01.dbf'
3 size 10M autoextend on;
表空间已创建。
3调整表空间大小:
方法一:直接修改大小
SQL> alter database datafile
2 '/orc/app/oracle/oradata/worktbs01.dbf'
3 resize 100M;
方法二:添加文件
SQL> alter tablespace tbs_work
2 add datafile
3 '/orc/app/oracle/oradata/worktbs02.dbf'
4 size 50M autoextend on;
表空间已更改。
表空间权限:
SQL> alter tablespace tbs_work read only;
表空间已更改。(只读)
SQL> alter tablespace tbs_work read write;
表空间已更改。(默认:读写)
删除表空间:
SQL> drop tablespace tbs_work including contents;
表空间已删除。(including contents 可选删除有内容的表空间)