老王一家的幸福生活
Oracle的结构体系的抽象
一个狂热摄影爱好者—老王的幸福家庭
每一本介绍ORACLE的书籍第一章节一般都会介绍ORACLE的结构体系,当打开该章节时候,读者会一下子陷入一个充满了大量晦涩难懂的、陌生的概念之深渊。读下去的兴趣一下子没有了,产生了ORACLE是一个深奥难懂的一个数据库的想法。但是如果不知道oracle的结构体系,即使使用oracle多年了,仍然处于低档次应用水平。为了帮助大家理解结构体系的内容,我写了一个《一个狂热摄影爱好者—老王的幸福家庭》的介绍,通过对比与联想,希望有助于您对ORACLE数据库的结构体系有所理解。
家庭成员与角色(注意这家人的别名,它们会出现在附件文档中)
成员
|
关系
|
别名
|
角色功能
|
老王
|
一家
之主
|
SID
|
用特殊的相机(不用换胶卷的一次产生一张照片和一张底片的)照相,并将照片放在DB_BUFFER_CACHE,将底片交给大儿子, 并作标记SCN;
|
王妻
|
妻子
|
DBWR
|
王妻是一个传统的中国女性,她的一项工作是不断地看看DB_BUFFER_CACHE上是否有新的照片,如有,她就放在照片空间(照片空间有照片剪贴簿、挂在墙壁上,照相簿几部分组成)上。墙上的照片框架一样大小,有时候一个框架放一张照片,有时候,一个框架放多张照片,有时候一张照片占用多个框架(照片链),每个框架上用SCN(system change number)作记录,每一张照片有唯一的ID(rowid),这个ID包含墙壁与框架的信息,
有时候,老王在看墙上照片,觉得不满意,拿下来进行修改,他就将包含这张照片的框架进行拷贝(也叫快照),并将拷贝放在一个叫回退的储藏室, 如果对修改满意并得到确认,王妻则将修改后的照片放回墙壁的原处,并把新的SCN放在框架上。如果不满意,则从回退的储藏室取回框架放在墙上,墙壁上的照片回到原来的样子。
|
王伯当
|
大儿子
|
LDWR
|
老王照一张照片的同时,产生了一张底片,他将底片放在家里的厨房里的一个架子上,在架子上,老王贴了一个标签,标签上标记底片,这个标签叫“LOG-BUFFER”,当大儿子王伯当发现架子上有底片,他立即将底片放在一个笔记本里,这个笔记本叫做“重做笔记本”,使用这个名字,是因为可以用里面的底片恢复一张照片。大儿子王伯当将底片按照顺序将底片放入到“重做笔记本”,一旦当前的笔记本满了,他就换另一个笔记本,并在“告警日记本上”作一次记录。
注意:不是所有照片都有底片的保存,老王可以指定那些照片不必做日志。
|
王仲和
|
二儿子
|
ARCH
|
尽管已经这样做了,老王还是不放心,他担心如果来了一场大火,或者其他什么意外,他的照片底片还是有可能被损坏,他赋予他的二儿子仲和一项任务,一旦大儿子更换“重做笔记本”时候,他就拿出那些“重做笔记本”中的底片,将他放在房子外面的一个安全的地方—后院的地下室,作了一份“重做笔记本”的拷贝,这个拷贝被称为“归档的重做笔记本”,同时他更新“控制笔记本”,并在并在“告警日记本上”作一次记录。
|
王小三
|
小儿子
|
CKPT
|
小儿子王小三是一个动作迅速的小家伙,他的任务将每一个墙壁,照相簿,剪贴册的照片与控制笔记本中的数字协调起来,当他得到指令,他就飞奔起来,在每一个墙面上写下数字,并将同样的数字记录在“控制笔记本”中,使得每一件事情协调起来。
|
王管家
|
管家
|
SMON
|
有时候,全家早晨起来,房子显得凌乱,这是因为昨晚大家休息前,没有来得及清理各自的事情,SMON负责在开门前处理一下没有完成的照片与回退(从回退储藏室中取出照片框架,把旧的版本放回原来的墙上)
|
王管家妻
|
女佣
|
PMON
|
老王家干完一天的工作,准备休息,他要求全家休息前,把东西放好,关掉或者停下手里的工作。让房间里参观的客人离开,一般有4种情况:
1:老王很有耐心,等待所有客人自行离开,再休息;
2:老王没有耐心,他亲自监督每一个客人,但客人看完照片后,他给客人指出出门的方向;
3:老王非常没有耐心,他揪着客人的衣领,送出门,不让他们干完自己的事情;
4:老王,拉下电闸,说,时间到。屋子里一片狼藉,第二天早上,由王管家来收拾。
当一个客人走后,老王叫来女佣,她监控每一个客人的活动,在这些客人走后,这位女佣不厌其烦地将客人留下的垃圾扫尽垃圾桶里,并妥善处理。
如果老王没有拉闸,每个人开着灯,进行清理:王妻会从DB_BUFFER_CACHE架子上取走所有照片,放在合适的墙壁上,大儿子王伯当确定LOG_BUFFER的架子上是空的,所有的底片都在“重做笔记本”中,小儿子王小三在整个房间里兜了一圈,用最高与最低的目录编号SCN来更新墙壁与笔记本;老二王仲和把最后的一张底片放在“重做笔记本”,并放到后院的地下室,然后更新控制与告警笔记本。每一件事情做完后,老王关灯,全家休息。
|
下面是一些角色活动中涉及到的一些名词,在这里单独说明:
控制笔记本:老王家的主要成员,要想将照片与底片处理的井井有条,需要制作很详细的笔记(如我们的工作周报),每个人都将自己的事情写入这个笔记本,这个笔记本叫做“控制笔记本”。“控制笔记本”记录了每一面墙,剪贴簿等家庭财产的清单条目,当老王觉得要增加一个房间,来放置更多的照片,他必须在“控制笔记本”增加相应的记录。当老大更换“重做笔记本”时候,他需要在“控制笔记本”增加相应的记录。当老二作了一份“重做笔记本”的拷贝的时候,他需要在“控制笔记本”增加相应的记录。当王小三在房间里跑了一圈,他需要在“控制笔记本”增加相应的记录。这个特殊的笔记本动态地保存了所有地方的资产情况,和房子里以数字表示的工作进程。
告警笔记本:每个家庭成员将遇到的问题写在这个日志里。如果需要某个情形下的额外信息,需要“跟踪笔记本”,它与告警笔记本配合使用,使得告警笔记本不会那么凌乱。
老王家的其他问题:
如果发生以下问题,老王无法开展一天的工作:
1:找不到新的一日工作的工作计划(初始化文件)
2:后院的地下室满了,老二没有空间放置新的底片,全家人只有等着;
3:老王的妻子患了感冒,老王很伤心,他会伤心地关上门,全家停工。
4:有时候老王需要用后院地下室的底片恢复一张(些)照片。如果他丢失一张底片,或者在恢复过程中损坏了一张底片,那他无法恢复那张损坏了底片以后拍的所有照片。
5:老王在工作中有时候不小心,在工作的时候,相机里的胶卷曝光,他会要求相机厂家提供有两个胶卷仓的照相机,万一一个胶卷仓的胶卷曝光,他还能指望另一个胶卷仓,这第二个胶卷仓叫“镜像”。
ORACLE内存的体系结构SGA
数据库启动的时候,能够看到以下主要参数信息
名称
|
角色功能
|
共享池
(shared pool)
|
库缓存、字典等
large pool:RMAN 并行处理 多线程服务器分时记忆
java pool:java代码数据使用
|
缓冲存储区
(buffer cache)
|
新的数据或者更新的数据工作先在缓存中进行,然后写回磁盘
|
重做日志缓冲区
(redo log buffer)
|
当数据被更新后,对于他们所作的修改被保存在重做日志缓冲区,当这个区满了1/3或者有了1M的重做日志记录时,这个区的数据写道联机重做日志里。
|
数据库的体系结构---老王家与ORACLE的基本内容的对照
ORACLE概念
|
老王家的对比物
|
ORACLE数据库
|
老王家保存照片与相关的笔记本、墙壁、储藏室。
|
行
|
一张照片。老王通过察看、修改、删除来处理照片,数据库的行保存了数据,可以查看,修改、删除、添加。
|
行标示(ROWID)
|
照片的ID
|
数据块
|
保存照片的框架。
|
表空间
|
保存照片的房间
|
系统更改号SCN
|
小三来回兜圈子协调墙壁与各个笔记本中内容的依据
|
数据文件
|
保存照片的房间的每一个墙壁
|
联机重做日志文件
|
|
控制文件
|
控制笔记本内容
|
参数文件
|
老王在一家开工前必须阅读的老王家一天工作的活动指南。
|
数据写入器
|
王妻从DB_BUFFER_CACHE架子上取照片,并放在墙壁上
|
日志写入器
|
大儿子王伯当将底片放入重做笔记本。
|
归档器
|
二儿子仲和拿出“重做笔记本”中的底片,放入“归档的重做笔记本”(在后院的地下室)
|
系统监视器
|
王管家
|
进程监视器
|
保姆王管家妻子
|
打开\关闭\启动数据库
|
王家的房子对客人开放\全家休息\早上常规程序
|
事务
|
处理一张或者多张照片
|
检查点
|
王小三同步墙上照片与控制笔记本的内容
|
活动流程:
1、写入一条数据
INSERTINTO DEPTVALUES(........) 2、生成重做 保存在重做缓存区
3、生成UNDO 保存在回滚段中
无论是否提交,都要生成重做
COMMIT;1、读取一致性(原理SCN)
2、将重做日志缓冲写入联机重做日志
继续其他工作,如果一个联机重做日志写满,LGWR关闭这个日志,打开写下一个日志,LGWR还会通知ARCH,将刚刚完成的重做日志写入到归档重作日志中。
分享到:
相关推荐
Oracle 9i 体系结构是理解Oracle数据库运行机制的关键,它是Oracle数据库在9i版本时的架构设计。Oracle 9i作为一个成熟的数据库管理系统,其体系结构涵盖了逻辑结构、物理结构以及应用架构等多个方面。 首先,从...
然而,Oracle数据库的体系结构涉及的概念较为抽象,导致许多学生在学习后仍难以掌握其实质。为了解决这个问题,教师可以尝试引入思维导图这一创新教学方法,以帮助学生更直观、有效地理解和记忆这些复杂的知识。 ...
本文将深入探讨Oracle体系结构的主要组件和概念。 首先,Oracle数据库是一个数据的集合,包含了物理存储的数据以及一系列的管理和处理机制。在Oracle中,数据库不仅包含实际的数据,还涉及存储结构和后台进程,这些...
本文将深入探讨Oracle体系结构的主要组成部分,帮助读者理解其工作原理。 1. **数据库(Database)** Oracle数据库是数据的集合,包括物理数据和一系列的存储与管理对象。作为关系型数据库管理系统(RDBMS),...
Oracle 10g 体系结构是数据库管理员(DBA)必须深入理解的关键组成部分。Oracle数据库由内存结构、进程结构和存储结构三大核心组件构成。 内存结构主要包括System Global Area (SGA) 和 Program Global Area (PGA)...
### DBA-I-第一章-ORACLE体系结构(三) #### SGA与PGA的内部组件详解 在深入探讨Oracle数据库的体系结构时,我们不可避免地会接触到SGA(Shared Global Area)与PGA(Program Global Area)这两个核心概念。这部分...
《Oracle 9i&10g编程艺术——深入数据库体系结构》是一本专为有Oracle开发经验的程序员设计的书籍,旨在揭示Oracle数据库的核心构造和运行机制。Oracle数据库是全球广泛使用的大型关系型数据库管理系统之一,其9i和...
Oracle9i 体系结构是数据库管理系统Oracle9i的基础框架,它包括了数据库的物理结构、逻辑结构、内存结构以及进程结构等多个方面。本篇将详细阐述这些关键组件及其功能。 2.1 Oracle9i 体系结构概述 Oracle9i 的核心...
* 具有灵活的N层体系结构、Java存储过程及强健的数据安全恢复机制 Oracle Spatial的应用前景广阔,包括GIS系统、空间数据库、地理信息系统等。该系统可以帮助用户更好地管理和分析矢量空间数据,提高工作效率和...
本白皮书将围绕Oracle 11g R2的核心概念和基本组件展开,深入探讨了数据库体系结构、数据表、索引、分区、视图以及数据完整性和动态性能视图等关键知识点。 在第1章中,我们对Oracle数据库进行了简介,探讨了关系型...
"T1_oracle体系结构.ppt"将带你了解Oracle数据库的整体架构,包括内存结构(如SGA和PGA)、进程模型、数据存储结构(如数据块、段、表空间)以及数据库实例和服务器进程的工作原理。理解这些基础知识对于诊断性能...
Oracle数据库基于关系数据模型,其体系结构包括服务器进程、客户端进程、内存结构(如SGA,System Global Area)和物理存储结构(如数据文件、控制文件、重做日志文件等)。理解这些基本概念对于数据库管理和优化至...
综上所述,Oracle数据库的逻辑结构是一个精细设计的多层次体系,它将复杂的物理存储抽象成易于管理和优化的逻辑组件。理解这些逻辑结构及其相互关系对于数据库管理员来说至关重要,因为这直接影响到数据库的性能、...
6. **Oracle体系结构**: - Oracle数据库的物理结构包含数据文件、重做日志文件和控制文件,这些文件在操作系统层面上存储数据。 - 逻辑结构包括表空间、段、区和块等,它们抽象了数据的组织方式,便于管理和操作...
Oracle数据库11g是Oracle公司推出的数据库管理系统版本,DBA手册是数据库管理员管理数据库的重要参考资料,全面涵盖了Oracle数据库的体系结构、管理、安全、备份与恢复等多个方面。本文将围绕手册的核心内容,对知识...