DBA_Tablespace表空间的概念和管控(概念)
一、摘要
我们知道oarcle数据库真正存放数据的是数据文件(data files);
Oarcle表空间(tablespaces)实际上是一个逻辑的概念,他在物理上是并不存在的,那么把一组data files 捻在一起就成为一个表空间;
在ORACLE数据库中,所有数据从逻辑结构上看都是存放在表空间当中,当然表空间下还有段、区、块等逻辑结构;
从物理结构上看是放在数据文件中。一个表空间可由多个数据文件组成;
- 表空间属性
一个数据库可以包含多个表空间,一个表空间只能属于一个数据库
一个表空间包含多个数据文件,一个数据文件只能属于一个表空间
表这空间可以划分成更细的逻辑存储单元
2. 基本的表空间(系统中默认创建的几个表空间:)
SYSTEM: 系统表表空间
SYSAUX: 索引表空间
USERS: 用户表空间
UNDOTBS1: 回滚表空间
EXAMPLE: 工具表空间
TEMP: 临时表空间
- 表空间的分类
永久表空间 存放永久性数据,如表,索引等。
临时表空间 不能存放永久性对象,用于保存数据库排序,分组时产生的临时数据。
UNDO表空间 保存数据修改前的镜象。
4. 表空间的管理
字典管理:全库所有的空间分配都放在数据字典中。容易引起字典争用,而导致性能问题。
本地管理:空间分配不放在数据字典,而在每个数据文件头部的第3到第8个块的位图块,来管理空间分配。
5. 基本操作
1: 创建表空间
2: 表空间管理
3: 维护表空间
4: 表空间配额
二、结构分析
- 表空间和数据文件的关系
- 数据库存储结构
三、案例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 - 表空间管理
- 常用的表查询
–包含数据库中所有表空间的描述信息
SELECT * FROM DBA_TABLESPACES
–包含当前用户的表空间的描叙信息
SELECT * FROM USER_TABLESPACES
–包含从控制文件中获取的表空间名称和编号信息
SELECT * FROM VDATAFILE
–包含所有临时数据文件的基本信息
SELECT * FROM V$TEMPFILE
2. 查看表空间使用情况
- 计算表空间使用情况(考虑了数据文件自动增长情况)
五、案例3 - 维护表空间
- 表空间状态有下面几种状态:online、offline、read only、read write
SELECT FILE#, STATUS, ENABLED FROM V$DATAFILE
- 设置为脱机状态
SQL>ALTER TABLESPACE TBS_DM_DAT OFFLINE IMMEDIATE;
- 设置为联机状态
SQL> ALTER TABLESPACE TBS_DM_DAT ONLINE;
- 设置为只读状态
SQL>ALTER TABLESPACE TBS_DM_DAT READY ONLY;
- 设置为读写状态
SQL>ALTER TABLESPACE TBS_DM_DAT READ WRITE;
- 修改表空间名称
在ORACLE 10g 之前,表空间的名称是不能被修改的。在ORACLE 11G中,通过ALTER TABLESPACE 语句中使用RENAME子句,数据库管理员可以修改表空间的名称
- 修改表空间自动增加打开
ALTER DATABASE DATAFILE ‘/database/oracle/oradata/gsp/tbs_dm_data_002.dbf’ AUTOEXTEND ON;
- 修改表空间自动增加关闭
ALTER DATABASE DATAFILE ‘/database/oracle/oradata/gsp/tbs_dm_data_002.dbf’ AUTOEXTEND OFF;
- 修改表空间的数据库文件大小
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 - 表空间配额度
表空间不足与用户配额不足是两种不同的概念。表空间的大小是指实际的用户表空间的大小,而配额大小指的是用户指定使用表空间的的大小。两者的解决方式亦不相同
- 查看用户和表弓箭配额
查看所有用户表空间的配额情况: SELECT * FROM DBA_TS_QUOTAS
查看当前用户表空间的配额情况: SELECT * FROM USER_TS_QUOTAS