百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

ORACLE体系 - 1

ccwgpt 2024-11-23 12:09 25 浏览 0 评论

【一】实例与数据库

1.1 Oracle 基础架构及应用环境

1.1.1 Oracle Server的基本结构

1)oracle server:database + instance

2)database:data file、control file、redolog file

3)instance: an instance access a database

4)oracle memory: sga + pga

5)instance:sga + backgroud process

1.1.2 系统全局区SGA:

1)在一个instance只有一个sga;

2)sga为所有session共享,随着instance启动而分配;

3)instance down,sga被释放。

1.2 SGA的基本组件

1)shared pool

共享池是对SQL、PL/SQL程序进行语法分析、编译、执行的内存区域。

共享池由库缓存(library cache)和数据字典缓存(data dictionary cache)以及结果缓存(result cache)等组成。共享池的大小直接影响数据库的性能。

关于shared pool中的几个概念:

① library cache:

sql和plsql的解析场所,存放sql/plsql语句代码,以及它们的执行计划,以备其他用户共享。

② data dictionary cache

存放重要的数据字典信息,以备其他用户共享使用。

③ server result cache:

存放服务器端的SQL结果集及PL/SQL函数返回值。

④ User Global Area (UGA):

共享服务器连接模式下如果没有配置large pool,则UGA属于SGA的shared pool, 专用连接模式时UGA属于PGA。

2)database buffer cache(PPT-II-328)

用于存储从磁盘数据文件中读入的数据,为所有用户共享。

服务器进程(server process)负责将数据文件的数据从磁盘读入到数据缓冲区中,当后续的请求需要这些数据时如果在内存中找到,则不需要再从磁盘读取。

数据缓冲区中被修改的数据块(脏块)由后台进程DBWR将其写入磁盘,数据缓冲区的大小对数据库的读取速度有直接的影响。

要弄明白Database Buffer Cache中的几个cache概念:

① Buffer pool=(default pool)+(nodefault pool)

其中:

default pool(参数db_cache_size)是标准块存放的内存空间大小,SGA自动管理时此参数不用设置,使用LRU算法清理空间:

nodefault pool:对应的参数有:

db_nk_cache_size: 指定非标准块大小内存空间,比如2k、4k、16k、32k。
db_keep_cache_size: 存放经常访问的小表或索引等。
db_recycle_cache_size: 与keep相反,存放偶尔做全表扫描的大表的数据。

①如何指定使用某个表调入nodefault pool

SQL> alter table scott.emp1 storage(buffer_pool keep);
SQL> select segment_name,buffer_pool from dba_segments where segment_name='EMP1';

②default pool对应的参数是db_cache_size与标准块default block是配套的,如果default block是8k, db_cache_size这个参数将代替db_8k_cache_size。

③如果要建立非标准块的表空间,先前要设定db buffer中的与之对应的db_nk_cache_size参数。

第一步,先指定db buffer里的16k cache空间大小

SQL> alter system set db_16k_cache_size=8m;

第二步,建立非标准块表空间

SQL> create tablespace tbs_16k datafile '/u01/oradata/prod/tbs16k01.dbf' size 10m blocksize 16k;
SQL> select TABLESPACE_NAME,block_size from dba_tablespaces;

3)redo log buffer

以日志条目(redo entries)方式记录了数据库的所有修改信息(包括DML和DDL),目的是为数据库恢复,日志条目首先产生于日志缓冲区,日志缓冲区较小,一般缺省值在3M-15M之间,它是以字节为单位的。

日志缓冲区的大小启动后就是固定不变的,如要调整只能通过修改参数文件后重新启动生效,不能动态修改!不能由SGA自动管理!

4)large pool(可选)

为了进行大的后台批处理操作而分配的内存空间,主要用于共享服务器的session memory(UGA),RMAN备份恢复以及并行查询等操作,有助于降低shared pool碎片。

5)java pool(可选)

为了java虚拟机及应用而分配的内存空间,包含所有session指定的JAVA代码和数据。

6)stream pool(可选)

为了stream process而分配的内存空间。stream技术是为了在不同数据库之间共享数据,因此,它只对使用了stream数据库特性的系统是重要的。

1.3 Oracle的进程:

1)user process:

客户端的process,访问数据库分为三种形式:

① sql*plus

② 应用程序

③ web方式(EM)

①sql*plus可以执行sql和plsql请求,是典型的客户端进程。

linux作为客户端:可以使用ps看到sqlplus关键字:

$ ps -ef |grep sqlplus

windows作为客户端,可以通过查看任务管理器看到sqlplus用户进程:

C:\Documents and Settings\prod>sqlplus sys/system@ as sysdba

②应用程序

例如:通过java程序直接嵌套sql语句,或调用Oracle存储过程。

③web方式

例如:使用OEM登录、管理数据库。

$emctl start dbconsole

2)server process:

服务器端的进程,user process不能直接访问Oracle,必须通过相应的server process访问实例,进而访问数据库。

[oracle@prod ~]$ ps -ef |grep LOCAL

在linux下看到的server process, (LOCAL=YES)是本地连接,(LOCAL=NO)是远程连接。

可以在oracle查看V$process视图,它包括了当前所有的后台进程和服务器进程。

SQL> select pid,program,background from v$process;

background字段为1是background process,其余都是server process

3)background process

基本的后台进程有

1)smon:系统监控进程

①当实例崩溃之后,Oracle会自动恢复实例。

②释放不再使用的临时段。

2)pmon:进程监控

①当user process失败时,清理出现故障的进程,释放所有当前挂起的锁定,释放服务器端使用的资源;

②监控空闲会话是否到达阈值;

③动态注册监听。

3)dbwn: 数据写入进程

1、将变更的数据缓冲区的脏buffer写入数据文件中。

2、释放数据缓冲区空间。

3、触发条件:

①ckpt发生

② 脏块太多时(阈值)

③db_buffer自由空间不够时

④表空间read only/offline/backup模式等

以上4个状况之一发生时,dbwn都会被触发。

4)lgwr:写日志条目

1、将日志缓冲区中的日志条目写入日志文件;

2、不像DBWR可以有多个进程并行工作,LGWR只有一个工作进程;

3、触发条件:

① commit

②online redo switch

② 3秒

④三分之一满(或1M满)

⑤先于dbwr写(先记后写,必须在dbwr写脏块之前写入日志,保证未提交数据都能回滚)

以上5个状况之一发生时, lgwr都会记日志fast commit和group commit

第一个事务commit时发生写日志的动作,在这个过程中如果又有其他事务也commit,则等到第一个事务写日志完成后,其他事务以group commit的方式一次性一起commit写日志。

5)ckpt:生成检查点

作用:通知或督促dbwr写脏块。

1、完全检查点:保证数据库的一致性。

2、增量检查点:不断更新控制文件中的检查点位置,当发生实例崩溃时,可以尽量缩短实例恢复的时间。

3、局部检查点:特定的操作下,如针对某个表空间read only/offline、Shrink 数据文件、ALTER TABLESPACE BEGIN BACKUP等 。

6)arcn:归档当前日志

归档模式下,发生日志切换时,把当前日志组中的内容写入归档日志,作为历史日志提供数据库的recovery。

1.4 PGA的基本组件

1)程序全局区(Program Global Area)的作用

①缓存来自服务器进程和后台进程的数据和控制信息;

② 提供排序、hash连接;

③ 不提供session之间的共享;

④ PGA在进程创建时被分配,进程终止时被释放,所有进程的PGA之和构成了PGA的大小;

PGA的管理是比较复杂的,9i后,Oracle推荐使用PGA自动管理,屏蔽了PGA的复杂性。

2)PGA的结构:

①SQL工作区(SQL Work Area): 有几个子区 1、Sort Area, 2、Harh Area 3、Bitmap Merge Area

作用:排序操作(order by/group by/distinct/union等),多表hash连接,位图连接,创建位图

②会话空间(Session Memory)

作用:存放logon信息等会话相关的控制信息

③私有SQL区域(Private SQL Area)

作用:存储server process执行SQL所需要的私有数据和控制结构,如绑定变量,它包括固定区域和运行时区域

③ 游标区域(Cursor Area):PLSQL游标使用的就是这块区域。

1.5连接方式

1)专用连接模式(dedicated)

对于客户端的每个user process,服务器端都会出现一个server process,会话与专用服务器之间存在一对一的映射(一根绳上的两个蚂蚱)。

专用连接的PGA的管理方式是私有的,Oracle缺省采用专用连接模式。


2)共享连接模式(shared)

多个user process共享一个server process。

① 共享服务器实际上就是一种连接池机制(connectionpooling),连接池可以重用已有的超时连接,服务于其它活动会话,但容易产生锁等待,此种连接方式现在已经很少见了。

②所有调度进程(dispatcher)共享一个公共的请求队列(resquest queue),但是每个调度进程都有与自己响应的队列(response queue)。

③在共享服务器中会话的(UGA)存储信息是在SGA中的,而不像专用连接那样在PGA中存储信息,这时的PGA(非UGA部分))的存储结构为堆栈空间。

3)驻留连接池模式(database resident connection pooling,简称DRCP):

适用于必须维持数据库的永久连接,结合了专用服务器模式和共享服务器模式的特点,它使用连接代理(而不是专用服务器)连接客户机到数据库,优点是可以用很少的内存处理大量并发连接(11g新特性,特别适用于Apache的PHP应用环境)。


the end !!!

@jackman 共筑美好!

相关推荐

PPT 139 | 粉色渐变小清新春暖花开PPT模板

春暖花开,这是你制作PPT的世界粉色渐变小清新春暖花开PPT模板,共22P适用场合:工作总结/个人汇报/演讲培训等喜欢的可以赞一个更多类似PPT模板,搜【小清新】也可以,在线编辑,一键下载...

框架完整岗位竞聘报告PPT模板

需要源文件de可私!氢元素为您提供PPT模板、PNG元素免费、办公模板。工作述职汇报、计划总结、培训课件、节日庆典、营销策划、商业计划、宣传企业、产品发布、个人简历、毕业答辩、岗位竞聘、护理培训,...

PPT与视频相关的几个操作要点

都知道PPT中可以插入视频,而2010及以上版本插入后还可以对视频做各种处理,另外别忘了还可以直接将PPT导出成视频格式。插入视频方式往PPT中插入视频,除了【插入】|【视频】|【PC上的视频】这种方...

书写主题品管圈汇报PPT模板,主题框架,简约设计,品管圈必备

Hello大家好,我是帮帮。今天跟大家分享一张书写主题品管圈汇报PPT模板,主题框架,简约设计,品管圈必备。有个好消息!为了方便大家更快的掌握技巧,寻找捷径。请大家点击文章末尾的“了解更多”,在里面找...

【教学成果框架图】国家级获奖案例解析与可视化方案(实战版)

教学成果逻辑框架图的绘制精髓总结为“逻辑为骨,视觉为翼”。下面结合具体案例,手把手教你制作既专业又美观的成果框架图。一、设计理念:教育逻辑与视觉传达的融合教学成果框架图需体现三重逻辑:教育目标层(立德...

工作总结PPT模板完整框架 (30)

年中汇报PPT的超强框架来袭,职场人士的必备神器!

这套框架堪称完美,适用于各类工作汇报场景。它逻辑清晰,内容丰富,涵盖个人介绍、工作回顾、业绩成果、问题分析以及未来工作计划等常见汇报模块。PPT已包含600多页,所有元素均可自由编辑,数据图表也能轻松...

三个说话框架,提升逻辑思维,让你清晰表达

#暑期创作大赛#建立清晰的逻辑思维:三个说话框架的力量我们生活在一个充满语言交流的世界中。无论是在学校,工作场所,还是在社交场合,我们都需要有效地表达我们的观点和想法。然而,许多人都有表达上的困扰,他...

《石头记》人物原型故事之逻辑框架(一)

话说空空道人将《石头记》带往人世,又经东鲁孔梅溪醒题《风月宝鉴》,曹雪芹定名《金陵十二钗》,加之警幻仙子提醒防备新谱《红楼梦十二支曲》。蛮以为他人在闲适风月故事之于能够了然背后真实故事,怎耐一万年老怪...

如何搭建高效沟通与精彩演讲的逻辑结构

对于大多数人而言,说话有逻辑这件事难于登天。很多人在演讲、工作汇报中都会遇到诸如“我不知道你在说什么”、“你的重点是什么”、“你说话毫无逻辑”此类的评价,被认为是说话缺乏逻辑的人。那么如何成为一个说话...

「书讯」论证逻辑框架下说理写作模式研究

《论证逻辑框架下说理写作模式研究》作者:金建龙出版日期:2018年11月开本:16开出版社:经济管理出版社小编推荐提升大学生批判意识和理性说理能力是新时代背景下高等教育中通识教育和博雅教育的全新探索...

【一元脑花】青少年4D逻辑训练的基本框架

一、核心训练模块多维认知构建资源分布图谱:通过分析社会资源层级与流动规律,建立立体空间认知模型2DOC时空维度整合:将历史局势演变(纵向时间轴)与未来趋势预判(横向可能性轴)结合训练2DOC动态干预系...

提升写作逻辑,这5个框架你搭建好了吗?

每个人都有写作的愿望,也都想表达心中浩荡的情感,但多年过后,许多人依旧卡在“无话可说”“写不出结构”的怪圈里。有人慨叹:“浮云一别后,流水十年间”,梦想与现实总有一道沟壑横亘——此岸是满腹心事,彼岸...

2023年主观题法治思想知识框架图

...

学霸:2天吃透初一语文上学期核心预习知识框架图|暑假弯道超车

学霸:2天吃透初一语文上学期核心预习知识框架图|暑假弯道超车。具体如下:查看作者的个人主页获悉剩余的~...

取消回复欢迎 发表评论: