您的位置:首页 > 数据库 > Oracle

Oracle 表空间tablespace相关整理

2017-06-08 16:04 134 查看


Oracle表空间

ORACLE数据库被划分成称作为表空间的逻辑区域——形成ORACLE数据库的逻辑结构。

一个ORACLE数据库能够有一个或多个表空间,而一个表空间则对应着一个或多个物理的数据库文件。

表空间是ORACLE数据库恢复的最小单位,容纳着许多数据库实体,如表、视图、索引、聚簇、回退段和临时段等。

Oracle表空间(tablespace)是数据库的逻辑划分, 每个数据库至少有一个表空间,叫做系统表空间(system 表空间). 一个表空间只能属于一个数据库。

每个Oracle表空间由同一个磁盘上的一个或多个文件组成, 这些文件称为数据文件.

Oracle表空间的特性:

(1)控制数据库数据磁盘分配

(2)限制用户在表空间中可以使用的磁盘空间大小

(3)表空间具有 online, offline, readonly, readwrite属性

oracle中用户的所有数据都是存放在表空间中的,很多个用户可以共用一个表空间,也可以指定一个用户只用某一个表空间。

表空间:创建表空间会在物理磁盘上建立一个数据文件,作为数据库对象(用户、表、存储过程等等)的物理存储空间;

用户:创建用户必须为其指定表空间,如果没有显性指定默认表空间,则指定为users表空间;创建用户后,可以在用户上,创建表、存储过程等等其他数据库对象;

表:是数据记录的集合;

oracle中的一个数据库就是一个实例.

oracle的一个用户就是一个Schema(即方案).

oracle的结构是=== 实例->用户->表(用户属于数据库实例,表属于某个用户)

所以在oracle下建立 建表空间,建用户,设置用户的默认表空间,在用户下建表;

Oracle创建的TableSpace默认均是本地管理的,明确的表述应该是:

在CREATE TABLESPACE 语句中 EXTENT MANAGEMENT 子句中指定 LOCAL

然后可以用 AUTOALLOCATE 选项(默认)来使Oracle自动管理盘区

CREATE TABLESPACE lmtbsb DATAFILE '/u02/oracle/data/lmtbsb01.dbf' SIZE 50M

EXTENT MANAGEMENT LOCAL AUTOALLOCATE;

也可以使用一个指定大小(UNIFORM SIZE)的同意盘区来管理该TableSpace

CREATE TABLESPACE lmtbsb DATAFILE '/u02/oracle/data/lmtbsb01.dbf' SIZE 50M

EXTENT MANAGEMENT LOCAL UNIFORM SIZE 128K;

select * from v$tablespace;

select file_name,tablespace_name from dba_data_files;

SELECT t.tablespace_name, round(SUM(bytes / (1024 * 1024)), 0) ts_size

FROM dba_tablespaces t, dba_data_files d

WHERE t.tablespace_name = d.tablespace_name

GROUP BY t.tablespace_name;

SELECT tablespace_name, file_id, file_name, round(bytes / (1024 * 1024), 0) total_space

FROM dba_data_files

ORDER BY tablespace_name;

参考:
http://www.jb51.net/article/34564.htm
http://www.cnblogs.com/riskyer/archive/2013/08/27/3285824.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: