Oracle体系结构培训课件(ppt 77页)8552.pptx

上传人:jix****n11 文档编号:77252371 上传时间:2023-03-13 格式:PPTX 页数:76 大小:525.92KB
返回 下载 相关 举报
Oracle体系结构培训课件(ppt 77页)8552.pptx_第1页
第1页 / 共76页
Oracle体系结构培训课件(ppt 77页)8552.pptx_第2页
第2页 / 共76页
点击查看更多>>
资源描述

《Oracle体系结构培训课件(ppt 77页)8552.pptx》由会员分享,可在线阅读,更多相关《Oracle体系结构培训课件(ppt 77页)8552.pptx(76页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第3章 Oracle体系结构1数据库和实例oOracle数据库服务器由数据库和实例组成。o在Oracle中,数据库是静态的,是以文件的形式存在的,是文件的集合。o实例是有关数据库管理和控制的一系列进程,以及他们共享的系统全局区SGA2Oracle结构图Oracle数据库服务器实例数据库Oracle进程SGA区后台进程物理存储逻辑存储数据文件控制文件日志文件初始化文件密码文件归档文件表空间段区块服务进程3访问Oracle数据库o 当客户应用或工程程序要访问Oracle数据库时,必须首先连接到Oracle Server,然后才能访问数据库数据。o 当在Sql*Plus中键入用户名、口令和网络连接串

2、之后,就可以连接到Oracle Server了,此时会在客户端启动对应于Sql*Plus应用进程,该进程称为“用户进程”,同时在服务器端Oracle Server会自动为该用户进程派生一个新的进程,该进程为服务器进程。4 当客户端运行SQL语句时,用户进程会通过网络将该SQL语句发送到对应的服务器进程,并且由服务器进程执行该SQL语句,服务器进程在执行了SQL语句之后,会将SQL语句的结果通过网络发送到用户进程。客户端的所有SQL操作都是由服务器进程来执行的。后台进程5数据库操作模式o专用服务器n为每个连接到实例的用户进程启动一个专门的服务进程。o共享服务器n当用户程序向系统发出请求时,监听器

3、分配一个负荷最轻的调度进程来处理用户请求。6Oracle结构图Oracle数据库服务器实例数据库Oracle进程SGA区后台进程服务进程物理存储逻辑存储数据文件控制文件日志文件初始化文件密码文件归档文件表空间段区块7请大家看一下书上2.2 Oracle内存结构8Oracle内存结构o 内存是Oracle重要的信息缓存和共享区域,主要存储执行的程序代码、连接的会话信息以及程序执行期间所需数据和共享的信息等。o Oracle使用的主要内存结构包括系统全局区SGA和程序全局区PGA。9SGA区10数据高速缓存o保存最近从数据文件中读取的数据块。分为脏缓存块、空闲缓存块和命中缓存块三类。o脏缓冲块:当

4、执行INSERT、UPDATE以及DELETE操作时,服务器进程修改数据高速缓存的相应数据,此时缓冲区的内容与数据文件中的内容不一致。11o 当用户第一次提出数据查询请求时,Oracle会首先在数据高速缓存中寻找该数据。如找到,系统就直接对它们进行处理。o 如找不到,系统首先在数据高速缓存中查找空闲数据块,然后将数据库文件中的数据读入空闲块处理,如搜索了一定的数据块后仍找不到空闲块,由后台进程DBWR将内存中部分修改过的数据写入文件,以腾出空间。数据高速缓存12重做日志缓冲区o 重做日志缓冲区用于缓存数据库重做日志记录,以便数据库损毁时可以进行必要的恢复。o 重做日志缓存是一个循环缓存区,在使

5、用时从顶端向低端写入数据,然后再返回到缓冲区的起点循环写入。13共享池o 共享池相当于程序高速缓冲区,所有的用户程序都放在共享池中。o 当用户将SQL指令发送至Oracle,系统首先解析语法是否正确。解析时所需的系统信息,以及解析后的结果将存放在共享池内。所以当不同用户执行相同SQL指令时,可以共享已解析好的结果。14共享池o共享池库缓存数据字典缓存o库缓存共享SQL区PL/SQL域锁闩o数据字典缓冲区存放数据字典信息。15程序全局区 PGA:Program Global AreaoPGA是单个Oracle进程(包括服务器进程和后台进程)使用的内存区域,不属于实例的不属于实例的内存结构。内存结

6、构。oPGA含有单个进程工作时需要的数据和控制信息,PGA是非共享的,只有服务进程本身才能够访问它自己的PGA区。16PGAoPGA为指定进程专用.o当用户连接服务器并建立会话时,Oracle为其分配一个PGA。17PGAoPGA包括n私有SQL区n会话内存区n排序区18Oracle结构图Oracle数据库服务器实例数据库Oracle进程SGA区后台进程服务进程物理存储逻辑存储数据文件控制文件日志文件初始化文件密码文件归档文件表空间段区块19后台进程o数据库写进程DBWR(Datebase Writer)o日志写进程LGWR(Log Writer)o检查点进程CKPT(Checkpoint P

7、rocess)o系统监控进程SMON(System Monitor)o进程监控进程PMON(Process Monitor)20请大家看一下书上2.3 Oracle进程21数据库写进程(DBWn/DBWR)oDBWn进程负责将数据库缓存中的脏缓存块写入数据文件中。o在出现以下情况时,DBWn开始工作n系统发出检查点(checkpoint)。n脏缓冲区个数达到指定阈值。n服务器进程不能找到自由缓冲区。22DBWnDBWR23日志写进程(LGWR)o 当运行DML(INSERT、UPDATE、DELETE)或DDL(CREATE、ALTER、DROP)语句时,服务器进程首先将事务变化记载到重做日志

8、缓冲区,然后才会将数据写入到数据高速缓存的相应缓冲区,并且重做日志缓冲区的内容将会被写入到重做日志文件中,以避免系统出现意外所带来的数据损失。24LGWR重做日志缓存循环使用。LGWR在以下几种情况下发生:o在DBWR将脏数据写入数据文件之前。o重做日志缓冲区已有三分之一填满。o每隔3秒钟。o提交事务。o重做日志记录大小到125思考o Oracle总是尽量将用户“最常使用的数据”保留在缓冲区内,以提高数据存取的效率。那么,如果仅将最不常用的数据写至数据文件,那么这些“经常使用”的数据反而没机会存回硬盘?Oracle系统使用检查点进程(CKPT)定时触发一次更新数据文件的操作。26检查点进程(C

9、KPT)oCKPT进程负责向数据库发出检查点,检查点用于同步数据库的所有数据文件、控制文件和重做日志。27SCN(System Change Number)o 当运行Insert、Update、Delete以及其他涉及到数据库变化的语句时,Oracle会针对任何修改生成顺序递增的SCN值,并将该SCN值连同事务变化一起记载到重做日志缓冲区。SCN是用于记载数据库变化的唯一标识号,永远不会用尽。o假定Update之前的SCN为100000,当执行了Update之后有三个数据块发生变化,则SCN会增加为100003。28CKPT工作原理o 当Oracle发出检查点时,系统会将检查点时刻的SCN值写

10、入到控制文件和数据文件头部,同时还会促使DBWR进程将所有脏缓冲区写入到数据文件中。29检查点工作机制o 在DBWR进程工作之前,LGWR进程首先将重做日志缓冲区内容写入到重做日志文件,即该时刻的SCN值会被写入重做日志。o 当CKPT进程工作的时候,会将当前时刻的SCN值写入数据文件和控制文件。o 在发出检查点时刻,数据文件、控制文件和重做日志的SCN值完全一致。30系统恢复o 当运行Oracle Server时,在访问数据文件、控制文件和重做日志时,Oracle会定期检查并比较每种文件的SCN值,确定文件是否损坏、系统是否出现异常,最终确定系统是否需要进行恢复。31思考o假定某用户执行了“

11、insert into DEPT values(50,SALES,BeiJing)”和”COMMIT”操作后,突然意外断电,那么n事务变化记载到了哪种文件中?n控制文件和数据文件的SCN值是否一致?n控制文件和重做日志的SCN值是否一致?32分析o在执行COMMIT操作时,后台进程LGWR要开始工作,所以事务变化被记载到重做日志中。因为只有在发出检查点时,才会将SCN值写入控制文件和数据文件头部,所以控制文件和数据文件的SCN值保持一致,并且存放的是先前检查点的SCN值。o控制文件和数据文件的SCN值一致,与重做日志不一致!33SMONo如果数据库未正常关闭,文件中数据不同步。o因为最近检查点

12、SCN到COMMIT时间点SCN之间的事务变化都被记载到了重做日志中,所以在重新打开数据库之前,Oracle会自动执行这两个时间点之间的事务操作,并同步所有数据文件、控制文件和重做日志文件,然后才会打开数据库。o 该过程被称为应急恢复,正是由SMON完成的,SMON还负责在启动实例时清理临时段和合并区碎片。34一致性处理o如果数据文件、控制文件、重做日志的当前SCN值完全一致,则系统会直接打开所有数据文件和重做日志。o如果控制文件和数据文件的当前SCN值完全一致,并小于重做日志的当前SCN值,则需要进行实例恢复。o如果控制文件和数据文件的当前SCN值不匹配,则表示数据文件或控制文件存在损坏,此

13、时需要进行介质恢复,以恢复损坏文件。35思考o 假定你在客户端运行SQL*PLUS访问Oracle Server,那么Oracle将在服务器端分配相应的服务器进程。假如你正常退出了SQL*PLUS或该进程出现了意外情况,那么Oracle会如何处理服务器进程呢?o系统当然要释放服务器进程所占用的资源。36PMONoOracle如何确定用户进程是处于连接状态、断开连接还是异常状态?o这个任务由PMON来完成。n资源回收(锁、SGA、PGA)n状态恢复(将用户的操作回退到最近一次事务提交时的状态)37一个典型的独立型Oracle实例38一个并行的Oracle服务器实例(Oracle Parallel

14、 Server)39Oracle结构图Oracle数据库服务器实例数据库Oracle进程SGA区后台进程服务进程物理存储逻辑存储数据文件控制文件日志文件初始化文件密码文件归档文件表空间段区块40请大家看一下书上3.1 Oracle数据库的物理结构41Oracle数据库物理存储结构o Oracle数据库在物理上是存储于硬盘的各种文件。它是活动的,可扩充的,随着数据的添加和应用程序的增大而变化。42数据文件o Oracle数据库模式对象中的所有数据均存储在数据文件中,也就是说,数据文件是Oracle数据库的唯一物理存储对象,所以每个Oracle数据库至少由一个数据文件组成。o 数据文件用来存储数据

15、库中的全部数据,如数据库表中的数据和索引数据。数据文件通常是后缀名为.dbf格式的文件。43数据文件o 数据文件实际上是一个操作系统文件,这些文件中的数据格式是只有Oracle数据库系统才能够正确识别的二进制格式。44数据文件o Oracle数据库至少要包含一个数据文件,并且数据文件是表空间的物理组成元素,一个表空间可以包含多个数据文件,并且每个数据文件只能唯一地属于某个表空间。数据库SYSTEM表空间表空间一表空间二数据文件逻辑组成物理组成45重做日志文件o 重做日志是用于记录数据库变化的物理文件,其目的是为了在出现意外时恢复Oracle数据库,数据库至少要包含2个重做日志组,并且这些重做日

16、志组是循环使用的。日志组一日志组二日志组三46归档 当数据库处于ARCHIVELOG(自动归档)模式时,在进行日志切换时,Oracle会自动将重做日志内容复制到归档日志中。47多元化重做日志o 用户可以为相同的日志文件建立一个文件组,将同一个文件组中的文件放在不同的磁盘上建立一些副本。LOG1ALOG2ALOG1BLOG2B磁盘A磁盘BLGWR日志组1日志组248控制文件o每个Oracle数据库都有一个控制文件(名字通常为Ctr*.ctl格式),用以记录与描述数据库的物理结构,包括以下信息:nOracle 数据库名称与建立时间。n数据文件与重做日志文件名称及所在位置。n日志记录序列号(log

17、sequence number)。n数据库检查点信息。49o 数据库的数据文件和重做日志文件均是一些操作系统文件,Oracle在操作数据库时,怎样将指定数据库中的这些文件同普通的操作系统文件和其他数据库文件区分开来,这正是数据库控制文件的功能。o 如果把数据文件比作一个仓库,那么重做日志文件就相当于该仓库的货物进出记录账本,控制文件就是该仓库的管理中心。控制文件50Oracle结构图Oracle数据库服务器实例数据库Oracle进程SGA区后台进程服务进程物理存储逻辑存储数据文件控制文件日志文件初始化文件密码文件归档文件表空间段区块51Oracle数据库的逻辑结构o逻辑上,数据库是由一个或多个

18、表空间组成的,并且一个表空间只能属于一个数据库。o物理上,表空间又是由一个或多个数据文件组成的。表空间1表空间2表空间1Oracle逻辑结构Oracle物理结构52Oracle逻辑结构数据库表空间段区Oracle块数据文件O/S块逻 辑物 理53表空间(Tablespace)o 如果将图书馆比喻为数据库的话,那么可以将图书馆的每个书架看作为表空间类似于书架,不同表空间将用于存放不同类型的数据。54表空间的类型 n系统表空间n回滚表空间n临时表空间n用户表空间n索引表空间n用户创建的表空间55表空间的作用1o能够将数据字典与用户数据分离。o能够将回退数据与用户数据分离,避免由于硬盘损坏而带来的永

19、久性数据丢失。o能够将表空间的数据文件分散保存到不同的硬盘上,平均分布物理I/O操作。56o能够将某个表空间设置为脱机状态或联机状态,以便对数据库的一部分进行备份和恢复。o能够为某种特殊用途专门设置一个表空间,如临时表空间,以优化表空间的使用效率。o能够更加灵活地为用户设置表空间限额。表空间的作用257Oracle逻辑结构数据库表空间段区Oracle块数据文件O/S块逻 辑物 理58段(segment)o 段用于存储特定逻辑结构的所有数据。当建立数据对象(表、索引、簇等)时,Oracle会自动给这些数据对象分配相应的存储控件,以存放它们的数据信息。o 在一个表空间上可以包含一个或多个段,一个段

20、只能存放在一个表空间上,并且段是由一个或多个区组成的。59段的类型o根据段中存储的模式对象不同,段分为以下几类:n数据段:保存数据表中的记录。n索引段:当执行CREATE INDEX语句时,Oracle自动创建索引段。n临时段:在执行查询、排序、创建索引等操作时,Oracle使用临时段保存临时数据。n回滚段:用于存放数据修改之前的值。60Oracle逻辑结构数据库表空间段区Oracle块数据文件O/S块逻 辑物 理61区(Extent)o 区由连续的数据块组成,它是Oracle空间分配的逻辑单元。Oracle为段分配空间是以区为单位进行分配的。o例如:当建立表EMP时,Oracle会为该表建立

21、相应的表段EMP,假定初始时该表段只包含一个区(1M),那么当数据占满1M空间之后,再插入数据时,Oracle会自动扩展该段,并为其分配第二个区。62Oracle逻辑结构数据库表空间段区Oracle块数据文件O/S块逻 辑物 理63数据块(Data Block)o数据块也称为Oracle块,它是Oracle在数据文件上执行I/O操作的最小单位。o例子:假定某用户执行”SELECT*FROM emp WHERE empno=7788”只会返回100B的数据,而数据块尺寸为2KB,那么Oracle读取多少数据到数据高速缓存呢?2KB64Oracle结构图Oracle数据库服务器实例数据库Oracl

22、e进程SGA区后台进程服务进程物理存储逻辑存储数据文件控制文件日志文件初始化文件密码文件归档文件表空间段区块65企业管理器(Oracle Enterprise Manager)o企业管理器(OEM)是Oracle为管理用户提供的可视化管理工具,该工具几乎包含了对数据库对象的所有管理.66OEM体系结构Oracle ManagementOracle ManagementRepositoryOracleAgentOracleAgentOracleAgentWeb BrowserConsoleConsole67OEM三层结构-1 第一层客户端工具,如 OEM Console,SQL*PLUS.这些工

23、具是从机器本地启动的,也可以是通过浏览器下载下来的Java applet.68OEM三层结构-2 第二层是中间层,由安装在操作系统上的Oracle Management Server(OMS)构成。很多工具都要求先配置好OMS。OMS提供:1.访问EM库(Repository)中的信息。2.分派控制台的请求3.控制任务的执行4.监控事务5.通过邮件或寻呼提示任务的完成或事件的发生69OEM三层结构-3 第三层是只能代理(Intelligent Agent),是在每个server上必须安装的,用来执行任务和监控发生在服务器各个被管理对象上的事件的软件。被管理对象包括网络节点(服务器)、数据库、监

24、听程序(listener)以及安装在这些节点上的Oracle服务。70OEM控制台o独立启动71OEM组件介绍1.方案管理方案管理能够在数据库中管理对象。可以用于创建、修改和删除表、索引、视图、快照和序列等。方案管理功能非常强大,能够以层次结构列表形式管理。72OEM组件介绍2.安全管理安全管理提供给数据库系统管理员在Oracle中管理访问权限和对象权限的一种方法。数据库系统管理员能够为用户和其他角色创建、修改和删除安全对象以及相关的权限、角色和环境资源文件。73OEM组件介绍3.存储管理存储管理允许创建和修改表空间、数据文件和回退段。74OEM组件介绍4.例程管理例程管理允许关闭、启动例程并且存储和管理数据库参数。例程管理监测每个数据库的例程,如果数据库在运行,可以看到所有当前的连接,可以得到数据库状态的信息、日志记录状态和SGA配置信息。75OEM组件介绍5.复制管理复制管理允许用户对数据库和对象进行复制。76

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 技术总结

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁