Oracle数据库管理(数据文件)
表空间包含多个数据文件、段空间
段空间(segment)包含多个区空间
表空间和数据文件
- 表空间是逻辑存储概念,一个表空间是一个或多个数据文件的逻辑集合.
- 存储对象(表、索引)逻辑的的存储在表空间上,而存储对象的数据物理的存放在数据文件上
- 数据库至少需要一个叫做system的表空间,也就是系统表空间
- 一个表孔暗金至少包括一个数据文件,数据文件是最终的数据存储体,一个数据文件只属于一个表空间
管理表空间
通常一个数据库由多个表空间构成,每个表空间存储不同特性的数据
一个正常运行的数据库通常包含下面这些表空间
- system:存放数据字典信息,是数据库必须的表空间,也是创建数据库时第一个被创建的表空间
- sysaux:存放除了数据字典那之外的一些系统管理辅助信息,是10g新增加的表空间,用于分担系统表空间的负荷
- undo:存放自动管理的回滚段信息,提供食物的回滚功能
- temp:存放用户排序时的临时数据
- index:存放用户表上的索引信息
- 其他:存放各种不同的用户表数据
除了system和sysaux表空间必须在创建数据库的时候创建外,其他表空间都可以在数据库生成后由DBA创建并进行管理,通常对系统表空间的管理任务较少
创建表空间
通常需要在创建数据库之前规划好需要的表空间,然后创建数据库,并根据需求创建所需的表空间
- 必须有create tablespace权限(dba role|sysdba|sysoper)
- 确定smallfile(256GB)还是bigfile(可以有4G os block)
- 判断io,如果磁盘接近io饱和就不能再新建了
- datafile后面参数为数据文件路径与名字,路径要具备oracle写权限
create [bigfile|smallfile] tablespace <> datafile '<dir>' size <>; //如果不选择会根据系统默认选择
查询系统默认是bigfile还是smallfile
select property_name,property_value from database_properties where property_name like '%TBS%';
修改默认
alter database set default</