Loading... 此文转自中国IT实验室,原文地址:<span class="external-link"><a class="no-external-link" href="http://oracle.chinaitlab.com/serial/37325.html" target="_blank"><i data-feather="external-link"></i>http://oracle.chinaitlab.com/serial/37325.html</a></span> <span style="color: #000000;">学习oracle,最好首先了解</span><a href="http://www.dodoplant.com" target="_blank" rel="noopener noreferrer">Oracle</a><span style="color: #000000;">的框架。这样对</span><a href="http://www.dodoplant.com" target="_blank" rel="noopener noreferrer">Oracle</a><span style="color: #000000;">有一个整体的认识,有高屋建瓴的作用</span> <b>1、物理结构(由控制文件、数据文件、重做日志文件、参数文件、归档文件、口令文件组成) </b> <span style="color: #000000;">一个数据库中的数据</span><a href="http://www.dodoplant.com" target="_blank" rel="noopener noreferrer">存储</a><span style="color: #000000;">在磁盘上物理文件,被使用时,调入内存。</span> <span style="color: #000000;">其中控制文件、数据文件、重做日志文件、跟踪文件及警告日志(trace files,alert files)属于数据库文件;</span> <span style="color: #000000;">参数文件(parameter file)口令文件(password file)是非数据库文件</span> <span style="color: #000000;">1.1数据文件:</span><a href="http://www.dodoplant.com" target="_blank" rel="noopener noreferrer">存储</a><span style="color: #000000;">数据的文件.数据文件典型地代表了根据他们使用的磁盘空间和数量所决定的一个Oracle数据库的容积。</span> <span style="color: #000000;">由于性能原因,每一种类型的数据放在相应的一个或一系列文件中,将这些文件放在不同的磁盘中。</span> <span style="color: #000000;">types:</span> <span style="color: #000000;"> .data dictionary .data</span> <span style="color: #000000;"> .redo data .index</span> <span style="color: #000000;"> .temporary data 等等</span> <span style="color: #000000;">1.2控制文件:包含维护和验证数据库完整性的必要信息、例如,控制文件用于识别数据文件和重做日志文件,一个数据库至少需要一个控制文件.</span> <span style="color: #000000;">控制文件内容</span> <span style="color: #000000;">。数据库名</span> <span style="color: #000000;"> 。表空间信息</span> <span style="color: #000000;"> 。所有数据文件的名字和位置</span> <span style="color: #000000;"> 。所有redo日志文件的名字和位置</span> <span style="color: #000000;"> 。当前的日志序列号</span> <span style="color: #000000;"> 。检查点信息</span> <span style="color: #000000;"> 。关于redo日志和归档的当前状态信息</span> <span style="color: #000000;">控制文件的使用过程</span> <span style="color: #000000;">控制文件把Oracle引导到数据库文件的其它部分。启动一个实例时,Oracle 从参数文件中读取控制文件的名字和位置。安装数据库时,Oracle 打开控制文件。最终打开数据库时,Oracle 从控制文件中读取数据文件的列表并打开其中的每个文件。</span> <span style="color: #000000;">1.3重做日志文件:含对数据库所做的更改记录,这样万一出现故障可以启用数据恢复。一个数据库至少需要两个重做日志文件.</span> <span style="color: #000000;">1.4 跟踪文件及警告日志(Trace Files and Alert Files)</span> <span style="color: #000000;">在instance 中运行的每一个后台进程都有一个跟踪文件(trace file)与之相连。Trace file 记载后台进程所遇到的重大事件的信息。</span> <span style="color: #000000;">警告日志( Alert Log)是一种特殊的跟踪文件,每个数据库都有一个跟踪文件,同步记载数据库的消息和错误.</span> <span style="color: #000000;">1.5参数文件:包括大量影响Oracle数据库实例功能的设定,如以下设定:</span> <span style="color: #000000;">。数据库控制文件的定位</span> <span style="color: #000000;"> 。Oracle用来缓存从磁盘上读取的数据的内存数量</span> <span style="color: #000000;"> 。默认的优化程序的选择.</span> <span style="color: #000000;">和数据库文件相关,执行两个重要的功能</span> <span style="color: #000000;">1〉为数据库指出控制文件</span> <span style="color: #000000;"> 2〉为数据库指出归档日志的目标</span> <span style="color: #000000;">1.6归档文件:是重做日志文件的脱机副本,这些副本可能对于从介质失败中进行恢复很必要。</span> <span style="color: #000000;">1.7口令文件:认证哪些用户有权限启动和关闭Oracle例程.</span> <b>2、逻辑结构(表空间、段、区、块)</b> <span style="color: #000000;">表空间:是数据库中的基本逻辑结构,一系列数据文件的集合。</span> <span style="color: #000000;">段:是对象在数据库中占用的空间.</span> <span style="color: #000000;">区:是为数据一次性预留的一个较大的存储空间.</span> <span style="color: #000000;">块:ORACLE最基本的存储单位,在建立数据库的时候指定.</span> <b>3、内存分配(SGA和PGA)</b> <span style="color: #000000;">SGA:是用于存储数据库信息的内存区,该信息为数据库进程所共享。它包含Oracle</span><a href="http://www.dodoplant.com" target="_blank" rel="noopener noreferrer">服务器</a><span style="color: #000000;">的数据和控制信息,它是在Oracle</span><a href="http://www.dodoplant.com" target="_blank" rel="noopener noreferrer">服务器</a><span style="color: #000000;">所驻留的计算机的实际内存中得以分配,如果实际内存不够再往虚拟内存中写。</span> <span style="color: #000000;">PGA:包含单个服务器进程或单个后台进程的数据和控制信息,与几个进程共享的SGA 正相反,PGA 是只被一个进程使用的区域,PGA 在创建进程时分配,在终止进程时回收.</span> <b>4、后台进程</b> <span style="color: #000000;">包括数据写进程(Database Writer,DBWR)、日志写进程(Log Writer,LGWR)、系统监控(System Monitor,SMON)、进程监控(Process Monitor,PMON)、检查点进程(Checkpoint Process,CKPT)、归档进程、服务进程、用户进程)</span> <span style="color: #000000;">数据写进程:负责将更改的数据从数据库缓冲区高速缓存写入数据文件</span> <span style="color: #000000;">日志写进程:将重做日志缓冲区中的更改写入在线重做日志文件</span> <span style="color: #000000;">系统监控:检查数据库的一致性如有必要还会在数据库打开时启动数据库的恢复</span> <span style="color: #000000;">进程监控:负责在一个Oracle 进程失败时清理资源</span> <span style="color: #000000;">检查点进程:负责在每当缓冲区高速缓存中的更改永久地记录在数据库中时,更新控制文件和数据文件中的数据库状态信息。该进程在检查点出现时,对全部数据文件的标题进行修改,指示该检查点。在通常的情况下,该任务由LGWR执行。然而,如果检查点明显地降低系统性能时,可使CKPT进程运行,将原来由LGWR进程执行的检查点的工作分离出来,</span> <span style="color: #000000;">由CKPT进程实现。对于许多应用情况,CKPT进程是不必要的。只有当数据库有许多数据文件,LGWR在检查点时明显地降低性能才使CKPT运行。CKPT进程不将块写入磁盘,该工作是由DBWR完成的。 init.ora文件中 CHECKPOINT_PROCESS 参数控制CKPT进程的使能或使不能。缺省时为FALSE,即为使不能。</span> <span style="color: #000000;">归档进程:在每次日志切换时把已满的日志组进行备份或归档</span> <span style="color: #000000;">服务进程:用户进程服务。</span> <span style="color: #000000;">用户进程:在客户端,负责将用户的SQL语句传递给服务进程,并从服务器段拿回查询数据。</span> <b>5、SCN(System ChangeNumber):</b> <span style="color: #000000;">系统改变号,一个由系统内部维护的序列号。当系统需要更新的时候自动增加,他是系统中维持数据的一致性和顺序恢复的重要标志。</span><a href="https://mrgeng.com/usr/uploads/2013/11/Oracle架构基础.jpg"><img class="aligncenter wp-image-125 size-full" src="https://mrgeng.com/usr/uploads/2013/11/Oracle架构基础.jpg" alt="" width="710" height="494" style=""></a> 最后修改:2025 年 03 月 13 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 如果觉得我的文章对你有用,请随意赞赏