oracle数据库的结构简析

本文深入解析Oracle数据库,从实例与数据库的区别,到物理结构的剖析,包括数据文件、控制文件等,再到内存结构如SGA、缓冲区高速缓存、共享池等组件的功能解释,最后概述逻辑结构,为理解Oracle数据库的运作提供了全面的知识。

一、Oracle数据库与实例

实例:就是一组操作系统进程(或者是一个多线程的进程)和一些内存,这些进程可以操作数据库。

数据库:只是一个文件集合(包括数据文件、控制文件、临时文件、重做日志文件)。

两者关系:数据库可以由多个实例装载和打开,而实例可以在任何时间点装载和打开一个数据库。

实际上,准确地讲,实例在其整个生存期中最多能装载和打开一个数据库!

二、Oracle数据库的物理结构


数据文件、控制文件、临时文件、重做日志文件等.

这里参数文件能够操作控制文件,控制文件打开数据文件。

三、Oracle数据库的内存结构



SGA:是用于存储数据库信息的内存区,该信息为数据库进程所共享。它包含Oracle 服务器的数据和控制信息,它是在Oracle服务器所驻留的计算机的实际内存中得以分配,如果实际内存不够再往虚拟内存中写。它是实例中的全局共享区,实例是由SGA和进程组成。


DBBuffer:缓冲区高速缓存(buffer cache )保存了最近使用过的数据库、或者是修改后已经写回的数据块(干净的数据块).

因为缓冲区高速缓存在保存数据块时使用了最近最多使用(most-recently-used)算法,因此最活跃的数据块儿可以驻留在内存中,从而减少IO、提高性能。包括默认缓存池、保持缓存池再生缓存池。


共享池:指SGA中存储共享内存结构的区域,如Library cache 中的 SQL区,以及数据字典中的内部信息等。

共享池非常重要,如果因为共享池分配的空间太小,可能导致性能降低。共享池由库缓存池(library cache),数据字

典缓冲池组成。


重做日志缓冲区:SGA的重做日志缓冲区保存着数据库的重做条目(redo entry)或修改日志。该缓冲区的内容总是会尽快写入重做日志。

 

大共享区: 提供分配大内存快的隔离内存区。

 

共享池:分为库缓存区字典缓存区。

        库缓存区 又包括 共享sql区 (保留sql语句执行版本)、 pl/sql区(保存编译版本所有用户共享)。

        字典缓存区 用于缓存数据字典信息存储频繁使用的数据字典。

 

固定SGA: 我们无法设置大小、oracle自己独立的去控制。

它是SGA的一个组件,其大小因平台和版本而异。安装时,固定SGA编译到”Oracle二进制可执行文件本身当中(所以它的名字里有固定一词)。在固定SGA中,有一组指向SGA中其他组件的变量,还有一些变量中包含了各个参数的值。我们无法控制固定SGA的大小,不过固定SGA通常都很小。可以把这个区想成是
SGA中的自启区,Oracle在内部要使用这个区来找到SGA的其他区。

 

四、Oracle数据库的逻辑结构

oracle的逻辑结构包括表空间(tablespace),段(segment),区(extent),数据块(data block) 以及数据文件。
表空间中存储的对象叫,比如数据段,索引段,和回退段。
组成,区是磁盘分配的最小单位。段的增大是通过增加区的个数来实现的。
每个的大小是数据大小的整数倍,区的大小可以不相同;
数据是数据库中最小的I/O单位,同时也是内存数据缓冲区的单位,及数据文件存储空间单位。块的大小由参数DB_BLOCK_SIZE设置,其值应设置为操作系统块大小的整数倍。

搜索发现了如下几篇文章解释的更加详细,参考:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值