Oracle体系结构
Oracle体系结构-物理结构
◆物理块
物理块是操作系统分配的基本存储单位,逻辑结构中的数据块由若干个物理块构成。
◆物理文件
每个物理文件由苦干个物理块所组成,包括数据文件、控制文件和日志文件。
◆数据文件
数据文件是实际存储插入到数据库表中的实际数据的操作系统文件。
数据文件的扩展名为"*.dbf" 。
◆重做日志文件
Oracle使用重做日志文件在故障发生之后重现当时的数据库操作,便于数据库的恢复。
重做日志文件的扩展名为"*.log"
◆控制文件
控制文件为二进制文件,它存储了数据库的名称,数据文件和重做日志文件的名称、位
置、联机/脱机状态和大小等信息。
只有控制文件正常,才能“装载”、 "打开”数据库,控制文件的扩展名为"*.ctl"。
Oracle体系结构-逻辑结构
◆数据块(Data Block ) set db_block_size 8k
数据块是最小的数据管理单位,即Oracle中所有的I/O操作都以块为单位。数据块的大小是操作系统块大
小的整数倍,常见大小为8KB或16KB。
show parameter db_block_size; --查看数据库默认的块大小
show parameter cache_size; --查看所有数据块缓存相关的参数
alter system set db_16K_cache_size=20m; --定义块的大小, 32位机器的数据块为8K,64位的为16K
--调整成功,注意这里的一个现象,即使设置的是1M大小,系统会自动将这个数值进行调整
--调整的依据是:大于零的值将自动修改为用户指定的四舍五入到颗粒大小或4MB*CPU数量*颗粒大小,以较大者为准
◆数据区间( Data Extent )
数据区间由物理上连续存放的块所构成,它是Oracle存储分配的最小单位,一个或多个块组成-个数据
区间。
◆数据段(Data Segment )
若干个数据区间构成数据段。
◆表空间( Table Space )
为了提高数据库服务器管理和运行的效率, Oracle 11g使用"表空间”这个虚拟的概念来管理逻辑对象,
用户可以将不同性质的逻辑对象存放在不同的表空间下。
在Windows操作系统中,使用文件夹来分类管理各种文件,表空间相当于Oracle数据库的文件夹。
每个表空间由一个或多个数据文件组成, -一个数据文件只能与-一个表空间相联系。
Oracle体系的逻辑结构描述了数据库的物理空间怎样运用。包括表空间、段、片区和块。
Oracle体系结构-默认表空间
数据库相当于一个柜子,柜子中的抽屉相当于表空间,抽屉中的文件夹,相当于数据文件,文件夹中的纸相当于表,写在纸上的信息相当于数据。
Oracle体系结构-内存结构(SGA、PAG)
系统全局区(SGA):
在实例成功启动的时候分配给Oracle实例的一部分内存:共享池、数据块高速缓冲区、重做日志缓冲区、大型池(可选)、JAVA池(可选)
参数控制:SGA_MAX_SIZE
共享存储区:用来存储最近执行最多的SQL语句和使用最多的数据定义(库缓冲区+数据字典缓冲区)
库缓冲区(Library Cache)作用
a.存放用于共享的SQL命令或PL/SQL块
b.采用LRU算法(最近最少使用算法)
c.用于避免相同代码的再度解析
d.ORA-04031则表明共享池不够用
数据块高速缓存区(Data dictionary cache)
a.存储数据库中数据文件、表、索引、列、用户和其它数据对象的定义和权限信息
参数控制:(SGA)SHARED_POOL_SIZE
数据块高速缓冲区:数据块高速缓冲区储存以前从数据文件中取出过的数据块的拷贝信息
由独立的子缓存组成:
- DB_CACHE_SIZE
- DB_KEEP_CACHE_SIZE
- DB_RECYCLE_CACHE_SIZE
数据缓存区可以动态的改变大小:
DB_CACHE_ADVICE可以设置以收集统计信息用来预测不同的缓冲大小
参数控制:(SGA)DB_BLOCK_SIZE
重做日志缓冲区:记录数据块的所有变化,用以恢复、重做改变
参数控制:LOG_BUFFER
大型池:大型池是在SGA内一种可选择的存贮区域,只配置在共享服务器环境中.
作用:
减轻在共享池的负担
用在UGA、备份和恢复操作中
不适应LRU算法
参数控制:LARGE_POOL_SIZE
JAVA池:解释JAVA命令
参数控制:JAVA_POOL_SIZE
程序全局区(PGA):
服务器进程启动时分配,PGA是为每个用户进程连接Oracle数据库分配的区域。
Oracle体系结构-后台进程
保持物理和内存结构的关系
必须的后台进程:DBWn、PMON、CKPT、LGWR、SMON、RECO
可选的后台进程:ARCn、LMON、Snnn、QMNn、LMDn、CJQo、Pnnn、LCKn、Dnnn
DBWn(数据库写进程)
PMON(进程监控进程) :
CKPT(检查点进程):
LGWR(日志写进程):
SMON(系统监控进程)
ARCn(归档进程):