DBA_Tablespace表空间的概念和管控(概念)

简介: 2014-07-24 Created By BaoXinjian 一、摘要 我们知道oarcle数据库真正存放数据的是数据文件(data files); Oarcle表空间(tablespaces)实际上是一个逻辑的概念,他在物理上是并不存在的,那么把一组data files 捻在一起就成为一个表空间; 在ORACLE数据库中,所有数据从逻辑结构上看都是存放在表空间当中,当然表空间下还有段、区、块等逻辑结构; 从物理结构上看是放在数据文件中。

2014-07-24 Created By BaoXinjian

一、摘要


我们知道oarcle数据库真正存放数据的是数据文件(data files);

Oarcle表空间(tablespaces)实际上是一个逻辑的概念,他在物理上是并不存在的,那么把一组data files 捻在一起就成为一个表空间;

在ORACLE数据库中,所有数据从逻辑结构上看都是存放在表空间当中,当然表空间下还有段、区、块等逻辑结构;

从物理结构上看是放在数据文件中。一个表空间可由多个数据文件组成;

 

1. 表空间属性

  • 一个数据库可以包含多个表空间,一个表空间只能属于一个数据库
  • 一个表空间包含多个数据文件,一个数据文件只能属于一个表空间
  • 表这空间可以划分成更细的逻辑存储单元

2. 基本的表空间(系统中默认创建的几个表空间:)

  •     SYSTEM: 系统表表空间
  •     SYSAUX: 索引表空间
  •     USERS: 用户表空间
  •     UNDOTBS1: 回滚表空间
  •     EXAMPLE: 工具表空间
  •     TEMP: 临时表空间

3. 表空间的分类

  • 永久表空间                存放永久性数据,如表,索引等。
  • 临时表空间                不能存放永久性对象,用于保存数据库排序,分组时产生的临时数据。
  • UNDO表空间             保存数据修改前的镜象。

4. 表空间的管理

  • 字典管理:全库所有的空间分配都放在数据字典中。容易引起字典争用,而导致性能问题。
  • 本地管理:空间分配不放在数据字典,而在每个数据文件头部的第3到第8个块的位图块,来管理空间分配。

5. 基本操作

  • 1: 创建表空间
  • 2: 表空间管理
  • 3: 维护表空间
  • 4: 表空间配额

 

二、结构分析


1. 表空间和数据文件的关系

 2. 数据库存储结构

三、案例1 - 创建表空间


1. 创建表空间,并指定两个数据库文件

 1 CREATE TABLESPACE BXJ_DATA   
 2 DATAFILE '/oradata/BXJ_DATA_001.dbf'   
 3 SIZE 100M    
 4 EXTENT MANAGEMENT LOCAL   
 5 SEGMENT SPACE MANAGEMENT AUTO ONLINE;
 6 
 7 ALTER TABLESPACE BXJ_DATA  
 8 ADD DATAFILE '/oradata/BXJ_DATA_001.dbf'  
 9 SIZE 100M
10 AUTOEXTEND OFF;

 

四、案例2 - 表空间管理


1. 常用的表查询

  • --包含数据库中所有表空间的描述信息
    • SELECT * FROM DBA_TABLESPACES
  • --包含当前用户的表空间的描叙信息
    • SELECT * FROM USER_TABLESPACES
  • --包含从控制文件中获取的表空间名称和编号信息
    • SELECT * FROM V$TABLESPACE;
  • --包含数据文件以及所属的表空间的描述信息
    • SELECT * FROM DBA_DATA_FILES
  • --包含临时数据文件以及所属的表空间的描述信息
    • SELECT * FROM DBA_TEMP_FILES
  • --包含从控制文件中获取的数据文件的基本信息,包括它所属的表空间名称、编号等
    • SELECT * FROM V$DATAFILE
  • --包含所有临时数据文件的基本信息
    • SELECT * FROM V$TEMPFILE

2. 查看表空间使用情况

3. 计算表空间使用情况(考虑了数据文件自动增长情况)

 

五、案例3 - 维护表空间


1. 表空间状态有下面几种状态:online、offline、read only、read write

SELECT FILE#, STATUS, ENABLED FROM V$DATAFILE

2. 设置为脱机状态

SQL>ALTER TABLESPACE TBS_DM_DAT OFFLINE IMMEDIATE;

3. 设置为联机状态

SQL> ALTER TABLESPACE TBS_DM_DAT ONLINE;

4. 设置为只读状态

SQL>ALTER TABLESPACE TBS_DM_DAT READY ONLY;

5. 设置为读写状态

SQL>ALTER TABLESPACE TBS_DM_DAT READ WRITE;

6. 修改表空间名称

在ORACLE 10g 之前,表空间的名称是不能被修改的。在ORACLE 11G中,通过ALTER TABLESPACE 语句中使用RENAME子句,数据库管理员可以修改表空间的名称

7. 修改表空间自动增加打开

ALTER DATABASE DATAFILE '/database/oracle/oradata/gsp/tbs_dm_data_002.dbf' AUTOEXTEND ON;

8. 修改表空间自动增加关闭

ALTER DATABASE DATAFILE '/database/oracle/oradata/gsp/tbs_dm_data_002.dbf' AUTOEXTEND OFF;

9. 修改表空间的数据库文件大小

ALTER DATABASE DATAFILE  '/database/oracle/oradata/gsp/tbs_dm_data_002.dbf' resize 1921m;

10 新增表空间的一个数据库文件

 

ALTER TABLESPACE TBS_DM_DAT ADD DATAFILE '/database/oracle/oradata/gsp/tbs_dm_data_003.dbf' size 1921m;

 

六、案例4 - 表空间配额度


表空间不足与用户配额不足是两种不同的概念。表空间的大小是指实际的用户表空间的大小,而配额大小指的是用户指定使用表空间的的大小。两者的解决方式亦不相同

1. 查看用户和表弓箭配额

  • 查看所有用户表空间的配额情况:    SELECT * FROM DBA_TS_QUOTAS       
  • 查看当前用户表空间的配额情况:   SELECT * FROM USER_TS_QUOTAS

 

 Thanks and Regards

参考: http://www.cnblogs.com/kerrycode/p/3418694.html

ERP技术讨论群: 288307890
技术交流,技术讨论,欢迎加入
Technology Blog Created By Oracle ERP - 鲍新建
相关文章
|
Oracle 安全 关系型数据库
|
SQL Oracle 关系型数据库
DBA,SYSDBA,SYSOPER三者的区别
DBA,SYSDBA,SYSOPER三者的区别 真题1、下面哪个选项不是Oracle的用户() A、SYSDBA   B、SYSTEM   C、SCOTT   D、SYS 答案:A。
1828 0
|
SQL Oracle 关系型数据库
|
索引
ORA-01653/01654错误和dba_free_space视图的理解
上周,兄弟部门提出了一个问题, 描述如下, 开发库,对表X他们查询,或者DELETE的时候,经常出这个问题, 好像还与查询或者DELETE的数据量有关,是不是由于没建索引的...
1216 0
|
Oracle 关系型数据库
【比较】Oracle不同版本中关于ALTER TABLESPACE的功能演进
1.分别看一下从9i到11gR2版本中关于“ALTER TABLESPACE”的语法。 1).11g(R1和R2相同)的语法: ALTER TABLESPACE tablespace                  { DEFAULT [ tab...
1076 0