Oracle的逻辑结构就是oracle的内部结构,从上图可以看出:一个数据文件是又多个操作系统块组成;一个数据块也是有多个操作系统块组成;一个表空间由多个数据文件组成;一个数据库有很多schema组成。
Schema的含义:他就是一个集合,里面包含表、试图、过程、包、同义词、数据链等对象,一个user就是该scheam的名称,所以一个数据库由多个scheam组成。创建schema是通过创建user实现的。
Oracle逻辑结构各个部分:
1、tablespace:逻辑上用来保存各种段segment,物理上由多个操作系统文件组成。从逻辑上讲,数据库中的数据存在表空间中;从物理上讲,数据库中的数据存在于数据文件中。一个表空间可以有多个数据文件,但一个数据文件只能属于一个表空间。
表空间分类:系统表空间与非系统表空间
系统表空间:创建数据库的时候,oracle会自动生成system表空间,用来存放oracle的数据字典,一般不存放用户数据。
非系统表空间:可分临时表空间、用户表空间、回滚段表空间。
临时表空间存放用户排序等的临时数据,临时段在下次启动系统的时候全部释放;用户表空间由用户创建用来存放用户的数据及索引等;
回滚段表空间间临时存放修改前数据。
2、segment:一个或者多个结构相同的扩展区、对象组成,可以跨越属于一个表空间的多个数据文件,但是不能跨越表空间;dba_segments保存段的信息,dba_extests 获得已用子段信息,dba_free_space检查空闲字段信息。
3、extent:连续的数据库组成一个扩展区,一个区不能跨数据文件,一个区只能唯一的属于一个数据文件。
决定extent的参数:
Initial 最初分配的空间
Next 下一步分配的空间数
Minextents 段生成时最小分配区数
Maxextents 段生成时最大分配区数
Pctincrease 增长率
Optimal 尽量设小(缺省为空,仅用回滚段)
表空间、表、索引、分区、快照、快照日志的存储参数
参数名 | 默认值 | 最小值 |
Initial | 5个数据块 | 2个数据块 |
Next | 5个数据块 | 1个数据块 |
Minextents | 1 | 1 |
Maxextents | 根据数据块大小而定 | 1 |
Pctincrease | 50 | 0 |
存储参数的设定规则:
Ø 对象级的存储参数设置覆盖表空间级的存储参数设置。
Ø 未在对象级设置存储参数的,由表空间级存储参数决定。
Ø 未在表空间设置存储参数的,由数据库级存储参数决定。
Ø 存储参数改变后,新的选项只针对未分配的extents有效。
4、block:数据库中最小的逻辑存储单位,由多个操作系统块组成,大小一般是8K(由创建数据库db_block_size时指定),数据块的大小应该是操作系统块的整数倍,最大值取决于os。
块的构成:块头、表目录、行目录。