Oracle数据库: 在硬盘上实际存在的数据的文件,这些文件组织在一起,称为一个逻辑整体 ,称为Oracle数据库。
Oracle实例: SGA+ 后台进程
Oracle实例 + Oracle数据库 = 才能对外提供服务
SGA = System Global Area 实例启动的时候(nomount 状态) 在内存中分配的一块共享空间,被所有进程共享
分配SGA后, Oracle启动一组后台进程(PMON ,SMON, DBWR, LGWR, CKPT 等) ,实例生成了
Oracle软件在实例启动后,会mount 将启动的实例与某个数据库相关联 ,这个过程叫做mount
最后成功mount到某数据库后,就可以open 数据库包含的物理文件了 ,这个过程叫做open 数据库
open后的数据库,用户才能在其中读写数据了
-------
单实例 : 一个实例对应一个数据库
RAC (real application cluster ): 一个数据库被多个实例关联, mount, open . 这就是RAC数据库
-------
Oracle文件系统 :
关键文件 : datafile , online redo log , controlfile
非关键文件 : parameter file , password file , archived redo log file , alert file , trace file , backup file .
关键文文件丢失,需要介质恢复 ( Media Recovery ) ,
--------
SGA :
共享池(shared pool) , 大池(large pool) , Java pool , database buffer cache , redo log buffer , stream pool (10g)
基本后台进程 :
SMON , PMON , DBWn, LGWR, CKPT , ARCn , 等基本进程, 如果是RAC还包括其他一些进程
数据库存储 :
关系数据库逻辑结构: Table
数据文件,控制文件,联机日志文件的逻辑组合叫做数据库, 所有数据文件划分为多个逻辑组,叫做表空间 , 一个表空间至少有一个数据文件, 一个数据文件只能对应一个tablespace .
逻辑结构: database, tablespace , segment , extent , oracle data block
物理结构: data file , os block
Segment : 表空间下更小的逻辑组 , 一般表示我们熟悉的 table, index 了
Extent : 表示逻辑上连续的一段空间, Segment 的增大和减小是以Extent 为单位的 ,扩大段(Segment)的时候, 增长的单位是1个或整数个Extents . 不能是 0.6个或5.8 个 。 Extent 是逻辑上连续的空间,所以不能跨多个datafile 存在, 一个Extent 只能在一个datafile 中, 否则就不是连续的空间了 。
Oracle Block : 最小的逻辑组, 不能再细分的逻辑组, Oracle向OS发出一次I/O请求的最小读取写入单位, 也就是一次I/O 至少获取一个数据块(当然也可以多个) ,但是不能一次获取 0.5, 0.8 , 2.4 个数据块 。
OS Block : 物理层面上, Oracle block 这个逻辑组是由一个或多个OS Block组成的 , 比如 Oracle block 大小可以为 4KB, 8KB , 16KB, 32KB , 大部分操作系统中的OS Block 是 512 bytes , 如果 Oracle block = 4KB , 那么就一个Oracle block 包含了 8 个操作系统物理块 。 这样作主要是为了操作效率高一些, 一次能存取多个操作系统块。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/35489/viewspace-609149/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/35489/viewspace-609149/