[ORACLE] oracle 存储结构

  1. 表空间和数据文件
  2. 管理表空间
  3. 管理表空间中的空间

表空间和数据文件

  ORACLE的存储模型

    一个表空间可以包括多个段,而且也可以由多个数据文件组成。也就是说,一个段可以分布在多个数据文件中,而任一数据文件可以包含多个段的全部或一部分。任何一个段可以仅存在于一个表空间中,但表空间可以将其均匀分布于构成表空间的所有文件中。

    块:DB_BLOCK_SIZE

    区间:是一个数据文件中一组连续编号的ORACLE块。这些区间可能位于构成表空间的任何或所有数据文件中。可以根据段的维度(区间根据每个段连续编号,从零开始)或数据文件的维度(每个区间在一个文件中,从某个ORACLE块编号开头)确定。

    OS块小于ORACLE块

  段,区间,块和行

    DBA_SEGMENTS

    段的类型:TABLE/INDEX/TYPE2 UNDO/ROLLBACK/TABLE PARTITION/INDEX PARTITION/LOBSEGMENT/LOBINDEX/LOB PARTITION/CLUSTER/NESTED TABLE

        CLUSTER:将多个表反规范化为一个段

        TABLE PARTITION:将表分为多个分区,分区将成为一个个的段,而表本身完全不是段:仅以分区的总和的形式存在。堆表的每个表分区在本身的表段中,成为堆表结构。这些段可能使用不同的表空间,这意味着可以将一个表分布到多个表空间中。

select tablespace_name,file_id,extent_id,block_id,blocks,bytes from dba_extents where owner='SAPR3' and segment_name="T"

alter table TT allocate extent;
alter table TT allocate extent storage (datafile 'filenmae';

select tablespace_name,file_name from dba_data_files where file_id=4;

#DBA_TABLES 也可以查表空间,但只适用于非分区的表,不适用于每个分区都有自己的段而且可能位于不同表空间的分区表。分区允许将一个表分布到多个表空间中。

  文件存储技术

    本地文件系统

    群集文件系统 OCFS (Oracle cluster file system)

    原始设备

    ASM: 只存储数据库文件,不能存储二进制文件。始终将ORACLE主目录保存在常规文件系统中。

select name,block_size*file_size_blks bytes from v$controlfile;
select member,bytes from v$log join v$logfile using (group#);

select name,bytes from v$datafile
union all 
select name,bytes from v$tempfile;

管理表空间

  创建表空间

    Allocated Size / Space Used / Allocated space used / Allocated free space / status / datafiles / type / extend management / segment management

    Status:Read and Write / Read only / offline

    type : 永久表空间/临时表空间/UNDO

    extent management :LOCAL

    segment management : AUTO 

    Compression: Disabled  / enabled on direct-path INSERT operation only / Enable on all operations

    logging:YEs/ NO

猜你喜欢

转载自www.cnblogs.com/tingxin/p/12541190.html