oracle的体系逻辑结构
(1)表空间(TABLESPACE) ,包括:系统表空间、回滚段表空间、临时表空间、用户表空间(除用户表空间外其他三张表空间有各自特定的用途,不可随意更改和破坏)
在建表时,可以指定表空间,例如: create table t(id int) tablespace tbs_test;
建各类表空间的方法:
① 普通数据表空间
create tablespace TBS_LJB(表空间名) datafile 'E:\ORADATA\ORA11\DATAFILE\TBS_LJB_01.DBF'(数据文件全路径) size 100M(大小) extent management local --(这两句,在oracle 10g及以上版本,可以取消) segment space management auto; |
②临时表空间
CREATE TEMPORARY TABLESPACE temp_ljb
TEMPFILE 'E:\ORADATA\ORA11\DATAFILE\TMP_LJB.DBF' SIZE 100M;
③回滚段表空间
create undo tablespace undotbs2
datafile 'E:\ORADATA\ORA11\DATAFILE\UNDOTBS2.DBF' size 100M;
补充:
1、建用户,并将先前建的表空间 tbs_ljb 和临时表空间 temp_ljb 作为 ljb 用户的默认使用空间。
create user ljb identified by ljb default tablespace tbs_ljb temporary tablespace temp_ljb; -- 赋给ljb dba权限 grant dba to ljb; |
2、如果表空间不足,可以有两种方法:
第一种,增加数据文件:
ALTER TABLESPACE TBS_LJB(表空间名) ADD DATAFILE '......'(数据文件全路径名) SIZE 100M;
第二种,把表空间设置为自动扩展:
ALTER DATABASE DATAFILE '.......'(数据文件全路径名) autoextend on; (在创建表空间时,就可以加上这个关键字,表示该表空间自动扩展)
3、删除表空间
drop tablespace TBS_LJB
including contents and datafile;
如果表空间有数据,不增加 including contents 将无法删除成功,增加 and datafiles 关键字在linux 及
unix 下可自动删除数据文件,而在windows 环境下需要手动删除
4、UNDO 表空间和 TEMP 表空间在数据库建好是必然已经创建好了,不过,它们都可以新建,并且用户都可以指定新建的空间。
5、oracle 可以为不同的用户指定不同的临时表空间,而且可以为同一用户的不同session 设置不同的临时表空间(临时表空间组),从而减缓IO 竞争。
(2)段(SEGMENT)
每建立一张表,往往对应一个段,如果是分区表,那么各个分区又独立成段。在表上建一个索引,则又会有一个对应的索引段。
(3)区(EXTENT)
oracle 分配空间的最小单位
(4)块(BLOCK)
oracle 的最小逻辑数据单位
11