您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > 02_Oracle体系结构和组件
大型数据库技术-Oracle体系结构和组件主要组件一览InstanceSGARedologbuffercacheSharedpoolDataDict.cacheLibrarycacheDBWRSMONPMONCKPTLGWROthersUserprocessServerprocessPGAControlfilesDatafilesArchivedlogfilesParameterfilePasswordfileRedologfilesDatabaseDatabasebuffercacheOracle服务器一个Oracle服务器:是一个数据库管理系统,它为信息管理提供开放的、全面的集成方法由一个Oracle实例和一个Oracle数据库组成OracleServerOracle实例一个Oracle实例:是一种存取Oracle数据库的方法总开放一个且仅一个数据库由存储和进程结构组成BackgroundstructuresMemorystructuresSGARedologbuffercacheDatabasebuffercacheSharedpoolDBWRSMONPMONCKPTLGWROthersDataDictionarycacheLibrarycacheInstance建立连接和创建对话连接到一个Oracle实例,由建立用户连接和创建对话两部分组成ConnectionestablishedSessioncreatedDatabaseuserUserprocessOracleserverServerprocessOracle数据库一个Oracle数据库是被看作一个单元的数据的集合由三种文件类型组成ControlfilesDatafilesArchivedlogfilesParameterfilePasswordfileRedologfilesOracleDatabase物理结构一个Oracle数据库的物理结构,是由为数据库信息提供真实物理存储的操作系统文件决定的控制文件数据文件重做日志文件ControlfilesDatafiles(includesdatadictionary)HeaderOnlineredologfiles)内存结构Oracle内存结构由两个存储区域组成:系统全局区(SystemGlobalArea,SGA):在实例启动时被分配,是Oracle实例的一个基本组件程序全局区(ProgramGlobalArea,PGA):在服务器进程启动时分配系统全局区(SGA)SGA由几个存储结构组成:共享池数据库缓冲高速缓存重做日志缓冲其它结构(例如锁管理、统计数据)SGA中能配置两个可选存储结构大池Java池系统全局区(SGA)SGA是可变大小的,使用SGA_MAX_SIZE来设置大小SGA组件分配SGA内存空间,并分割成更小的颗粒分配连续的虚拟内存基于SGA_MAX_SIZE来分配大小共享池共享池用于存储最近执行的SQL语句和最近使用过的数据定义它包括两个关键的性能相关的存储结构:库高速缓存数据字典高速缓存由参数SHARED_POOL_SIZE来决定大小SharedpoolDatadictionarycacheLibrarycacheALTERSYSTEMSETSHARED_POOL_SIZE=64M;库高速缓存库高速缓存存储的是最近使用过的SQL和PL/SQL语句相关的信息。库高速缓存:使得共同使用的语句可以共享可由最近最少使用(LRU)算法来管理由两种结构组成:共享SQL区域共享PL/SQL区域它的大小由共享池大小的设置来决定数据字典高速缓存数据字典高速缓存是数据库中最近最多使用的定义的集合它包括数据库文件、表、索引、列、用户、特权和其它数据库对象的有关信息在解析阶段,服务器进程查看数据字典,核对信息,以解析对象名,并验证存取把数据字典信息高速缓存到内存,提高查询响应时间大小由共享池大小的设置来决定数据库缓冲器高速缓存数据库缓冲器高速缓存,存储由数据文件中重新获得的数据块的拷贝它使得获得和更新数据时,能获得高性能它由最近最少使用(LRU)算法来管理DB_BLOCK_SIZE决定基本块大小Databasebuffercache数据库缓冲器高速缓存由独立的子高速缓存组成DB_CACHE_SIZEDB_KEEP_CACHE_SIZEDB_RECYCLE_CACHE_SIZE数据库缓冲器高速缓存,能使用ALTER_SYSTEM动态地调节大小,包括增加或减小DB_CACHE_ADVICE能被设置为收集统计量,以预测不同高速缓存的大小调整ALTERSYSTEMSETDB_CACHE_SIZE=96M;重做日志缓冲器高速缓存重做日志缓冲器高速缓存,记录了所有的对数据库数据块所做的改变它的主要目的是恢复内部已记录的改变被称为重做项目重做项目包括重建或重做改变的信息大小由LOG_BUFFER来定义Redologbuffercache大池大池是SGA中内存的一个可选区域,只在共享服务器环境中配置它减轻了共享池的负担这个配置好的存储区域,用于会话内存(UGA)、I/O控制和备份和存储操作跟共享池不同,大池不使用LRU列表大小由LARGE_POOL_SIZEALTERSYSTEMSETLARGE_POOL_SIZE=64M;Java池Java池用于解析Java命令建立和使用Java时需要它被存储在数据库表中,以与PL/SQL相同的方式由JAVA_POOL_SIZE以参数来决定它的大小程序全局区(PGA)PGA,是为每一个连接到Oracle数据库的用户进程预留的内存UserprocessStackspaceSessioninformationsortarea,cursorinformationSGASharedSQLareasSGASessioninformationPGADedicatedserverSharedserverServerprocessSharedSQLareasStackspacesortarea,cursorinformation进程结构Oracle进程是一个程序,根据它的类型不同,能请求信息、执行一系列步骤、或者执行一个特定的工作。Oracle利用不同类型的进程:用户进程:始于数据库用户请求Oracle服务器连接的时候服务器进程:连接到Oracle实例,始于用户建立会话时后台进程:当一个Oracle实例启动时可利用用户进程用户进程是一个程序,它请求与Oracle服务器的连接它必须首先建立一个连接它不直接与Oracle服务器进行交互DatabaseuserServerprocessUserprocessConnectionestablished服务器进程服务器进程是一个程序,它与Oracle服务器直接作用它回应用户进程产生的调用,并返回结果可能是独占的或共享的服务器ConnectionestablishedSessioncreatedDatabaseuserUserprocessOracleserverServerprocess后台进程硬盘和内存之间的关系被保持,并由Oracle的后台进程驱动必须的后台进程:DBWnPMONCKPTLGWRSMONRECO可选的后台进程ARCnLMONSnnnQMNnLMDnCJQ0PnnnLCKnDnnn数据库写进程(DBWn)DBWn写的时机:检查点Checkpoint脏数据达到阈值时无自由缓存时超时时RACping响应表空间离线时表空间只读时表DROP或TRUNCATE表空间BEGINBACKUPInstanceSGADatabasebuffercacheDBWnControlfilesDatafilesRedologfilesDatabase日志写进程(LGWR)LGWR写:在提交时在1/3满时在有2MB需重做时每3秒钟在DBWn写之前InstanceSGADBWnRedologbufferControlfilesDatafilesRedologfilesLGWRDatabase系统监控(SMON)责任:实例恢复:在重做日志中前滚改变为用户存取打开数据库回滚未提交的事务处理每3秒钟对自由空间的整理对临时段的清空InstanceSGASMONControlfilesDatafilesRedologfilesInstanceSGASMONDatabase进程监控(PMON)进程失败后清理:回滚事务处理释放锁释放其它资源重启死锁的调度器InstanceSGAPMONPGAarea检查点Checkpoint(CKPT)负责:在检查点通知DBWn用检查点信息更新数据文件头用检查点信息更新控制文件InstanceSGADWW0RedoLogBufferLGWRInstanceSGADBWnLGWRCKPTControlfilesDatafilesRedologfiles归档日志(ARCn)可选的后台进程在ARCHIVELOG模式下,自动归档在线重做日志保留对数据库所做的所有改变的记录ControlfilesDatafilesRedologfilesArchivedRedologfilesARCn逻辑结构Oracle体系的逻辑结构,指示怎样使用一个数据库的物理空间。这个结构中存在的层次,由表空间、段、分区和块组成。TablespaceDatafileSegmentBlocksExtentSegment处理SQL语句连接到一个实例,使用:用户进程服务器进程所使用的Oracle服务器组件依赖于SQL语句的类型:查询返回行DML语句改变日志记录提交保证事务恢复一些Oracle服务器组件不参与SQL语句的处理处理SELECT语句搜索共享池验证语句验证数据源获得锁检查优先级解析语句执行语句从游标取值处理DML语句解析语句执行语句从数据和取消段中读数据到缓冲高速缓存锁数据和取消段记录前面的图像,以取消锁,并更新数据锁缓冲高速缓存中的任意改变的锁都被标记为脏缓存生成重做信息总结在这一节,你应该已经学到:解释数据库文件:数据文件、控制文件、在线重做日志解释SGA存储器结构:数据库缓冲高速缓存、共享SQL池和重做日志缓存解释主要后台进程:DBWn、LGWR、CKPT、PMON、SMON和ARCn。数据库设计基础本章课程在《数据库原理与应用》这门课程中已讲这里做简单介绍
本文标题:02_Oracle体系结构和组件
链接地址:https://www.777doc.com/doc-7566 .html