Oracle体系结构培训课件(ppt 7)_第1页
Oracle体系结构培训课件(ppt 7)_第2页
Oracle体系结构培训课件(ppt 7)_第3页
Oracle体系结构培训课件(ppt 7)_第4页
Oracle体系结构培训课件(ppt 7)_第5页
已阅读5页,还剩71页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1,第3章Oracle体系结构,2,数据库和实例,Oracle数据库服务器由数据库和实例组成。在Oracle中,数据库是静态的,是以文件的形式存在的,是文件的集合。实例是有关数据库管理和控制的一系列进程,以及他们共享的系统全局区SGA,3,Oracle结构图,Oracle数据库服务器,实例,数据库,Oracle进程,SGA区,后台进程,物理存储,逻辑存储,数据文件控制文件日志文件,初始化文件密码文件归档文件,表空间,段,区,块,服务进程,4,访问Oracle数据库,当客户应用或工程程序要访问Oracle数据库时,必须首先连接到OracleServer,然后才能访问数据库数据。当在Sql*Plus中键入用户名、口令和网络连接串之后,就可以连接到OracleServer了,此时会在客户端启动对应于Sql*Plus应用进程,该进程称为“用户进程”,同时在服务器端OracleServer会自动为该用户进程派生一个新的进程,该进程为服务器进程。,5,当客户端运行SQL语句时,用户进程会通过网络将该SQL语句发送到对应的服务器进程,并且由服务器进程执行该SQL语句,服务器进程在执行了SQL语句之后,会将SQL语句的结果通过网络发送到用户进程。客户端的所有SQL操作都是由服务器进程来执行的。,6,数据库操作模式,专用服务器为每个连接到实例的用户进程启动一个专门的服务进程。共享服务器当用户程序向系统发出请求时,监听器分配一个负荷最轻的调度进程来处理用户请求。,7,Oracle结构图,Oracle数据库服务器,实例,数据库,Oracle进程,SGA区,后台进程,服务进程,物理存储,逻辑存储,数据文件控制文件日志文件,初始化文件密码文件归档文件,表空间,段,区,块,8,请大家看一下书上2.2Oracle内存结构,9,Oracle内存结构,内存是Oracle重要的信息缓存和共享区域,主要存储执行的程序代码、连接的会话信息以及程序执行期间所需数据和共享的信息等。Oracle使用的主要内存结构包括系统全局区SGA和程序全局区PGA。,10,SGA区,11,数据高速缓存,保存最近从数据文件中读取的数据块。分为脏缓存块、空闲缓存块和命中缓存块三类。脏缓冲块:当执行INSERT、UPDATE以及DELETE操作时,服务器进程修改数据高速缓存的相应数据,此时缓冲区的内容与数据文件中的内容不一致。,12,当用户第一次提出数据查询请求时,Oracle会首先在数据高速缓存中寻找该数据。如找到,系统就直接对它们进行处理。如找不到,系统首先在数据高速缓存中查找空闲数据块,然后将数据库文件中的数据读入空闲块处理,如搜索了一定的数据块后仍找不到空闲块,由后台进程DBWR将内存中部分修改过的数据写入文件,以腾出空间。,数据高速缓存,13,重做日志缓冲区,重做日志缓冲区用于缓存数据库重做日志记录,以便数据库损毁时可以进行必要的恢复。重做日志缓存是一个循环缓存区,在使用时从顶端向低端写入数据,然后再返回到缓冲区的起点循环写入。,14,共享池,共享池相当于程序高速缓冲区,所有的用户程序都放在共享池中。当用户将SQL指令发送至Oracle,系统首先解析语法是否正确。解析时所需的系统信息,以及解析后的结果将存放在共享池内。所以当不同用户执行相同SQL指令时,可以共享已解析好的结果。,15,共享池,共享池库缓存数据字典缓存库缓存共享SQL区PL/SQL域锁闩数据字典缓冲区存放数据字典信息。,16,程序全局区PGA:ProgramGlobalArea,PGA是单个Oracle进程(包括服务器进程和后台进程)使用的内存区域,不属于实例的内存结构。PGA含有单个进程工作时需要的数据和控制信息,PGA是非共享的,只有服务进程本身才能够访问它自己的PGA区。,17,PGA,PGA为指定进程专用.当用户连接服务器并建立会话时,Oracle为其分配一个PGA。,18,PGA,PGA包括私有SQL区会话内存区排序区,19,Oracle结构图,Oracle数据库服务器,实例,数据库,Oracle进程,SGA区,后台进程,服务进程,物理存储,逻辑存储,数据文件控制文件日志文件,初始化文件密码文件归档文件,表空间,段,区,块,20,后台进程,数据库写进程DBWR(DatebaseWriter)日志写进程LGWR(LogWriter)检查点进程CKPT(CheckpointProcess)系统监控进程SMON(SystemMonitor)进程监控进程PMON(ProcessMonitor),21,请大家看一下书上2.3Oracle进程,22,数据库写进程(DBWn/DBWR),DBWn进程负责将数据库缓存中的脏缓存块写入数据文件中。在出现以下情况时,DBWn开始工作系统发出检查点(checkpoint)。脏缓冲区个数达到指定阈值。服务器进程不能找到自由缓冲区。,23,DBWn,DBWR,24,日志写进程(LGWR),当运行DML(INSERT、UPDATE、DELETE)或DDL(CREATE、ALTER、DROP)语句时,服务器进程首先将事务变化记载到重做日志缓冲区,然后才会将数据写入到数据高速缓存的相应缓冲区,并且重做日志缓冲区的内容将会被写入到重做日志文件中,以避免系统出现意外所带来的数据损失。,25,LGWR,重做日志缓存循环使用。LGWR在以下几种情况下发生:在DBWR将脏数据写入数据文件之前。重做日志缓冲区已有三分之一填满。每隔3秒钟。提交事务。重做日志记录大小到1,26,思考,Oracle总是尽量将用户“最常使用的数据”保留在缓冲区内,以提高数据存取的效率。那么,如果仅将最不常用的数据写至数据文件,那么这些“经常使用”的数据反而没机会存回硬盘?,Oracle系统使用检查点进程(CKPT)定时触发一次更新数据文件的操作。,27,检查点进程(CKPT),CKPT进程负责向数据库发出检查点,检查点用于同步数据库的所有数据文件、控制文件和重做日志。,28,SCN(SystemChangeNumber),当运行Insert、Update、Delete以及其他涉及到数据库变化的语句时,Oracle会针对任何修改生成顺序递增的SCN值,并将该SCN值连同事务变化一起记载到重做日志缓冲区。SCN是用于记载数据库变化的唯一标识号,永远不会用尽。假定Update之前的SCN为100000,当执行了Update之后有三个数据块发生变化,则SCN会增加为100003。,29,CKPT工作原理,当Oracle发出检查点时,系统会将检查点时刻的SCN值写入到控制文件和数据文件头部,同时还会促使DBWR进程将所有脏缓冲区写入到数据文件中。,30,检查点工作机制,在DBWR进程工作之前,LGWR进程首先将重做日志缓冲区内容写入到重做日志文件,即该时刻的SCN值会被写入重做日志。当CKPT进程工作的时候,会将当前时刻的SCN值写入数据文件和控制文件。在发出检查点时刻,数据文件、控制文件和重做日志的SCN值完全一致。,31,系统恢复,当运行OracleServer时,在访问数据文件、控制文件和重做日志时,Oracle会定期检查并比较每种文件的SCN值,确定文件是否损坏、系统是否出现异常,最终确定系统是否需要进行恢复。,32,思考,假定某用户执行了“insertintoDEPTvalues(50,SALES,BeiJing)”和”COMMIT”操作后,突然意外断电,那么事务变化记载到了哪种文件中?控制文件和数据文件的SCN值是否一致?控制文件和重做日志的SCN值是否一致?,33,分析,在执行COMMIT操作时,后台进程LGWR要开始工作,所以事务变化被记载到重做日志中。因为只有在发出检查点时,才会将SCN值写入控制文件和数据文件头部,所以控制文件和数据文件的SCN值保持一致,并且存放的是先前检查点的SCN值。控制文件和数据文件的SCN值一致,与重做日志不一致!,34,SMON,如果数据库未正常关闭,文件中数据不同步。因为最近检查点SCN到COMMIT时间点SCN之间的事务变化都被记载到了重做日志中,所以在重新打开数据库之前,Oracle会自动执行这两个时间点之间的事务操作,并同步所有数据文件、控制文件和重做日志文件,然后才会打开数据库。该过程被称为应急恢复,正是由SMON完成的,SMON还负责在启动实例时清理临时段和合并区碎片。,35,一致性处理,如果数据文件、控制文件、重做日志的当前SCN值完全一致,则系统会直接打开所有数据文件和重做日志。如果控制文件和数据文件的当前SCN值完全一致,并小于重做日志的当前SCN值,则需要进行实例恢复。如果控制文件和数据文件的当前SCN值不匹配,则表示数据文件或控制文件存在损坏,此时需要进行介质恢复,以恢复损坏文件。,36,思考,假定你在客户端运行SQL*PLUS访问OracleServer,那么Oracle将在服务器端分配相应的服务器进程。假如你正常退出了SQL*PLUS或该进程出现了意外情况,那么Oracle会如何处理服务器进程呢?,系统当然要释放服务器进程所占用的资源。,37,PMON,Oracle如何确定用户进程是处于连接状态、断开连接还是异常状态?,这个任务由PMON来完成。,资源回收(锁、SGA、PGA)状态恢复(将用户的操作回退到最近一次事务提交时的状态),38,一个典型的独立型Oracle实例,39,一个并行的Oracle服务器实例(OracleParallelServer),40,Oracle结构图,Oracle数据库服务器,实例,数据库,Oracle进程,SGA区,后台进程,服务进程,物理存储,逻辑存储,数据文件控制文件日志文件,初始化文件密码文件归档文件,表空间,段,区,块,41,请大家看一下书上3.1Oracle数据库的物理结构,42,Oracle数据库物理存储结构,Oracle数据库在物理上是存储于硬盘的各种文件。它是活动的,可扩充的,随着数据的添加和应用程序的增大而变化。,43,数据文件,Oracle数据库模式对象中的所有数据均存储在数据文件中,也就是说,数据文件是Oracle数据库的唯一物理存储对象,所以每个Oracle数据库至少由一个数据文件组成。数据文件用来存储数据库中的全部数据,如数据库表中的数据和索引数据。数据文件通常是后缀名为.dbf格式的文件。,44,数据文件,数据文件实际上是一个操作系统文件,这些文件中的数据格式是只有Oracle数据库系统才能够正确识别的二进制格式。,45,数据文件,Oracle数据库至少要包含一个数据文件,并且数据文件是表空间的物理组成元素,一个表空间可以包含多个数据文件,并且每个数据文件只能唯一地属于某个表空间。,数据库,SYSTEM表空间,表空间一,表空间二,数据文件,逻辑组成,物理组成,46,重做日志文件,重做日志是用于记录数据库变化的物理文件,其目的是为了在出现意外时恢复Oracle数据库,数据库至少要包含2个重做日志组,并且这些重做日志组是循环使用的。,日志组一,日志组二,日志组三,47,归档,当数据库处于ARCHIVELOG(自动归档)模式时,在进行日志切换时,Oracle会自动将重做日志内容复制到归档日志中。,48,多元化重做日志,用户可以为相同的日志文件建立一个文件组,将同一个文件组中的文件放在不同的磁盘上建立一些副本。,LOG1A,LOG2A,LOG1B,LOG2B,磁盘A,磁盘B,LGWR,日志组1,日志组2,49,控制文件,每个Oracle数据库都有一个控制文件(名字通常为Ctr*.ctl格式),用以记录与描述数据库的物理结构,包括以下信息:Oracle数据库名称与建立时间。数据文件与重做日志文件名称及所在位置。日志记录序列号(logsequencenumber)。数据库检查点信息。,50,数据库的数据文件和重做日志文件均是一些操作系统文件,Oracle在操作数据库时,怎样将指定数据库中的这些文件同普通的操作系统文件和其他数据库文件区分开来,这正是数据库控制文件的功能。如果把数据文件比作一个仓库,那么重做日志文件就相当于该仓库的货物进出记录账本,控制文件就是该仓库的管理中心。,控制文件,51,Oracle结构图,Oracle数据库服务器,实例,数据库,Oracle进程,SGA区,后台进程,服务进程,物理存储,逻辑存储,数据文件控制文件日志文件,初始化文件密码文件归档文件,表空间,段,区,块,52,Oracle数据库的逻辑结构,逻辑上,数据库是由一个或多个表空间组成的,并且一个表空间只能属于一个数据库。物理上,表空间又是由一个或多个数据文件组成的。,表空间1,表空间2,表空间1,Oracle逻辑结构,Oracle物理结构,53,Oracle逻辑结构,逻辑,物理,54,表空间(Tablespace),如果将图书馆比喻为数据库的话,那么可以将图书馆的每个书架看作为表空间类似于书架,不同表空间将用于存放不同类型的数据。,55,表空间的类型,系统表空间回滚表空间临时表空间用户表空间索引表空间用户创建的表空间,56,表空间的作用1,能够将数据字典与用户数据分离。能够将回退数据与用户数据分离,避免由于硬盘损坏而带来的永久性数据丢失。能够将表空间的数据文件分散保存到不同的硬盘上,平均分布物理I/O操作。,57,能够将某个表空间设置为脱机状态或联机状态,以便对数据库的一部分进行备份和恢复。能够为某种特殊用途专门设置一个表空间,如临时表空间,以优化表空间的使用效率。能够更加灵活地为用户设置表空间限额。,表空间的作用2,58,Oracle逻辑结构,逻辑,物理,59,段(segment),段用于存储特定逻辑结构的所有数据。当建立数据对象(表、索引、簇等)时,Oracle会自动给这些数据对象分配相应的存储控件,以存放它们的数据信息。在一个表空间上可以包含一个或多个段,一个段只能存放在一个表空间上,并且段是由一个或多个区组成的。,60,段的类型,根据段中存储的模式对象不同,段分为以下几类:数据段:保存数据表中的记录。索引段:当执行CREATEINDEX语句时,Oracle自动创建索引段。临时段:在执行查询、排序、创建索引等操作时,Oracle使用临时段保存临时数据。回滚段:用于存放数据修改之前的值。,61,Oracle逻辑结构,逻辑,物理,62,区(Extent),区由连续的数据块组成,它是Oracle空间分配的逻辑单元。Oracle为段分配空间是以区为单位进行分配的。例如:当建立表EMP时,Oracle会为该表建立相应的表段EMP,假定初始时该表段只包含一个区(1M),那么当数据占满1M空间之后,再插入数据时,Oracle会自动扩展该段,并为其分配第二个区。,63,Oracle逻辑结构,逻辑,物理,64,数据块(DataBlock),数据块也称为Oracle块,它是Oracle在数据文件上执行I/O操作的最小单位。例子:假定某用户执行”SELECT*FROMempWHEREempno=7788”只会返回100B的数据,而数据块尺寸为2KB,那么Oracle读取多少数据到数据高速缓存呢?,2KB,65,Oracle结构图,Oracle数据库服务器,实例,数据库,Oracle进程,SGA区,后台进程,服务进程,物理存储,逻辑存储,数据文件控制文件日志文件,初始化文件密码文件归档文件,表空间,段,区,块,66,企业管理器(OracleEnterpriseManager),企业管理器(OEM)是Oracle为管理用户提供的可视化管理工具,该工具几乎包含了对数据库对象的所有管理.,67,OEM体系结构,OracleManagement,OracleManagement,Repository,Oracle,Agent,Oracle,Agent,Oracle,Agent,WebBrowser,Console,Console,68,OEM三层结构-1,第一层客户端工具,如OEMConsol

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论