Oracle的体系结构和启动关闭专题研究
上一篇 / 下一篇 2014-07-17 17:09:40 / 个人分类:甲骨文
Oracle的体系结构数据库的体系结构是从某一角度来分析数据库的组成和工作过程,以及数据库如何管理和组织数据,因此,这部分内容对全面深入地掌握Oracle数据库系统是至关重要的,对于初学者而言,体系结构与基本理论的学习会涉及到大量新的概念和术语,掌握这些概念和术语后对于以后的学习会如虎添翼。
D7u+S&h:dibz0知识要点: }Oracle实例与数据库 }Oracle数据库的物理存储结构 }Oracle数据库的逻辑存储结构 }逻辑存储结构与物理结构的关系 }Oracle实例的内存结构 }Oracle实例的进程结构 }了解主要后台进程的作用 }理解Oracle数据库中数据字典的作用51Testing软件测试网YS ugF*I,[Rl[
oracle体系结构概述
tK&bQq o$G&]3P1@0完整的Oracle数据库系统通常由两个部分组成:实例(instance)和数据库(database)。数据库是由一系列物理文件的集合(数据文件,控制文件,联机日志,参数文件等);实例则是由一组Oracle后台进程/线程以及在服务器分配的共享内存区。
q1I6n)XYJ3w:p JH0Oracle体系结构:51Testing软件测试网{6hd+Qj!F
51Testing软件测试网W6Cp{Q*C_
instance --进程(用户进程、服务进程、后台进程)、内存51Testing软件测试网5h#U0s` D J$myz
$R^SFf AG0 database -- datafile、controlfile、redolog、parameterfile51Testing软件测试网N1~4H8Do[
_V@ Fh |m+hB0
'?6`9ydS \c n051Testing软件测试网 CRf+J8RAV`
DATABASE51Testing软件测试网ke1dc9MdXY H
查看datafile文件:
3H8MS v,u%x%Fs[0 select name from v$datafile;51Testing软件测试网pp `z'^4^Y5]
查看控制文件:
:K7C `@G/@ BM9M!\0 select * from v$controlfile;51Testing软件测试网2q8r(xim!U)wl
查看联机日志文件:
[0AQf$k0e/z0 select * from v$logfile;51Testing软件测试网%J i9GQKeL
51Testing软件测试网9L1cw6ZA2]XJ
一个数据库的database,必须具备:1个controlfile、2个datafile(system.dbf、sysaux.dbg)、2个redolog51Testing软件测试网O^l'f2S9o;R_ A F
:i Z o+GL0
_'~@3o)r K0ARCHIVE 模式
c*d[lV0Oracle归档模式与非归档模式设置:
EX} d_s B0Oracle的日志归档模式可以有效的防止instance和disk的故障,在数据库故障恢复中不可或缺,由于oracle初始安装模式为非归档模式,因此需要将其设置为归档模式,下面就其方法和步骤做一些总结。?51Testing软件测试网s;ZQg!YI+V:RJ{
例子是建立在windowsXP和oracle11g的环境下,如有环境不同,仅供参考。51Testing软件测试网N#CG#}6hH
Oracle非归档模式设置为归档模式方法步骤:51Testing软件测试网wkUkj"U%U
1,? 运行cmd命令,开启sql*plus51Testing软件测试网&Y7Sd'EL,@2~
C:\Documents and Settings\Administrator>sqlplus/nolog
1oz5O$G'_z2e-F02,? 以sysdba身份连接数据库
](V1c{*sy4Ip0SQL> CONNECT / AS SYSDBA51Testing软件测试网psA'UOI:c
3,? 若数据库是打开的,首先关闭卸载数据库。
A]%F8n e0SQL> SHUTDOWN
$[ w!iZ9Z^'m04,? 以mount模式打开数据库。51Testing软件测试网u,_{;f|6`N&B
SQL> STARTUP MOUNT
0D I#_#w t(L)\F05,? 查询当前归档模式
FK7ST'|"i&N,?0SQL> ARCHIVE LOG LIST51Testing软件测试网3@/iB3bZ \ H*@
数据库日志模式 非存档模式
&[?z/E#w3N H]0自动存档 禁用
GP&j^ R8gA7k5Lx$^0存档终点 USE_DB_RECOVERY_FILE_DEST51Testing软件测试网.am2GjSfl
最早的联机日志序列 1
h7H].J,dN;eC0当前日志序列 151Testing软件测试网 v(fk)T Ym0o
6,? 更改归档模式为ARCHIVELOG
4S0^s5}SV6n0SQL> ALTER DATABASE ARCHIVELOG;51Testing软件测试网_[*sl5Z/m
7,? 重新查询归档模式
` S1g&s n0SQL> ARCHIVE LOG LIST
-q"u"Rrb;W0数据库日志模式 存档模式
fR"Ya3fn0自动存档 启用
7Sr}t\D0存档终点 USE_DB_RECOVERY_FILE_DEST51Testing软件测试网P8yer:wq W AP
最早的联机日志序列 1
7`1M fF:qo0下一个存档日志序列 1
/G-FG&mBIh]+eV0当前日志序列 151Testing软件测试网d7^0^!d-M IN,[7P
8,? 打开数据库
T+B'B*Z:hqH'bJ3A7@.g0SQL> ALTER DATABASE OPEN;
h*v)v%q$i8a7Z3i~a0数据库归档模式设置已经完成,查询其归档模式除了ARCHIVE LOG LIST方法外,也可以通过v$database来查询,语法如下:
4vnR{{g7o9W~Q0 SQL> select log_mode from v$database;51Testing软件测试网rekt`7Xl\
?
6bFr$z+PZ,B0LOG_MODE51Testing软件测试网:J jt \X
------------51Testing软件测试网CwQM IEs5i
ARCHIVELOG51Testing软件测试网zg*T(mo.kd9bH
?51Testing软件测试网C\t*G[/C l)]8L
?
P;S^{Vzg)Xa0如果因特殊需要,需要重新设置数据库为非归档模式,可以参照如下方法。
~ Ej!\@ V:q0Oracle归档模式设置为非归档模式方法步骤:51Testing软件测试网 sFMM8IJ2}$g8u
1,运行cmd命令,开启sql*plus51Testing软件测试网;h0f#QhY-}4N
C:\Documents and Settings\Administrator>sqlplus/nolog51Testing软件测试网M4ol(U.\+sH5fq"s2E
2以sysdba身份连接数据库51Testing软件测试网dr1R0Fb(L.D
SQL> CONNECT / AS SYSDBA51Testing软件测试网7tZ QMx8AIS
3,? 若数据库是打开的,首先关闭卸载数据库。
x'qc?cPq0SQL> SHUTDOWN51Testing软件测试网Lx.K+tl*o^K-_ o.?
4,? 以mount模式打开数据库。51Testing软件测试网}gNIgd'To
SQL> STARTUP MOUNT51Testing软件测试网,QHfP"XT-t
5,? 查询当前归档模式
2F2nMo3a0SQL> ARCHIVE LOG LIST
N"h\!QZ0数据库日志模式 存档模式
}9u3U!YdRnl(R [0自动存档 启用51Testing软件测试网YQT3m.Jef$fu
存档终点 USE_DB_RECOVERY_FILE_DEST51Testing软件测试网`(I;sz9n2P
最早的联机日志序列 1
%_.aN B,x%`0下一个存档日志序列 151Testing软件测试网4? s,_&Sx;j
当前日志序列 1
&cc'q)rC+]06,? 更改归档模式为ARCHIVELOG
`:_QeV^hMMYn0SQL> ALTER DATABASE NOARCHIVELOG;
0fpH dZ8Z07,? 重新查询归档模式
4]$_VZ*`1`0SQL> ARCHIVE LOG LIST
T#sC hL8K?5X`'t{0数据库日志模式 非存档模式
qM\S'jG0_0自动存档 禁用
3jVArE!y0存档终点 USE_DB_RECOVERY_FILE_DEST
Hb)]-UA#c`(j0最早的联机日志序列 1
ztkO.Ge |8uy0当前日志序列 151Testing软件测试网\I;S%j4y X@
8,? 打开数据库
[Uq}$`4q0SQL> ALTER DATABASE OPEN;
4t%i q(Y8N5p4U0也可以通过v$database来查询,语法如下:
Mm$xQ G'R0SQL> select log_mode from v$database;
S|VM0H1`9Xy0?
d(y,L(aY'w2f UNV/p0LOG_MODE51Testing软件测试网EOX QF;^2`h_)B
------------
I:Pl(b&_ y!~3q0NOARCHIVELOG
D+@eCo oC n0
2u-]"F5GGg(R0
"o*u@p~m }`y0逻辑存储结构
\I,os5e9o0k a:j1k'EV0逻辑存储结构是Oracle数据库存储结构的核心内容,对Oracle数据库的所有操作都会涉及到其逻辑存储结构。数据库的逻辑结构是从逻辑的角度分析数据库的构成,即创建数据库后形成的逻辑概念之间的关系。在逻辑上,Oracle将保存的数据划分为一个个小单元来进行存储和维护,高一级的存储单元由一个或多个低一级的存储单元组成。51Testing软件测试网p*G5~U*h&m9@F3`
Oracle的表空间由若干的数据文件(OS级)所组成。一个表空间最多可以有1024个数据文件组成。
et }:hdJ.K0数据库 ? 表空间 ? 段(主要包括:回滚段、临时段、索引段、数据段) ? 盘区 ? 块(BLOCK)
2wVBm:nem0块,是数据库测最小存储单位。51Testing软件测试网x2N;`9Q]@V ?
数据文件的大小受块大小的限制。
-}7n??@4}0数据块
)g$~.RNvly0数据块是Oracle用来管理存储空间的最小单元,也是执行数据库输入输出操作时的最小单位。相对应地,操作系统执行输入输出操作的最小单位为一个操作系统块的大小。在操作系统中,执行I/O操作是以操作系统块为单位,而在Oracle中,执行的I/O操作以Oracle数据块为单位
O}"h$Z|cQ)D J0数据块大小(单位:K) BFT 最大值(单位:T) 2k????????????????????? 8T 4k????????????????????? 16T 8k????????????????????? 32T 16k???????????????????? 64T 32k???????????????????? 128TSQL> show parameter cache_size51Testing软件测试网EW|Gsic&S{
51Testing软件测试网3z&lF h$K|(S wu)@v
NAME TYPE VALUE51Testing软件测试网 u~*p7nKse
------------------------------------ ----------- -----------
/A E/[.dcv@0client_result_cache_size big integer 0
\:m6s7z.?$^\Q!s"X/v0db_16k_cache_size big integer 0
,CV]dw8c0db_2k_cache_size big integer 0
Dh,A:g y1Os G0db_32k_cache_size big integer 051Testing软件测试网*caO8bo2Cg
db_4k_cache_size big integer 0
N HHs)Ut9Z$I-C0db_8k_cache_size big integer 0
.]J_2LZ!or!L bg0db_cache_size big integer 0
%`n ?&@z?3@0db_keep_cache_size big integer 0
V1P Vj2~)qCV*FY1m0db_recycle_cache_size big integer 051Testing软件测试网+Yq+WqH(qd
SQL>51Testing软件测试网/J M0a+t*SZ4@
P6k'|5w5Q/Nc0一般数据库使用的块的大小是8K,Oracle中block的大小在创建数据库的时候的DB_BLOCK_SIZE确定,一旦确定,不能改变。51Testing软件测试网 m0IA f%l)x[2A;w'm
51Testing软件测试网e7r$@ZN/E
数据块的格式
;aKI8R?Ez0 块中存放表的数据和索引的数据,无论存放哪种类型的数据,块的格式都是相同的。51Testing软件测试网+|jk}uGH,l.}l
块的组成:
(x;q ov-s*^ Y0 块头(header/Common and Variable)
xA4_}zz0 表目录(Table Directory)
RNr%S8Y[V0 行目录(Row Directory)51Testing软件测试网,ucq8} J
自由空间(Free Space)51Testing软件测试网V\ n0R/_ La
行数据(Row Data)51Testing软件测试网dul._6oD
]*A|?,^0块头(header/Common and Variable):存放块的基本信息,如:块的物理地址,块所属的段的类型(是数据段还是索引段)。
6W#bG`9}A i0表目录(Table Directory):存放表的信息,即:如果一些表的数据被存放在这个块中,那么,这些表的相关信息将被存放在“表目录”中。51Testing软件测试网3Dx+Me kS
行目录(Row Directory):如果块中有行数据存在,则,这些行的信息将被记录在行目录中。这些信息包括行的地址等。51Testing软件测试网$[8u7k,l,zHQ
行数据(Row Data):是真正存放表数据和索引数据的地方。这部分空间是已被数据行占用的空间。51Testing软件测试网TT9@7I'M
空余空间(Free Space):空余空间是一个块中未使用的区域,这片区域用于新行的插入和已经存在的行的更新。
'Ht#\#y6iLsN0头部信息区(Overhead):我们把块头(header/Common and Variable),表目录(Table Directory),行目录(Row Directory)这三部分合称为头部信息区(Overhead)。头部信息区不存放数据,它存放的整个块的信息。头部信息区的大小是可变的。一般来说,头部信息区的大小介于84字节(bytes)到107字节(bytes)之间。
Udc]5\Y Q}0
%rz*N&YZm:zm_0盘区51Testing软件测试网lI[y)q/E
盘区是由一系列物理上连续存放的数据块所构成的Oracle存储结构,由一个或多个数据块组成一个盘区,而一个或多个盘区组成一个段。当一个段中的所有空间被使用完后,系统将自动为该段分配一个新的盘区。盘区是Oracle存储分配的最小单位。51Testing软件测试网*K7I;@ c,NNc"o
盘区(Extent)Extent:连续的块组成extent。
+J!ByMea0段:段是由一系列区组成的,它也不再是存储空间的分配单位,而是一个独立的逻辑存储结构。对于具有独立存储结构的对象,它的数据全部存储在保存它的段中。一个段只属于一个特定的数据库对象,每当创建一个具有独立段的数据库对象时,Oracle将为它创建一个段。51Testing软件测试网nE tk k)z)F Q
段(Segment)
D7u+S&h:dibz0知识要点: }Oracle实例与数据库 }Oracle数据库的物理存储结构 }Oracle数据库的逻辑存储结构 }逻辑存储结构与物理结构的关系 }Oracle实例的内存结构 }Oracle实例的进程结构 }了解主要后台进程的作用 }理解Oracle数据库中数据字典的作用51Testing软件测试网YS ugF*I,[Rl[
oracle体系结构概述
tK&bQq o$G&]3P1@0完整的Oracle数据库系统通常由两个部分组成:实例(instance)和数据库(database)。数据库是由一系列物理文件的集合(数据文件,控制文件,联机日志,参数文件等);实例则是由一组Oracle后台进程/线程以及在服务器分配的共享内存区。
q1I6n)XYJ3w:p JH0Oracle体系结构:51Testing软件测试网{6hd+Qj!F
51Testing软件测试网W6Cp{Q*C_
instance --进程(用户进程、服务进程、后台进程)、内存51Testing软件测试网5h#U0s` D J$myz
$R^SFf AG0 database -- datafile、controlfile、redolog、parameterfile51Testing软件测试网N1~4H8Do[
_V@ Fh |m+hB0
'?6`9ydS \c n051Testing软件测试网 CRf+J8RAV`
DATABASE51Testing软件测试网ke1dc9MdXY H
查看datafile文件:
3H8MS v,u%x%Fs[0 select name from v$datafile;51Testing软件测试网pp `z'^4^Y5]
查看控制文件:
:K7C `@G/@ BM9M!\0 select * from v$controlfile;51Testing软件测试网2q8r(xim!U)wl
查看联机日志文件:
[0AQf$k0e/z0 select * from v$logfile;51Testing软件测试网%J i9GQKeL
51Testing软件测试网9L1cw6ZA2]XJ
一个数据库的database,必须具备:1个controlfile、2个datafile(system.dbf、sysaux.dbg)、2个redolog51Testing软件测试网O^l'f2S9o;R_ A F
:i Z o+GL0
_'~@3o)r K0ARCHIVE 模式
c*d[lV0Oracle归档模式与非归档模式设置:
EX} d_s B0Oracle的日志归档模式可以有效的防止instance和disk的故障,在数据库故障恢复中不可或缺,由于oracle初始安装模式为非归档模式,因此需要将其设置为归档模式,下面就其方法和步骤做一些总结。?51Testing软件测试网s;ZQg!YI+V:RJ{
例子是建立在windowsXP和oracle11g的环境下,如有环境不同,仅供参考。51Testing软件测试网N#CG#}6hH
Oracle非归档模式设置为归档模式方法步骤:51Testing软件测试网wkUkj"U%U
1,? 运行cmd命令,开启sql*plus51Testing软件测试网&Y7Sd'EL,@2~
C:\Documents and Settings\Administrator>sqlplus/nolog
1oz5O$G'_z2e-F02,? 以sysdba身份连接数据库
](V1c{*sy4Ip0SQL> CONNECT / AS SYSDBA51Testing软件测试网psA'UOI:c
3,? 若数据库是打开的,首先关闭卸载数据库。
A]%F8n e0SQL> SHUTDOWN
$[ w!iZ9Z^'m04,? 以mount模式打开数据库。51Testing软件测试网u,_{;f|6`N&B
SQL> STARTUP MOUNT
0D I#_#w t(L)\F05,? 查询当前归档模式
FK7ST'|"i&N,?0SQL> ARCHIVE LOG LIST51Testing软件测试网3@/iB3bZ \ H*@
数据库日志模式 非存档模式
&[?z/E#w3N H]0自动存档 禁用
GP&j^ R8gA7k5Lx$^0存档终点 USE_DB_RECOVERY_FILE_DEST51Testing软件测试网.am2GjSfl
最早的联机日志序列 1
h7H].J,dN;eC0当前日志序列 151Testing软件测试网 v(fk)T Ym0o
6,? 更改归档模式为ARCHIVELOG
4S0^s5}SV6n0SQL> ALTER DATABASE ARCHIVELOG;51Testing软件测试网_[*sl5Z/m
7,? 重新查询归档模式
` S1g&s n0SQL> ARCHIVE LOG LIST
-q"u"Rrb;W0数据库日志模式 存档模式
fR"Ya3fn0自动存档 启用
7Sr}t\D0存档终点 USE_DB_RECOVERY_FILE_DEST51Testing软件测试网P8yer:wq W AP
最早的联机日志序列 1
7`1M fF:qo0下一个存档日志序列 1
/G-FG&mBIh]+eV0当前日志序列 151Testing软件测试网d7^0^!d-M IN,[7P
8,? 打开数据库
T+B'B*Z:hqH'bJ3A7@.g0SQL> ALTER DATABASE OPEN;
h*v)v%q$i8a7Z3i~a0数据库归档模式设置已经完成,查询其归档模式除了ARCHIVE LOG LIST方法外,也可以通过v$database来查询,语法如下:
4vnR{{g7o9W~Q0 SQL> select log_mode from v$database;51Testing软件测试网rekt`7Xl\
?
6bFr$z+PZ,B0LOG_MODE51Testing软件测试网:J jt \X
------------51Testing软件测试网CwQM IEs5i
ARCHIVELOG51Testing软件测试网zg*T(mo.kd9bH
?51Testing软件测试网C\t*G[/C l)]8L
?
P;S^{Vzg)Xa0如果因特殊需要,需要重新设置数据库为非归档模式,可以参照如下方法。
~ Ej!\@ V:q0Oracle归档模式设置为非归档模式方法步骤:51Testing软件测试网 sFMM8IJ2}$g8u
1,运行cmd命令,开启sql*plus51Testing软件测试网;h0f#QhY-}4N
C:\Documents and Settings\Administrator>sqlplus/nolog51Testing软件测试网M4ol(U.\+sH5fq"s2E
2以sysdba身份连接数据库51Testing软件测试网dr1R0Fb(L.D
SQL> CONNECT / AS SYSDBA51Testing软件测试网7tZ QMx8AIS
3,? 若数据库是打开的,首先关闭卸载数据库。
x'qc?cPq0SQL> SHUTDOWN51Testing软件测试网Lx.K+tl*o^K-_ o.?
4,? 以mount模式打开数据库。51Testing软件测试网}gNIgd'To
SQL> STARTUP MOUNT51Testing软件测试网,QHfP"XT-t
5,? 查询当前归档模式
2F2nMo3a0SQL> ARCHIVE LOG LIST
N"h\!QZ0数据库日志模式 存档模式
}9u3U!YdRnl(R [0自动存档 启用51Testing软件测试网YQT3m.Jef$fu
存档终点 USE_DB_RECOVERY_FILE_DEST51Testing软件测试网`(I;sz9n2P
最早的联机日志序列 1
%_.aN B,x%`0下一个存档日志序列 151Testing软件测试网4? s,_&Sx;j
当前日志序列 1
&cc'q)rC+]06,? 更改归档模式为ARCHIVELOG
`:_QeV^hMMYn0SQL> ALTER DATABASE NOARCHIVELOG;
0fpH dZ8Z07,? 重新查询归档模式
4]$_VZ*`1`0SQL> ARCHIVE LOG LIST
T#sC hL8K?5X`'t{0数据库日志模式 非存档模式
qM\S'jG0_0自动存档 禁用
3jVArE!y0存档终点 USE_DB_RECOVERY_FILE_DEST
Hb)]-UA#c`(j0最早的联机日志序列 1
ztkO.Ge |8uy0当前日志序列 151Testing软件测试网\I;S%j4y X@
8,? 打开数据库
[Uq}$`4q0SQL> ALTER DATABASE OPEN;
4t%i q(Y8N5p4U0也可以通过v$database来查询,语法如下:
Mm$xQ G'R0SQL> select log_mode from v$database;
S|VM0H1`9Xy0?
d(y,L(aY'w2f UNV/p0LOG_MODE51Testing软件测试网EOX QF;^2`h_)B
------------
I:Pl(b&_ y!~3q0NOARCHIVELOG
D+@eCo oC n0
2u-]"F5GGg(R0
"o*u@p~m }`y0逻辑存储结构
\I,os5e9o0k a:j1k'EV0逻辑存储结构是Oracle数据库存储结构的核心内容,对Oracle数据库的所有操作都会涉及到其逻辑存储结构。数据库的逻辑结构是从逻辑的角度分析数据库的构成,即创建数据库后形成的逻辑概念之间的关系。在逻辑上,Oracle将保存的数据划分为一个个小单元来进行存储和维护,高一级的存储单元由一个或多个低一级的存储单元组成。51Testing软件测试网p*G5~U*h&m9@F3`
Oracle的表空间由若干的数据文件(OS级)所组成。一个表空间最多可以有1024个数据文件组成。
et }:hdJ.K0数据库 ? 表空间 ? 段(主要包括:回滚段、临时段、索引段、数据段) ? 盘区 ? 块(BLOCK)
2wVBm:nem0块,是数据库测最小存储单位。51Testing软件测试网x2N;`9Q]@V ?
数据文件的大小受块大小的限制。
-}7n??@4}0数据块
)g$~.RNvly0数据块是Oracle用来管理存储空间的最小单元,也是执行数据库输入输出操作时的最小单位。相对应地,操作系统执行输入输出操作的最小单位为一个操作系统块的大小。在操作系统中,执行I/O操作是以操作系统块为单位,而在Oracle中,执行的I/O操作以Oracle数据块为单位
O}"h$Z|cQ)D J0数据块大小(单位:K) BFT 最大值(单位:T) 2k????????????????????? 8T 4k????????????????????? 16T 8k????????????????????? 32T 16k???????????????????? 64T 32k???????????????????? 128TSQL> show parameter cache_size51Testing软件测试网EW|Gsic&S{
51Testing软件测试网3z&lF h$K|(S wu)@v
NAME TYPE VALUE51Testing软件测试网 u~*p7nKse
------------------------------------ ----------- -----------
/A E/[.dcv@0client_result_cache_size big integer 0
\:m6s7z.?$^\Q!s"X/v0db_16k_cache_size big integer 0
,CV]dw8c0db_2k_cache_size big integer 0
Dh,A:g y1Os G0db_32k_cache_size big integer 051Testing软件测试网*caO8bo2Cg
db_4k_cache_size big integer 0
N HHs)Ut9Z$I-C0db_8k_cache_size big integer 0
.]J_2LZ!or!L bg0db_cache_size big integer 0
%`n ?&@z?3@0db_keep_cache_size big integer 0
V1P Vj2~)qCV*FY1m0db_recycle_cache_size big integer 051Testing软件测试网+Yq+WqH(qd
SQL>51Testing软件测试网/J M0a+t*SZ4@
P6k'|5w5Q/Nc0一般数据库使用的块的大小是8K,Oracle中block的大小在创建数据库的时候的DB_BLOCK_SIZE确定,一旦确定,不能改变。51Testing软件测试网 m0IA f%l)x[2A;w'm
51Testing软件测试网e7r$@ZN/E
数据块的格式
;aKI8R?Ez0 块中存放表的数据和索引的数据,无论存放哪种类型的数据,块的格式都是相同的。51Testing软件测试网+|jk}uGH,l.}l
块的组成:
(x;q ov-s*^ Y0 块头(header/Common and Variable)
xA4_}zz0 表目录(Table Directory)
RNr%S8Y[V0 行目录(Row Directory)51Testing软件测试网,ucq8} J
自由空间(Free Space)51Testing软件测试网V\ n0R/_ La
行数据(Row Data)51Testing软件测试网dul._6oD
]*A|?,^0块头(header/Common and Variable):存放块的基本信息,如:块的物理地址,块所属的段的类型(是数据段还是索引段)。
6W#bG`9}A i0表目录(Table Directory):存放表的信息,即:如果一些表的数据被存放在这个块中,那么,这些表的相关信息将被存放在“表目录”中。51Testing软件测试网3Dx+Me kS
行目录(Row Directory):如果块中有行数据存在,则,这些行的信息将被记录在行目录中。这些信息包括行的地址等。51Testing软件测试网$[8u7k,l,zHQ
行数据(Row Data):是真正存放表数据和索引数据的地方。这部分空间是已被数据行占用的空间。51Testing软件测试网TT9@7I'M
空余空间(Free Space):空余空间是一个块中未使用的区域,这片区域用于新行的插入和已经存在的行的更新。
'Ht#\#y6iLsN0头部信息区(Overhead):我们把块头(header/Common and Variable),表目录(Table Directory),行目录(Row Directory)这三部分合称为头部信息区(Overhead)。头部信息区不存放数据,它存放的整个块的信息。头部信息区的大小是可变的。一般来说,头部信息区的大小介于84字节(bytes)到107字节(bytes)之间。
Udc]5\Y Q}0
%rz*N&YZm:zm_0盘区51Testing软件测试网lI[y)q/E
盘区是由一系列物理上连续存放的数据块所构成的Oracle存储结构,由一个或多个数据块组成一个盘区,而一个或多个盘区组成一个段。当一个段中的所有空间被使用完后,系统将自动为该段分配一个新的盘区。盘区是Oracle存储分配的最小单位。51Testing软件测试网*K7I;@ c,NNc"o
盘区(Extent)Extent:连续的块组成extent。
+J!ByMea0段:段是由一系列区组成的,它也不再是存储空间的分配单位,而是一个独立的逻辑存储结构。对于具有独立存储结构的对象,它的数据全部存储在保存它的段中。一个段只属于一个特定的数据库对象,每当创建一个具有独立段的数据库对象时,Oracle将为它创建一个段。51Testing软件测试网nE tk k)z)F Q
段(Segment)