oracle数据库系统并没有像其他数据库系统一样直接操作数据文件,而是通过引入逻辑结构来间接的操作数据文件。
逻辑结构为:
数据库-----n:1----->表空间-----n:1--->段----n:1---->区----n:1---->oracle块
物理结构为:
数据文件----n:1---->os块
oracle引入逻辑结构的目的是为方便实现oracle系统的跨平台型,不依赖于具体的操作系统。如果直接操作数据文件的话就依赖于数据文件对应的操作系统。至于从逻辑结构到物理结构的映射是由oracle rdbms来完成的。
创建非系统表空间的命令格式如下:
create tablespace 表空间名
[datafile子句]
[minimum extent 正整数[K|M]]
[blocksize正整数[k]]
[logging|nologging]
[defaultc存储子句]
[online|offline]
[permanent|temporary]
[区段管理子句]
[段管理子句]
logging:说明在该表空间的所有的数据变化都会写入重做日志文件中这是默认设置
offline:说明在该表空间被创建后立即被置为脱机,即不能使用
表空间中磁盘空间的管理:
磁盘空间的管理分为两类:数据字典管理的表空间和本地管理的表空间 ,oracle9i之后默认使用本地管理的表空间。数据字典管理的表空间会因为表空间过多而造成数据字典所存放的系统表空间的容量瓶颈和运行效率的低下。如果system表空间为本地管理的表空间,oracle系统就不允许再创建数据字典管理的表空间。
通过以下sql获得表空间的磁盘管理方式:
select tablespace_name,status,extent_management,segment_space_management from dba_tablespaces;
可以使用dba_data_files数据字典查看数据文件的相关信息
select file_id,file_name,tablespace_name,status from dba_data_files;