全部博文(389)
分类: Oracle
2010-11-05 01:29:23
从逻辑上来看ORACLE的存储分为四个部分,DATABLOCK,EXTENTS,SEGMENT,TABLESPACE组成
oracle datablock是ORACLE存储数据的IO的最小单元,由一个或多个物理块组成,
只能在创建DB时,有DB_BLOCK_SIZE定义,一旦定义了以后,就不可能修改,只能是重建DB来解决.
从上到下,DATABLOCK分别由COMMON HEADER,TABLE DIRECTORY,ROW DIRECTORY,FREE SPACE,DATA.五部分组成,前三部份统称为BLOCK OVERHEAD,根据情况的不同占有84到107个字节. TABLE DIRECTORY包含了在一个DATABLOCK中存放的表信息, ROW DIRECTORY包含了在一个DATABLOCK中存放的ROW信息,COMMON HEAER存放了BLOCK ADDRESS,BLOCK TYPE,SCN等一些基本信息,
DATABLOCK的FREE SPACE管理,根据定义有FREE LIST和BITMAP两种管理方式,要理解在FREE LIST管理方式中的PCTFREE,PCTUSED两个参数的含义.ROW CHAINING和MIGRATING,
由一个或多个连续的DATABLOCK组成的一个单元称为EXTENTS,分配空间的最少单位,当ORACLE为对像分配空间时,都是以EXTENTS为单位本配.EXTENTS中只能存在一个DATAFILE文件中.
当第一个创建SEGMENT时,开始分配由STORAGE参数定义的INITIAL大小,EXTENTS分配空间有UNFIROM和AUTOALLOCATE. UNIFORM的DEFAULT为1M,最少得为五个DATABLOCK的大小, AUTOALLOCATE最小得为64K
由一个或多个EXTENT组成的逻辑单元称为SEGMENT,为每个对像分配的存储单元.一个SEGMENT可以跨多个DATAFILE存在.
SEGMENT,有四种类型DATA,INDEX,UNDO,TEMPORARY.. TEMPORARY.SEGMENT主要用来存放在排序时存放的中间数据.EXTENTS的方式只能使用UNIFORM.
UNDO SEGMNET的作用:ROLLBACK事务,读一致性,恢复一个不正常的事务,或是恢复一个不正常的数据.ORACLE的UNDO管理方式由UNDO_MANAGEMTN定义.UNDO_RETENTAON定义了UNDO存放多久.通过V$UNDOSTAT查看种各种UNDO的信息.