Oracle体系结构研究
(参考资料)oracle 体系结构详解

oracle 体系结构详解一、体系结构图oracle实例=SGA区+后台进程oracle服务器=oracle实例+oracle数据库数据库实例启动实质上即为:分配SGA区,启动后台进程Oracle 实例1、是访问Oracle 数据库的一种方式2、通常只开一个且仅开一个数据库3、由内存结构和进程结构组成,即SGA区+后台进程连接Oracle实例:包括建立用户连接和创建会话Oracle数据库是作为整体的数据集,由三类文件组成:Data files, Control files, Redo log files二、物理结构主要由三类文件组成:data files ,control files,redo-log files1.data files:数据文件,存放基本表信息(即表中数据等)、索引信息(系统内建有索引表)、回退信息(主要为数据的rollback)、临时信息(如有orderby 等操作时系统有临时信息)、系统引导信息(如数据字典等)2、control files:控制文件(二进制的)。
存放库物理结构、库名、库创建日期、序列号(存有同步信息);控制文件至少有两个一摸一样的,用做备份用参数Controlfiles=/../../文件名1,/../../文件名2;指定3、redo log files:回退日志文件,存放修改前后的信息,主要用于数据的恢复,一个数据库至少有两个redo log files文件,以便可以循环记录信息注:三类文件都有序列号,必须同步才能使用,且已Control files中的序列号为准,其他的必须与其保持一致除了上面三类文件还有:Parameter file(参数文件),Password file(口令文件),Archived log files(归档文件)等参数文件:有二进制、文本两种,用于设定参数的值。
二进制参数文件可以及时更改,即时生效;文本参数文件需重启口令文件:可用orapwd.exe 建口令文件。
Oracle体系结构研究

1 Orce的存 储 结 构 al
O al的存储 结构 分 为物 理存 储结 构 和逻辑 存储 结构 。 rc e
1 1 物 理 存 储 结 构 .
I l 数据文件l l 控制文件『联机 日志文件l 叫 I 卜 -
图 1 Orce 据 库 的 物 理 结 构 与 逻 辑 结 构 al数
摘 要 : 阐述 了 Orce al 数据库的基本 架构和 Orc 数据库理论 中的主要概 念。O al 体 系结构 由存储 结构 、 al e rce 内存结
构 和 进 程 结 构组 成 , 中 , 储 结 构 由 物 理 存 储 结 构 及 逻 辑 存 储 结 构 组 成 ; 其 存 内存 结 构 由 S A 和 P A 组 成 ; 程 结 构 G G 进
( ) a scin l事 务 缓 存 ) 这 是 一 个 完 全 事 务 支 4 Trn at a ( o : 持 的 缓存 策 略 , 能 在 J 环 境 中使 用 。 只 TA 每个 缓存 组 件 的缓 存 策 略 是 不 同 的 , 2列 出 了 各 个 表
2 结 束 语
实践 表 明 , b rae Hien t 缓存 只 有 在 你 可 以 驾 驭 它 , 且 并 条 件 合 适 的情 况 下 才 可 以 提 高性 能 , 挥 真 正 的优 势 。 如 发 果 不 了解 Hie ae缓 存 机 制 , 随意 使 用 , 能 会 造 成 一 bn t 就 可 些 难 以解 决 的错 误 。
lt h aa aeu ig Hie n t rme r o betp o r mmaial. u ig Hien t ah , rjcswhc e u e aeted tb s sn b r aefa wo k fro jc rg a t l c y s b r aecc e P oet ih rd c n t eitr cinwi h aa a ea piain t o x e t i r v d t eef in y o rjc p rt n .Thst ei i h ea t t t ed tb s p l t ,o s mee tn , n o h c o mp o e h f ce c fpoeto eai s i o i h ss s
ORACLE系统架构

推出Oracle数据库产品,成为全球最大的 关系数据库管理系统供应商。
1990年代
21世纪
Oracle继续推出了一系列具有影响力的产 品和技术,巩固了市场地位。
Oracle不断进行技术创新和市场拓展,成 为全球企业级软件和云服务领导者。
Oracle系统的特点
可扩展性
Oracle数据库具有良好的可扩展性,能够 随着企业业务的发展而不断升级和扩展。
1. 使用索引
为经常查询的列创建索引,提高数据检索速 度。
2. 优化查询语句
编写简洁、高效的SQL语句,避免使用低效 的查询结构。
3. 分区
将大表或索引分成较小的、更易于管理的部 分,提高查询性能。
4. 并行处理
利用多个处理器同时执行查询,加快处理速 度。
06 Oracle系统的安全性和可 靠性
Oracle系统的安全性
A 稳定性与可靠性
Oracle数据库具有高度的稳定性和 可靠性,能够保证企业数据的安全
和完整性。
B
C
D
高效性能
Oracle数据库具有高效性能,能够快速地 处理海量数据和复杂查询,满足企业业务 需求。
兼容性
Oracle数据库与各种操作系统、硬件平台 和开发工具具有良好的兼容性,方便企业 进行系统集成和管理。
Oracle软件架构的组成
数据库服务器
负责存储和管理数据,提供数据访问和事务处理功能。
客户端工具
用于开发、管理和维护数据库的应用程序,如SQL*Plus、Oracle Forms等。
网络组件
用于连接客户端和服务器,实现数据传输和通信。
Oracle实例
由内存结构和后台进程组成,负责执行数据库操作和管理事务。
Oracle数据库体系结构

Oracle数据库体系结构一.Oracle数据库体系结构1.实例:一组用于管理数据库文件的内存结构,实例对应着数据库;RAC/CDB CDB:CDB为数据库容器,PDB插拔数据库。
在ORACLE 12C之前,实例与数据库是一对一或多对一关系(RAC),即一个实例只能与一个数据库相关联,数据库可以被多个实例所加载。
而实例与数据库不可能是一对多的关系。
当进入ORACLE 12C后,实例与数据库可以是一对多的关系。
RAC:允许多个Oracle数据库实例在多台服务器上共享同一个数据库存储空间,并通过集群来保证高可用性和容错性。
简单来说,RAC就是将多个数据库实例连接起来,形成一个“集群”。
2.ShardingSphere:中间件,不同的数据库对应不同的实例,中间有一个中间件,使用者连接中间件;数据库中间件可以简化对读写分离以及分库分表的操作,并隐藏底层实现细节,可以像操作单库单表那样操作多库多表。
常见的中间件有MyCat,Mysql-Proxy,DRDS,Atlas,Zebra二.Orcal数据库体系结构:Orcal服务器=数据库+实例1.实例是暂时的,它只不过是一组逻辑划分的内存结构和进程结构,它会随着数据的关闭而消失数据库它就是一堆物理文件(控制文件、数据文件、日志文件等等)它呢是永久存在的数据库和实例是一对一的,这种结构我们一般称为单实例体系结构;既然有一对一,那就会有一对多,在复杂的分布式结构中,一个数据库可以对多个实例,多个实例之间可以通过网络来进行数据的一个交互或着交换2.PGA:程序全局区,为单独的服务器进程存储私有数据的内存区域(SAG属于公共资源,PAG是私有的)3.SGA:系统全局区,所有用户都可以访问的共享内存区域启动Oracle数据库时,系统先在内存内规划一个固定区域,用来储存用户需要的数据,以及Oracle运行时必备的系统信息4.后台进程结构,此处只罗列必须启动的5个后台进程系统监控器SMON:负载检查数据库一致性,有必要会在数据库打开时启动数据库恢复进程监视器PMON:负责一个Orcal数据库进程失败时清理资源,会定期唤醒或者被其他主动事务主动唤醒数据库写进程DBWR:负责将更改的数据从“数据库高速缓冲区”写入“数据文件”日志写进程LGWR:负载把日志数据写到练级日志文件检查点进程SKPT:负责检查点操作,主要检查数据库状态一致性和记录系统变更时间5.三个文件1)控制文件:存储数据库结构,一个控制文件只属于一个数据库,包含数据文件日志文件信息及相关状态归档信息,2)数据文件:存储数据,xxx.dbf文件存储着系统数据,数据字典数据,索引数据及用户存储的数据3)日志文件:存储与事务有关的重做日志三.逻辑存储结构1.块是Oracle用来管理存储的最小单元,也是最小的逻辑存储结构2.区是Oracle数据库分配空间的最小单位3.段由多个区组成,这些区可以是连续的,也可以是不连续的4.表空间是Oracle数据库的最大逻辑划分区域,通常用来存放数据表、索引、回滚段等数据对象。
第2讲_Oracle的体系结构

Page 9
2.2.3 控制文件(.ctl)
控制文件(control files)是一个较小的二进制文件,在Oracle服务器在启 动期间用来标识物理文件和数据库物理结构。 创建数据库时,创建控制文件。数据库的启动和正常运行都离不开控制文 件。启动数据库时,Oracle从初始化参数文件中获得控制文件的名字及位 置,打开控制文件,然后从控制文件中读取数据文件和联机日志文件的信 息,最后打开数据库。数据库运行时,Oracle会修改控制文件。 三个控制文件内容一样,镜像关系。
– 将执行结果返回用户
2.5.3 后台进程
为所有数据库用户异步完成各种任务
Page 21
服务器进程
后台进程
用户进程
Page 22
2.5.3.1 DBWR进程
数据库写进程。该进程执行将缓冲区写入数据文件,是负责缓冲存储区管 理的一个ORACLE后台进程。 当缓冲区中的一缓冲区被修改,它被标志为“弄脏”,DBWR的主要任务是 将“弄脏”的缓冲区写入磁盘,使缓冲区保持“干净”。
实例
用户进程 共享缓冲区 库缓冲区 服务器进程 PGA 数据字典
SGA
数据缓冲区 日志缓冲区 大池
Java池
PMON SMON DBWR LGWR CKPT Others
参数文件 口令文件
数据文件
控制文件
重做日 志文件
归档日志文件
数据库
Page 3
数据库和实例
数据库(Database)及实例(Instance) 数据库:物理操作系统文件或磁盘(disk)的集合。 实例:数据库启动时,系统首先在服务器内存中分配系统全局区 (SGA),构成了Oracle的内存结构,然后启动若干个常驻内存 的操作系统进程,即组成了Oracle的进程结构,内存区域和后台 进程合称为一个Oracle实例。
简述oracle体系结构

简述oracle体系结构
Oracle体系结构
Oracle是一种支持分布式数据库管理系统,其体系结构主要包
括E-R图,表和索引,存储过程和视图, SQL,PL/SQL程序和组件,等等。
1. E-R图
E-R图是一种关系数据库管理系统的基本模型,其中实体表示客观事物,关系表示实体之间的联系。
E-R图可以被用来描述实体和它们之间的关系,以及实体的属性和它们之间的关系。
2.表和索引
表是由一系列列组成的逻辑结构,它们包含每行和每列的数据。
索引是一种特别的表,可以被用来提高表的搜索速度和性能。
3.存储过程和视图
存储过程是一种特定类型的程序,它们可以被用来完成某些操作,比如查询和更新。
视图是一种准备好的查询,它们可以被用来返回数据库中的数据。
4.SQL,PL/SQL程序和组件
SQL(Structured Query Language)是一种用于在数据库中执行查询和更新操作的语言,是一种面向关系型数据库的核心语言。
PL/SQL是一种可以嵌入SQL语句的程序设计语言,用来定义复杂的
查询,更新和实现回调函数。
组件是一种模块化的程序,用来构建更复杂的系统。
Oracle体系结构

Oracle体系结构⼀、Oracle DB服务器体系结构概览。
Oracle DB 服务器体系结构包含以下三种主要结构:内存结构、进程结构和存储结构。
基本的 Oracle DB 系统由 Oracle DB 和数据库实例组成。
数据库包括物理结构和逻辑结构。
由于物理结构和逻辑结构是分开的,因此管理数据的物理存储时不会影响对逻辑存储结构的访问。
实例由与该实例关联的内存结构和后台进程构成。
每当启动⼀个实例时,都会分配⼀个称为系统全局区 (SGA) 的共享内存区,并启动后台进程。
进程是在计算机的内存中运⾏的作业。
进程被定义为操作系统中可运⾏⼀系列步骤的“控制线程”或机制。
启动数据库实例后,Oracle 软件会将该实例与特定数据库相关联。
该操作称为“装载数据库”。
之后⽤户可以打开数据库,即授权⽤户可以对其进⾏访问。
注:Oracle ⾃动存储管理 (ASM) 在管理内存和进程组件时使⽤实例概念,不与特定数据库关联。
访问数据库⽤户并不是数据库⽤户,是某⼀个⽤户下⾯acount表。
连接:⽤户进程和实例之间的通信。
会话:⽤户通过⽤户进程与实例之间建⽴的特定连接。
会话中包含很多事务,事物的状态是commit、rollback。
1.Oracle内存结构Oracle DB 创建并使⽤内存结构来满⾜多种需要。
例如,使⽤内存来存储正在运⾏的程序代码、在各⽤户之间共享的数据以及所连接的每个⽤户的专⽤数据区域。
⼀个实例有两个关联的基本内存结构:程序全局区 (PGA) :包含某个服务器进程或后台进程的数据及控制信息的内存区域。
PGA 是 Oracle DB 在服务器进程或后台进程启动时创建的⾮共享内存。
服务器进程对PGA 的访问是独占式的。
每个服务器进程和后台进程都具有⾃⼰的 PGA。
PGA主要⽤于存放会话连接信息,排序操作(order by)帮助数据库减轻处理SQL的压⼒。
系统全局区 (SGA) :⼀组共享的内存结构(称为 SGA 组件),其中包含⼀个 Oracle DB 实例的数据和控制信息。
Oracle数据库体系结构

在Oracle 9i之前,初始化参数都是以文本格式存放 的。在Windows平台上,建议将PFILE文件存放在 %ORACEL_HOME%\database目录中,文件名为 initSID.ora,其中SID为实例名。
(2)SPFILE
SPFILE是以二进制格式存放的。在Window 平台上,Oracle建议将SPFILE存放在 %ORACLE_HOME%\dbs 目录中。文件名为sp。
2.4.2 段
• 段是用户建立的数据库对象(如:表,索引, 簇等)的存储表示。它是有一个或多个区组 成的。
• 当建立表、索引、簇时,Oracle会为这些对 象分配段,以存放它们的数据信息,并且段 名与对象名完全相同。
• 用户建立的每一个表都会有一个在表空间中 存储的逻辑段。为用户所建立的对象生成的 段都要在磁盘上占用空间。
• 日志文件主要用于数据库恢复。
• 查看重做日志文件
SQL> select member from v$logfile;
MEMBER -------------------------------------------------E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO03.LOG E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO02.LOG E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO01.LOG
db_block_size 指定标准oracle块的尺寸
db_cache_size 指定标准数据高速缓存的尺寸
share_pool_size 指定共享池的尺寸
常用初始化参数(一)
参数名 log_buffer sga_max_size java_pool_size large_pool_size
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Oracle体系结构研究摘要:阐述了Oracle数据库的基本架构和Oracle数据库理论中的主要概念。
Oracle体系结构由存储结构、内存结构和进程结构组成,其中,存储结构由物理存储结构及逻辑存储结构组成;内存结构由SGA和PGA组成;进程结构由用户进程和Oracle进程组成。
关键词:ORACLE体系结构;存储结构;内存结构;进程结构1 Oracle的存储结构Oracle的存储结构分为物理存储结构和逻辑存储结构。
1.1 物理存储结构主要由数据文件、控制文件、联机日志文件及数据库实例构成。
Oracle数据库中有许多初始化参数,这些参数用于对整个数据库进行设置或调整,如设置数据库名、数据库块大小、控制文件的名称和位置、数据库实例数等信息。
Oracle 把这些参数存放在一个文件中,这个文件就叫初始化参数文件。
启动数据库时,Oracle会读取参数文件中的值,并根据这些值对数据库实例(instance)进行设置。
具体说是Oracle先从初始化参数文件中获得控制文件的名称及位置,打开控制文件,然后再从控制文件中读取数据文件和联机日志文件的名称和位置,打开它们,因为表、索引等对象的数据就存放在数据文件中,从而就打开了数据库。
1.1.1 控制文件Oracle启动数据库时会访问控制文件,控制文件是在创建数据库的时候创建的,它是一个很小的二进制文件,记录了数据库的名称、创建数据库的时间、数据文件的名称和位置、联机日志文件的名称和位置及表空间等信息。
所以说一个数据库的控制文件是相当重要的,一旦被损坏,数据库将不能正常启动和运行。
所以DBA应该镜像控制文件,把每个镜像的控制文件分布到不同的物理磁盘上,发生灾难时既使其中一个控制文件被损坏,也不会使整个数据库限于瘫痪。
1.1.2 数据文件当用户在Oracle中创建数据库的时候,就创建了一个或多个数据文件,表和索引等对象的数据就物理地存放在数据文件中。
一个表的数据可能会存储在多个数据文件中,但一个数据文件只能属于一个数据库。
用户查询一个表时,如果所需数据不在内存中,Oracle会读取该表所在的数据文件,并把数据调入内存中,也就是说访问表实际上就是对数据文件进行读写操作。
创建数据文件时可以指定其初始大小,当其空间耗尽时,也可自动或手动扩展其大小。
1.1.3 联机日志文件当用户在内存中对数据库做了修改时(如插入、删除、修改),如果数据还没有来得及写入数据文件中就发生断电,用户的修改就会丢失。
为了防止这种情况的发生,Oracle运行过程中会在内存中产生日志条目,这些日志条目反应了用户所做的修改,并每隔一段时间把日志条目写到物理的联机日志文件中。
重启数据库时,Oracle会从联机日志文件中找回丢失的修改数据并重新把它写到数据文件中。
由此可见,联机日志文件主要用于对数据库实例(Instance)的恢复。
当用户提交一个事务或每隔3秒钟或日志缓冲区被填满1/3时,产生的日志信息就会被写到联机日志文件中。
1.2 逻辑存储结构Oracle 的逻辑存储结构由数据块、区、段和表空间构成。
1.2.1 表空间一个数据库被分成一个个的逻辑单元,这些逻辑单元叫“表空间”。
表空间用于在逻辑上存放数据库对象如表、索引等。
一个数据库逻辑上由一个或多个表空间组成。
表空间又由一个或多个数据文件物理地支持着,表空间中的数据库对象(如表)的数据实际上是存储在数据文件中的。
表空间的大小是组成表空间的所有数据文件的大小之和。
但表和数据文件却不是一一对应的,一个表的数据可以存放在一个或多个数据文件中。
每个数据库用户都要有一个默认表空间,当用户创建对象(如表)时,如果没有指定这个对象放在哪个表空间中,则这个对象将被存放在默认表空间中。
1.2.2 数据块数据块简称块,是Oracle存取数据的最小单位。
Oracle数据存放在块中,一个块占用一定的磁盘空间。
这里的“块”是Oracle 的数据块,而不是操作系统的“块”。
Oracle每次读写数据的时候都以块为单位,如果读写的数据不到一块,Oracle也会读写整个块。
Oracle块的大小一般是操作系统块大小(512bytes)的整数倍,如2k,4k。
块大小由初始化参数文件中的DB_BLOCK_SIZE 参数指定。
1.2.3 区区是数据库中的一个逻辑存储单元,由连续的数据块组成。
特别强调的是区是一段连续的存储空间。
当段中的空间耗尽时,Oracle会分配一个新区给这个段。
段由一系列的区组成,也是存放数据的逻辑单元。
表由段组成,一个表由一个或多个段组成。
普通表由一个段组成,分区表由多个段组成。
创建表的时候实际上就创建了段,Oracle会给表的段分配一个初始区。
随着数据的插入,初始区被填满,Oracle会再分配一个新区给表的数据段,这个区叫做“递增区”。
如果递增区用完,Oracle还会分配另外的递增区。
1.2.4 段段由一系列的区组成,也是存放数据的逻辑单元。
表由段组成,一个表由一个或多个段组成。
普通表由一个段组成,分区表由多个段组成。
创建表的时候实际上就创建了段,Oracle会给表的段分配一个初始区。
随着数据的插入,初始区被填满,Oracle 会再分配一个新区给表的数据段,这个区叫做“递增区”。
如果递增区用完,Oracle还会分配另外的递增区。
2 内存结构在Oracle中,“数据库”是指物理地存储在磁盘上的数据库文件。
而数据库的启动和运行,是需要一定的内存空间和后台进程的,我们把这些内存空间和后台进程称为Oracle数据库实例(Instance).也就是说一个数据库实例是由一块大的内存空间和一系列的后台进程构成。
对于第一次接触“实例”这个概念的朋友来说,容易把“实例”和“数据库”这两个概念混淆。
实例是“内存”和“后台进程”的总称,“数据库”是数据的物理存储。
一个数据库可以由一个或多个实例驱动,二者之间的关系是一对多的关系。
数据库实例所占用的内存空间分为两部分,一部分叫系统全局区(SGA),另一部分叫程序全局区(PGA)。
2.1 系统全局区(SGA)系统全局区是一组共享的内存结构,这块内存结构用于存放数据和数据库实例的控制信息。
多个用户可以同时连接到同一个实例(Instance),这些用户可以共享该实例的SGA中的数据,因此,系统全局区又叫“共享全局区”。
当启动一个实例时,Oracle 会分配SGA给这个实例,关闭实例时它的SGA又被回收,每个数据库实例都有一个SGA。
SGA主要由以下几部分构成:数据库高速缓冲区(Database Buffer Cache)、重做日志缓冲区(Redo Log Buffer)、共享池(Shared Pool)、Java池(Java Pool) 、大池(Large Pool) 、流池(Streams Pool)。
SGA的每部分结构都是为了满足不同的需求。
(1)数据库高速缓冲区(DataBase Buffer Cache)。
数据库高速缓冲区是SGA的重要组成部分,用于存放从数据文件中读取的数据或者存放用户对数据库所做的修改,所有连接到相同实例的用户都可以共享这些数据。
数据库高速缓冲区中的缓冲器被组织成两个列表:一个是写列表(Write List),一个是最近最少使用列表(Least Recently Used List,LRU)。
最近最少使用列表LRU存放三种缓冲器:自由缓冲器(Free Buffers)、正在被访问的缓冲器(Pinned Buffers)和脏缓冲器(Dirty Buffers )。
写列表存放那些被修改了,但还没有写到磁盘上的脏数据。
当用户查询数据时,Oracle 首先在数据库高速缓冲区(DataBase Buffer Cache)中的正在被访问的缓冲器(Pinned Buffers)中进行查找,如果找到,则把数据返回给用户;如果未找到,Oracle则从数据文件中读取所需数据到自由缓冲器(Free Buffers)中,自由缓冲器就变成了Pinned Buffers,并把该缓冲器排放到最近最少使用列表(LRU)的末尾,然后把Pinned Buffers 中的内容返回给用户。
当用户修改数据库时,直接修改的是Pinned Buffers 中的内容,Pinned Buffers则变成了脏缓冲器(Dirty Buffers)。
当LRU 中不再有自由缓冲器可用时,Oracle会把位于LRU头部(最近最少使用的)的脏缓冲器中的内容(用户的修改)移动到写列表中,而该脏缓冲器又变成了自由缓冲器,LRU中的缓冲器就是这样被周而复始地循环使用的。
写列表中的数据最终要被写入磁盘上的数据文件中。
(2)重做日志缓冲区(Redo Log Buffer)。
重做日志缓冲区是SGA的组成部分,它是一个循环使用的缓冲区,用于存放日志条目,日志条目可实现数据库实例的恢复。
当用户对数据库进行修改(insert,update,delete,create,alter,drop)等操作时,一旦发生断电等意外,用户所做的修改还没有来得及写入数据文件就丢失了。
为了防止这种情况的发生,在数据库运行过程中Oracle会把用户的修改以日志条目的形式记载在SGA的重做日志缓冲区中,并每隔3秒钟或用户提交一个事务时由日志写进程LGWR把日志条目写入磁盘上的联机日志文件。
也就是说Oracle为了以防万一会在数据库运行过程中对还没来得及写入数据文件的用户修改做一物理备份。
当数据库重新启动时,Oracle会从联机日志文件中读取反映用户修改的日志条目,读入日志缓冲区中,再根据日志缓冲区中的日志条目恢复用户先前对SGA中的数据库高速缓冲区所做的修改,最终把用户的修改写入数据文件,从而恢复数据库实例。
初始化参数LOG_BUFFER用于设置日志缓冲区的大小。
比较大的日志缓冲区能够减少联机日志文件的磁盘I/O。
如果一个系统中经常有大的、长时间运行的事务,应该增大LOG_BUFFER 的值。
(3)共享池(Shared Pool)。
共享池也是SGA的重要组成部分,用于存放SQL语句、PL/SQL程序代码、数据字典等信息。
共享池主要包含库缓冲区和数据字典缓冲区。
初始化参数SHARED_POOL_SIZE用于控制共享池的大小。
在默认情况下,32位的平台,SHARED_POOL_SIZE的值是8M,64位的平台,SHARED_POOL_SIZE的值是64M。
库缓冲区存放解析并执行过的SQL语句和PL/SQL程序代码。
当用户发送一条SQL语句或PL/SQL程序代码到数据库时,Oracle首先对这条语句进行语法解析,然后将解析结果(解析树和执行计划)保存到库缓冲区中。
如果不同的用户执行相同的SQL语句,他们可以共享这些解析结果,这会加快SQL语句的执行。
库缓冲区主要包含共享SQL区、私有SQL区、PL/SQL过程和包等。