实例概述 (页)
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Oracle 10g数据库基础教程
7.2. 1 SGA
□ SGA 包含的内存结构有:
■ 数据高速缓冲区(Database Buffer Cache) ■ 共享池(Shared Pool) ■ 重做日志缓冲区(Redo Log Cache) ■ 大型池(Large Pool) ■ Java池( Java Pool) ■ 流池( Streams Pool) ■ 其他结构(如固定SGA 、锁管理等)
后 台进程
数据库
ewhose i z e t h e r i
2、 □ □
h、、、、、、、要tm谁提要一一儿阅a学n记读个要年童出生住谁好之是一是一做切计个把,的中 自的握好你教 心,己问事还 机题莫师不书,仅往遇教没如如,教往树有是是育,同职谁和谷教一发的比员解课措个过展就;躬施懂十培去决心的亲得年养便教最一想共杰个事和之师心围做计成绕理更教,出;他重也学育,的。要们好和要人2莫是2学谈而教如学,。生1树话他生组育1因学木就2为织学的。6的解起教2不1的;26知来人终决能育:识81者发身1。。问:,3题6之展2下,26教1计培6生午也1职61:4养8许活1,:员8时:仅2莫和3的:躬863教分如是导61亲1树6一3育师:共:68秒个和8人别:1学:13道/数人36下。126; N德26午学。/要0o:v48上2的N02学e时m年o或2引bv8生22-4年路分实e1r2守:1验人022月11286的6上,月下。:-8规23N062午1的:Po623则Mv4技:26日2-8时,星2能:8教32而6期分1职61六2已2员:86下,躬:1而午613亲4提12共6时1出:86守S新分:8a。N3t的u6o2
Oracle 10g数据库基础教程
(1)数据高速缓冲区
□ 功能
■ 存储从数据文件中检索出来的数据拷贝 。应 用程序要访问的数据必须从磁盘的数据文件 读到数据缓冲区中处理。
■ 在数据缓冲区中被修改后的数据由数据写入 进程写到硬盘的数据文件中永久保存。
■ 提高获取和更新数据的性能。
Oracle 10g数据库基础教程
□ PGA
■ PGA是在用户进程连接数据库 、 创建一个会话时 , 由Oracle为 用户分配的内存区域 , 保存当前用户私有的数据和控制信息 , 因 此 该 区 又 称 为 私 有 全 局 区 ( Pr ivate Global Area) 。 每 个 服 务 器进程只能访问自己的PGA , 所有服务器进程的PGA总和即为实 例的PGA的大小 。
l1
星
7日
10g数据库基础教程
4 、 All that you do , do with your might ; ; thin gs don e by halves ar e n ever四don e r ight . - - - - R . H . Stoddard, American poet做 一 切 事 都 应 尽 力 而 为 , 半 途 而 废 永 远 不 行 6 . 1 7 . 2 0 2 1 6 . 1 7 . 2 0 2 1 1 0 : 5 1 1 0 : 5 1 1 0 : 5 1 : 1 9 1 0 : 5 1 : 1 9
Oracle 10g数据库基础教程
□ 数据库与实例的关系
■ 单实例数据库系统
多实例数据库系统
Oracle 10g数据库基础教程
□ 实例组成
■ 内存结构: 系统全局区(SGA) 和程序全局区(PGA) ■ 后台进程组成
Oracle 10g数据库基础教程
客户应用程序 服务器进程
实例 处理数据的内存结构
■ 数据字典缓存区
□ 数据字典缓存区保存最常用的数据字典信息
Oracle 10g数据库基础教程
□ 共享池大小
■ SHARED_POOL_SIZE ■ 合适的共享池大小 , 可使编译过的程序代码长驻内存,
大大降低重复执行相同的SQL语句 、PL/SQL程序的系 统开销 , 从而提高数据库的性能。
Oracle 10g数据库基础教程
□ 数据高速缓冲区的工作过程
Oracle 10g数据库基础教程
□ 缓冲块的类型
■ 脏 缓 存 块 ( Dirty Buffers)
□ 脏缓存块中保存的是已经被修改过的数据 。 当一条SQL语句 对某个缓存块中的数据进行修改后 , 这个缓存块就被标记为 脏缓存块 。它们最终将由DBWR进程写入数据文件 , 以永久 性地保存修改结
□ 大型池大小
■ LARGE_POOL_SIZE
Oracle 10g数据库基础教程
( 5 ) Java池
□ 功能
■ Java提供对Java程序设计的支持 , 用于存储Java代 码 、Java语句的语法分析表 、Java语句的执行方案 和进行Java程序开发。
□ Java池大小
■ JAVA_POOL_SIZE ■ 通常不小于20M , 以便安装Java虚拟机
20、1 omen t , i s t h
eessttii nnyy er9i111111146g57 ooffffeerrss nnoott uu rr dd
oonnllyy
tthhee cc
3 、 Patien ce is bitter , bu t its fru it is sweet .
er26
□
5 、You have to believe in your self . That " s the secr et o f su ccess . ----Charles Chaplin人必须相信自己 ,这是成功的秘诀 。-Thursday, June 17, 2021June 21Thursday, June 17, 20216/17/2021
Oracle 10g数据库基础教程
7. 1实例概述
□ Oracle实例的概念
■ Oracle数据库主要由放在磁盘中的物理数据库和对物 理数据库进行管理的数据库管理系统 。其中数据库管 理系统是处于用户与物理数据库之间的一个中间层软 件 ,又称为实例 , 由一系列内存结构和后台进程组成。
■ 在启动数据库时 , Oracle首先在内存中获取一定的空 间 , 启动各种用途的后台进程 , 即创建一个数据库实 例 , 然后由实例装载数据文件和重做日志文件 , 最后 打开数据库 。用户操作数据库的过程实质上是与数据 库实例建立连接 , 然后通过实例来连接 、操作数据库 的过程。
■ DB_CACHE_SIZE(标准块)
Oracle 10g数据库基础教程
(2)重做日志缓冲区
□ 功能
■ 重做日志缓冲区用于缓存用户对数据库进行修改操作 时生成的重做记录。
■ 为了提高工作效率 , 重做记录并不是直接写入重做日 志文件中 , 而是首先被服务器进程写入重做日志缓冲 区中 ,在一定条件下 ,再由日志写入进程(LGWR) 把重做日志缓冲区的内容写入重做日志文件中做永久 性保存 。在归档模式下 , 当重做日志切换时 , 由归档 进程(ARCH) 将重做日志文件的内容写入归档文件 中
Oracle 10g 数据库基础教程
第7章数据库实例
Oracle 10g数据库基础教程
本章内容
□ Oracle实例概述 □ Oracle内存结构 □ Oracle后台进程
Oracle 10g数据库基础教程
本章要求
□ 掌握Oracle实例基本概念 □ 掌握Oracle实例的内存结构、功能及管理 □ 了解Oracle进程分类及其作用 □ 掌握Oracle后台进程、功能及管理
Oracle 10g数据库基础教程
□ 数据高速缓冲区大小
■ 数据高速缓冲区越大 ,用户需要的数据在内存中的 可能性就越大 , 即缓存命中率越高,从而减少了 Oracle访问硬盘数据的次数 ,提高了数据库系统执 行的效率 。然而 ,如果数据高速缓冲区的值太大 , Oracle就不得不在内存中寻找更多的块来定位所需 要的数据 ,反而降低了系统性能 。显然需要确定一 个合理的数据高速缓冲区大小。
Oracle 10g数据库基础教程
(6)流池
□ 功能
■ 流池是一个可选的内存配置项 , 用于对流的支持。
□ 流池大小
■ STREAMS_POOL_SIZE
Oracle 10g数据库基础教程
7.2.2 SGA的管理
□ SGA组件大小调整
■ DB_CACHE_SIZE ■ LOG_BUFFER ■ SHARED_POOL_SIZE ■ LARGE_POOL_SIZE ■ Java_POOL_SIZE ■ STRAMS_POOL_SIZE ■ SGA_MAX_SIZE
( 4 ) 大型池
□ 功能
■ 大型池是一个可选的内存配置项 , 主要为Oracle多线 程服务器 、服务器I/O进程 、数据库备份与恢复操作、 执行具有大量排序操作的SQL语句 、执行并行化的数 据库操作等需要大量缓存的操作提供内存空间 。如果 没有在SGA区中创建大型池 , 上述操作所需要的缓存 空间将在共享池或PGA中分配 , 因而影响共享池或 PGA的使用效率。
而且
学的 真 正进
2
1
4
8
2
v
e
22
pp rr ,, ( Jean Jacques
Rousseau
,
Frencoh
fthoinpkpeor)r忍tu耐n是it痛y .苦(的Ric,ha但rd它N的ixo果n,实A是me甜ric蜜an的Pr。es1id0e:n5t1)6命. 运1 7给. 2予0我2 们1 1的0不: 5是1失6 .望1 7之. 酒2 0,2 1而1是0 机: 5会1 1之0杯: 5。1 二: 1〇9 6二. 1一7年. 2六0月2 1 1 0 : 七5 1 6 . 107 . 2 0 2年1
■ 空闲缓存块(Free Buffers)
□ 空闲缓存块中不包含任何数据 , 它们等待后台进程或服务器 进程向其中写入数据 。 当Oracle从数据文件中读取数据时, 将会寻找空闲缓存块 , 以便将数据写入其中
■ 命中缓存块(Pinned Buffers)
□ 正被使用 , 或者被显式地声明为保留的缓存块 。这些缓存块 始终保留在数据高速缓冲区中 , 不会被换出内存。
Oracle 10g数据库基础教程
□ 缓存块的管理
■ 脏缓存块列表: 包含那些已经被修改但还没有写入数 据文件的脏缓存块。
■ LRU列表(Least Recently Used): 包含所有的 空闲缓存块 、命中缓存块和那些还没有来得及移入到 脏缓存块列表中的脏缓存块 。在该列表中 , 最近被访 问的缓存块被移动到列表的头部 , 而其他缓存块向列 表尾部移动 , 最近最少被访问的缓存块最先被移出 LRU列表 , 从而保证最频繁使用的缓存块始终保存在 内存中。
□ 系统全局区(System Global Area,SGA) □ 程序全局区(Program Global Area ,PGA)
Oracle 10g数据库基础教程
□ SGA
■ SGA是由Oracle分配的共享内存结构 , 包含一个数据库实例共 享的数据和控制信息 。 当多个用户同时连接同一个实例时 , SGA 数据可供多个用户共享 , SGA又称为共享全局区(Shared Global Area) 。 用户对数据库的各种操作主要在SGA中进行 。 该内存区随数据库实例的创建而分配 , 随实例的终止而释放 。
Oracle 10g数据库基础教程
□ 重做日志缓冲区的工作过程
Oracle 10g数据库基础教程
□ 重做日志缓冲区的大小
■ LOG_BUFFER ■ 较大的重做日志缓冲区 , 可以减少对重做日志文件写
的次数 , 适合长时间运行的 、产生大量重做记录的事 务。
Oracle 10g数据库基础教程
( 3 ) 共享池
□ 功能
■ 共享池用于缓存最近执行过的SQL语句 、PL/SQL程 序和数据字典信息 , 是对SQL语句 、PL/SQL程序进 行语法分析 、编译 、执行的区域。
□ 组成
■ 库缓存
□ 库缓存用于缓存已经解释并执行过的SQL语句和PL/SQL程序代 码 , 以提Leabharlann SQL或PL/SQL程序的执行效率。
□ 包括SQL工作区和PL/SQL工作区
□
Oracle 10g数据库基础教程
用户进程
服务器进程 PGA
库缓冲区 数据字典
缓冲区
实例
SGA
数据库缓存 日志缓存
PMON SMON DBWR LGWR CKPT Others
参数文件 口令文件
数据文 件
控制文件 重做日志 文件
归档日志 文件
数据库
Oracle 10g数据库基础教程
7.2 Oracle内存结构