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
