248
上面查询,说明SYS的schema,所占用空间585.5MB,包括74944个数据块和3248个分区。
一个对象创建出来之后,在segment层次上是分配一个分区extent和八个数据块block。
有一个问题需要注意,通常我们的数据段是与数据对象相关。一个数据对象对应一个segment。但是,分区表的时候,一个分区要对应一个segment对象。还有就是,segment对象是可以指定存储在那个表空间里,实现存储划分的基础也就在于此。不同类型的segment划分建立在不同的表空间里,才有可能存放在不同的文件中,最后分布在不同的物理存储。
分区实际上就是存在分开存储的可能。一般一个对象是不会跨物理存储进行存放的,分区表是对应的多个segment。所以,分区表分开存储空间是可能的。
表空间tablespace
TableSpace是存储结构中的最高层结构。建立一个表空间的时候,是需要指定存储的文件。一个表空间可以指定多个数据文件,多个文件可以在不同的物理存储上。也就是说,表空间是可以跨物理存储的。但是有一点就是,表空间下一级对象数据段的存储,是不能指定存储在那个文件里的。所以,要想让数据对象访问IO负载均衡,需要指定不同的数据对象在不同的表空间里。这也就是为什么将数据表和索引建立在不同的表空间的原因。
表空间通过v$tablespace进行访问。
SQL> desc v$tablespace;
相对于前面的结构视图,表空间视图的结构要简单的多,只是一些描述信息。其中两个参数需要注意一下。
一个是bigfile,是一个标志位,标志表空间是不是所谓的大文件表空间。大文件表空间是在10g中推出的一个新特性,处于性能考虑,可以设置表空间为大文件表空间,存储超过百T的数据,但是要求数据文件只能有一个。另一个是flashback_on,表示表空间的闪回特性是否开启。
要注意,数据表段区块的概念集合,很容易与schema的结构相混淆。schema是一个组织概念,是来自于经典数据库理论范畴。在oracle中,Schema就是一个组织概念,一个user对应的就是一个schema。schema是逻辑对象的集合组织,同表空间等概念不是一个层面的。
在一个schema里,是可以将对象建立在任何数据表空间内的,只有一个默认表空间的概念default tablespace。指定默认表空间是在创建用户的时候指定的。
分清几个核心概念和各自的区别关系,就能更好的理解Oracle运行的各种机制。
----------------------------------------------------------------------------------
应用场景68:在Enterprise Manager中查看表空间信息
应用场景69:使用V$TABLESPACE视图查看表空间信息
SELECT * FROM V$TABLESPACE;
应用场景70:查看表空间属性信息
SELECT * FROM DBA_TABLESPACES;
应用场景71:查看表空间及其所属表空间的信息
SELECT * FROM DBA_TABLESPACE_GROUPS;
应用场景72:查看表空间中所包含的段信息
SELECT SEGMENT_NAME,SEGMENT_TYPE,TABLESPACE_NAME FROM DBA_SEGMENTS;
应用场景73:查看表空间中空闲区间的信息
SELECT TABLESPACE_NAME,BYTES,BLOCKS FROM DBA_FREE_SPACE;
应用场景74:在Enterprise Manager中创建表空间
应用场景75:使用CREATE TABLESPACE语句创建表空间
创建本地管理表空间
CREATE TABLESPACE OrclTBS01
DATAFILE 'D:\app\Administrator\oradata\orcl\OrclTBS01.dbf' SIZE 50M
EXTENT MANAGEMENT LOCAL AUTOALLOCATE;
大文件表空间:
CREATE TABLESPACE OrclTBS02
DATAFILE 'D:\app\Administrator\oradata\orcl\OrclTBS02.dbf' SIZE 30M
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 128K;
CREATE BIGFILE TABLESPACE bigtbs
DATAFILE 'D:\app\Administrator\oradata\orcl\bigtbs.dbf' SIZE 10G;
临时表空间:
CREATE TEMPORARY TABLESPACE tmptbs
TEMPFILE 'D:\app\Administrator\oradata\orcl\tmptbs.dbf'
SIZE 20M REUSE
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 16M;
应用场景76:表空间中的段管理
创建自动段管理方式的表空间;
CREATE TABLESPACE OrclTBS01
DATAFILE 'F:\app\Administrator\oradata\orcl\OrclTBS01.dbf' SIZE 30M
EXTENT MANAGEMENT LOCAL AUTOALLOCATE
SEGMENT SPACE MANAGEMENT AUTO;
创建手段管理的表空间:
CREATE TABLESPACE OrclTBS02
DATAFILE 'F:\app\Administrator\oradata\orcl\OrclTBS02.dbf' SIZE 30M
EXTENT MANAGEMENT LOCAL AUTOALLOCATE
SEGMENT SPACE MANAGEMENT MANUAL;
应用场景77:表空间的数据块管理:
创建表空间时,指定表空间使用的数据块大小8KB
CREATE TABLESPACE OrclTBS01
DATAFILE 'D:\app\Administrator\oradata\orcl\OrclTBS01.dbf' SIZE 30M
EXTENT MANAGEMENT LOCAL AUTOALLOCATE
BLOCKSIZE 8K;
应用场景78:创建撤销表空间
功能:
当执行ROOLBACK命令是,完成回归操作。
恢复数据库
使用闪回查询分析以前时间点的数据。
使用闪回技术从逻辑破坏中恢复数据。
CREATE UNDO TABLESPACE undotbs01
DATAFILE 'D:\app\Administrator\oradata\orcl\undotbs02.dbf' SIZE 2M REUSE;
应用场景79:在Enterprise Manager中修改表空间属性。
应用场景80:使用ALTER TABLESPACE语句重命名表空间
ALTER TABLESPACE OrclTBS02 RENAME TO OrclTBS03;
SELECT * FROM V$TABLESPACE;
应用场景81:向本地管理表空间中增加数据文件
ALTER TABLESPACE OrclTBS01
ADD DATAFILE 'D:\app\Administrator\oradata\orcl\OrclTBS11.dbf' SIZE 10M;
应用场