![北京邮电大学软件工程生的课程-数据库设计开发-2_第1页](http://file4.renrendoc.com/view/929ab1b844ad00e63afbcd799d15343b/929ab1b844ad00e63afbcd799d15343b1.gif)
![北京邮电大学软件工程生的课程-数据库设计开发-2_第2页](http://file4.renrendoc.com/view/929ab1b844ad00e63afbcd799d15343b/929ab1b844ad00e63afbcd799d15343b2.gif)
![北京邮电大学软件工程生的课程-数据库设计开发-2_第3页](http://file4.renrendoc.com/view/929ab1b844ad00e63afbcd799d15343b/929ab1b844ad00e63afbcd799d15343b3.gif)
![北京邮电大学软件工程生的课程-数据库设计开发-2_第4页](http://file4.renrendoc.com/view/929ab1b844ad00e63afbcd799d15343b/929ab1b844ad00e63afbcd799d15343b4.gif)
![北京邮电大学软件工程生的课程-数据库设计开发-2_第5页](http://file4.renrendoc.com/view/929ab1b844ad00e63afbcd799d15343b/929ab1b844ad00e63afbcd799d15343b5.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
4.2ORACLE数据库实例管理Oracle服务器就是数据库管理系统(DBMS),由数据库(Oracledatabase)和实例(Oracleinstance)组成。实例是一系列复杂的内存结构和操作系统进程,它为Oracle客户提供所期望的不同程度的服务。一个实例只能打开一个数据库,或者说一个数据库被唯一的一个实例装载。4.2.1实例组成4.2.2实例创建4.2.3监控实例北京邮电大学软件学院郭文明2003.06郭文明2003.06.054.2.1ORACLE数据库实例组成实例中每一个进程都有各自的一个内存块,该内存块用于保存私有变量、地址堆栈和其他运行时的信息。进程间使用公共共享区并在公共共享区内完成它们的工作。公共共享区是能够在同一时间内被不同程序和不同进程读写的一块内存区。该内存块称为系统全局区(SGA)。因为SGA驻留在一个共享内存段中,所以它经常被称作共享全局区。后台进程就像数据库的手,是直接处理数据库的组件;SGA就像大脑,在必要时间接地调度手处理它们的信息与存储检索。SGA参与发生在数据库中全部的信息和服务器的处理。单用户的Oracle配置(PersonalOracleLite),不使用多进程执行数据库的功能。相反,所有的数据库功能由一个Oracle进程完成。由于这个原因,单用户也称为单进程Oracle。北京邮电大学软件学院郭文明2003.06郭文明2003.06.054.2.1ORACLE数据库实例组成ORACLE实例是指有自己的内存结构和相关的服务器进程及后台进程的DBMS。4.2.1.1内存结构4.2.1.2进程实例SGASharedpoolDatabaseBuffercacheRedologBuffercacheLibrarycacheDataDictionarycachePMONSMONDBWRLGWRCKPTOthers内存结构后台进程用户进程服务器进程PGA北京邮电大学软件学院郭文明2003.06郭文明2003.06.054.2.1.1ORACLE內存结构ORACLE的内存结构主要有两个内存区域组成:
SGA(SystemGlobalArea):系统全局区,是ORACLE实例的基础,是一个共享区域,存放最近使用的SQL语句、最近使用的数据、最近使用的数据字典等信息,供各个进程调用。
PGA(ProgramGlobalArea):程序全局区,该区域是一非共享区域,存放会话、排序、游标、主变量等信息,被服务器进程调用,保证谁的请求处理结果给谁,谁的排序给谁,用户声明的、打开的、使用的、关闭的游标是私有的,用户的主变量不被其他用户干扰。北京邮电大学软件学院郭文明2003.06郭文明2003.06.054.2.1.1ORACLE內存结构系统全局区:系统全局区是实例的主要部分。它含有数据维护、SQL语句分析与重做缓存所必须的所有内存结构。系统全局区的数据是共享的,也就是说,多个进程可以在同一时间对SGA中的数据进行访问和修改。所有数据库操作都使用包含在SGA中某点上的结构。当实例被创建时,分配SGA;当实例关闭时,释放SGA。北京邮电大学软件学院郭文明2003.06郭文明2003.06.054.2.1.1ORACLE內存结构SGA组成如下:共享池。数据库缓冲区高速缓存。重做日志缓冲区。另外oracle9i还有Javapool,8i有Java虚拟机,解释Java;Javapool是利用数据库技术解释Java.oracle9i的SGA可以通过SGA_MAX_SIZE被动态的设置大小,8i不能动态设置。北京邮电大学软件学院郭文明2003.06郭文明2003.06.054.2.1.1ORACLE內存结构共享池:共享池包括库高速缓存、数据字典高速缓存和服务器控制结构(例如数据库字符集)。参见下图库高速缓冲字典高速缓冲控制结构共享SQL区专用SQL区永久区运行区北京邮电大学软件学院郭文明2003.06郭文明2003.06.054.2.1.1ORACLE內存结构共享池:库高速缓存存储已提交给RDBMS的SQL语句文本、分析过的格式与执行计划,以及已被执行的PL/SQL包头与过程等。数据字典高速缓存存储用于分析SQL语句的数据字典行。Oracle服务器用库高速缓存来提高执行SQL语句的性能。当一条SQL语句提交时,服务器首先查找高速缓存,查看相同的语句是否已被提交或缓存过。如果有,Oracle使用存储的语法分析树和执行路径来执行该语句,使用存储代码可以获得明显的性能提高。北京邮电大学软件学院郭文明2003.06郭文明2003.06.054.2.1.1ORACLE內存结构共享池:对于使用以前缓存的SQL语句,它必须在所有方面都与缓存版本完全相同,包括标点符号和字母的大小写。库高速缓存包括共享和专用SQL区。共享SQL区包括SQL语句语法分析树和执行路径;专用SQL区存储特定的会话信息,一个用户会话能够一次打开的专用SQL区的数量由init.ora参数OPEN_CURSORS决定。库高速缓存中的专用SQL区可更进一步分为永久区和运行区。永久区中包含合法的信息,并可应用于SQL语句的多个执行中,而运行区中仅包含正在被执行的SQL语句的数据。北京邮电大学软件学院郭文明2003.06郭文明2003.06.054.2.1.1ORACLE內存结构共享池:字典高速缓存含有RDBMS引擎分析SQL语句所使用的数据字典信息。在这个区域中含有段信息、安全性、访问权限和在可用的自由存储空间等信息。
共享池的大小取决于init.ora文件参数SHARED_POOL_SIZE,它是以字节为单位的。ORACLE9i可以通过ALTERSYSTEMSETSHARED_POOL_SIZE动态设置。共享区经过长期装卸和卸载数据对象会产生许多碎片,如果在共享池中没有足够的连续空间用来装载目标数据,会产生错误。这个问题可以通过运行SQL命令ALTERSYSTEMFLUSHSHARED_POOL解决。但是如果在数据库操作时,经常遇到共享池错误,就必须增大共享池。北京邮电大学软件学院郭文明2003.06郭文明2003.06.054.2.1.1ORACLE內內存存结结构构数据据库库缓缓冲冲区区高高速速缓缓存存::是是影影响响整整个个数数据据库库系系统统运运行行的的重重要要因因素素之之一一。。数据据库库缓缓冲冲区区高高速速缓缓存存是是由由与与Oracle块块相相同同大大小小的的内内存存块块组组成成。。所所有有Oracle操操作作的的数数据据在在使使用用前前被被装装入入到到数数据据库库缓缓冲冲区区高高速速缓缓存存中中。。数数据据的的更更新新在在内内存存块块中中完完成成。Oracle根根据据最最近近最最少少被被使使用用(LRU)列列表表将将数数据据清清出出缓缓冲冲区区高高速速缓缓存存。。LRU列列表表记记录录数数据据块块被被访访问问的的频频繁繁程程度度。。当当服服务务器器在在缓缓冲冲区区中中需需要要更更多多空空间间来来从从磁磁盘盘读读入入一一个个数数据据块块时时,,它它去去访访问问LRU列列表表,,以以确确定定可可以以清清出出哪哪些些块块,,使使用用这这种种方方法法,,保证证最最频频繁繁使使用用的的块块保保存存在在内内存存中中。北京京邮邮电电大大学学软软件件学学院院郭郭文文明明2003.06郭文文明明2003.06.054.2.1.1ORACLE內內存存结结构构数据据库库缓缓冲冲区区高高速速缓缓存存::被修改过过的缓冲冲块称为为脏的,,脏列表表记录所所有在内内存中被被修改而而又尚未未写入磁磁盘中的的数据。。当Oracle接收收到修改改数据的的请求时时,对高高速缓存存中的块块进行数数据修改改,同时时写入重重做日志志中,然然后该块块被放入入脏的列列表中,,对这些些数据的的随后访访问从高高速缓存存中读取取改变的的数据的的新的值值。Oracle服服务器对对更新的的一块数数据,并并不立即即更新数数据文件件中的数数据。RDBMS等到到一定条条件时才才将改变变的数据据刷新写写入数据据文件((参见数数据库写写入进程程)。北京邮电电大学软软件学院院郭郭文文明2003.06郭文明2003.06.054.2.1.1ORACLE內存存结构数据库缓缓冲区高高速缓存存:DB_BLOCK_SIZE和DB_BLOCK_BUFFERS是是决定缓缓冲区高高速缓存存大小的的两个初初始化参参数。DB_BLOCK_SIZE设置Oracle块块大小,,DB_BLOCK_BUFFERS决定定分配给给缓冲区区高速缓缓存的块块的数量量。两参参数相乘乘就可得得出缓冲冲区高速速缓存的的内存总总数(以以字节为为单位)。ORACLE9i可可以通过过ALTERSYSTEMSETDB_CACHE_SIZE动态设设置。北京邮电电大学软软件学院院郭郭文文明2003.06郭文明2003.06.054.2.1.1ORACLE內存存结构重做日志志缓冲区区:重做做日志缓缓冲区用用于在内内存中存存储未被被刷新写写入联机机重做日日志文件件的重做做信息。。它是循环环使用的的缓冲区区,当重重做日志志缓冲区区填满时时,将它它的内容容写入联联机重做做日志文文件。重做日志志缓冲区区的大小小是由LOG_BUFFER初始化化参数决决定,以字节节为单位位,决定定在内存存中保留留多少空空间缓存存重做日日志项。。如果这这个值设设置得过过低,进进程之间间相互竞竞争,LGWR进程读读出和写写入缓存存,有可可能会导导致性能能问题。。北京邮电电大学软软件学院院郭郭文文明2003.06郭文明2003.06.054.2.1.1ORACLE內存存结构重做日志志缓冲区区:为强迫重重做日志志顺序写写入,Oracle服服务器使使用闩控控制对缓缓存的访访问。闩闩是一个个Oracle进程对对一个内内存结构构的锁定定,一个个进程必必须持有有重做分分配闩,,才能写写入重做做日志缓缓冲区。。当一个个进程持持有分配配闩时,,其他任任何进程程都不能能使用这这个分配配闩写入入重做日日志缓冲冲区。Oracle服务器使用用LOG_SMALL_ENTRY_MAX_SIZE初初始化参数限限制一次写入入的重做的总总量。这个参数以以字节为单位位,其缺省值值随操作系统统和硬件不同同而不同。北京邮电大学学软件学院郭郭文文明2003.06郭文明2003.06.054.2.1.1ORACLE內存存结构重做日志缓冲冲区:对具有多个CPU的服务务器而言,Oracle服务器不允允许使用重做做分配闩所书书写的重做日日志项所需空空间比参数LOG_SMALL_ENTRY_MAX_SIZE大。。相反,进程程必须持有一一个重做复制制闩。可获得得的重做复制制闩的数量等等于LOG_SIMULTANEOUS_COPIES初初始化参数的的值。LOG_SIMULTANEOUS_COPIES的缺省值是是系统中CPU的数量。。使用重做复复制闩,多个个进程能同时时写入重做日日志缓冲区。。可以使用V$LATCH动态性能视视图监控重做做分配闩与重重做复制闩。。北京邮电大学学软件学院郭郭文文明2003.06郭文明2003.06.054.2.1.2ORACLE进程程ORACLE进程可以理理解为一系列列执行一定任任务、提供不不同服务信息息的程序。主主要有用户进进程、服务器器进程、后台台进程三种类类型。用户进程:当当客户机向ORACLE服务器发出出一个连接请请求时,就产产生一个用户户进程。数据库用户操操纵数据前,,首先要建立立一个与数据据库服务器的的连接(可通通过Oracle工具,如SQL*Plus),连接的同同时产生用户户进程,用户户进程并不直直接作用于ORACLE服务器,而而是与一个服服务器进程进进行通信。北京邮电大学学软件学院郭郭文文明2003.06郭文明2003.06.054.2.1.2ORACLE进程程用户进程:每个用户进程程被分配一部部分内存区,,称为进程全全局区(PGA)。当一个用户进进程通过专用用服务器方式式连接数据库库时,用户的的会话数据、、堆栈空间和和游标状态信信息存储在进进程全局区中中。用户的会会话数据包括括安全和资源源使用信息;;堆栈空间含含有为用户会会话指定的本本地变量;游游标状态区包包括运行时的的游标信息、、返回的行和和游标返回的的代码。如果用户进程程通过共享服服务器进程方方式进行连接接,游标和会会话信息被存存储在系统全全局区(SGA)中。尽尽管对整个数数据库而言,,这并不增加加对内存空间间的要求,但但是它需要一一个更大的系系统全局区来来存放这些附附加的会话信信息。北京邮电大学学软件学院郭郭文文明2003.06郭文明2003.06.05OracleServer4.2.1.2ORACLE进程程服务器进程::服务器进程程接受用户发发出的请求,,并根据请求求与数据库通通信,通过这这些通信完成成用户进程对对数据库中数数据的处理要要求,同时完完成对数据库库的连接操作作和I/O访访问。SGASharedpoolDatabaseBufferRedologBuffer用户进程服务器进程数据库用户户建立连接建立会话北京邮电大大学软件学学院郭郭文明2003.06郭文明2003.06.054.2.1.2ORACLE进程Oracle后台进进程:在任意瞬间间,Oracle数数据库可以以处理许多多行信息、、处理几百百个同步用用户请求、、进行复杂杂的数据操操作,与此此同时提供供最高水平平的性能和和数据的完完整性。为了完成这这些任务,,Oracle数据据库将一项项大的工作作分散到多多个程序中中,其中每每个程序的的大部分操操作都是相相互独立的的,并扮演演一个特定定的角色。。这些程序序称为Oracle后台进程程。北京邮电大大学软件学学院郭郭文明2003.06郭文明2003.06.054.2.1.2ORACLE进程Oracle数据库库的物理文文件和内存存结构之间间的关系由由后台进程程来维持。理解后台进进程和它们们担负的任任务,将有有助于分析析性能问题题、指出瓶瓶颈和诊断断数据库中中的故障点点。数据库拥有有多个后台台进程,其其数量取决决于数据库库的配置。。每个后台台进程创建建一个跟踪踪文件,在在实例操作作期间保存存跟踪文件件。可以设设置init.ora文件的的BACKGROUND_DUMP_DEST参数来规规定后台进进程跟踪文文件的位置置。排除数数据库故障障时,跟踪踪文件就显显得非常重重要。北京邮电大大学软件学学院郭郭文明2003.06郭文明2003.06.054.2.1.2ORACLE进程Oracle后台进进程有:系统监控((SMON)进程监控进进程(PMON)数据库写进进程(DBWR)日志写进程程(LGWR)调度进程((Dnnn)归档进程((ARCH)检查点(CKPT))恢复进程((RECO)快照进程((SNPn)锁进程(LCKn))并行查询进进程(Pnnn)北京邮电大大学软件学学院郭郭文明2003.06郭文明2003.06.054.2.1.2ORACLE进程系统监控(SystemMonitor,SMON)进程监控(ProcessMonitor,PMON):由于种种原原因,对Oracle数据库库的连接可可能会发生生崩溃、挂挂起或其他他非正常终终止。例如如,网络断断线、用户户提出不合合理的要求求遭到系统统拒绝,操操作系统出出错等等,,都会引起起连接中断断或系统挂挂起,Oracle服务器必必须有能力力去处理由由于各种原原因而引起起的失败。。系统监控和和进程监控控都是自动动解决数据据库系统问问题的后台台进程。北京邮电大大学软件学学院郭郭文明2003.06郭文明2003.06.054.2.1.2ORACLE进程进程监控(PMON)自动清清除中断或或失败的进进程,包括括清除非正正常中断的的进程留下下的孤儿会会话、回滚滚未提交事事务、释放放被断开连连接的进程程占有的锁锁、释放被被失败进程程占有的系系统全局区区(SGA)资源,,它同时监监控服务器器和调度进进程,如果果它们失败败则自动重重启它们。。InstanceSGAPMONPGAarea北京邮电大大学软件学学院郭郭文明2003.06郭文明2003.06.054.2.1.2ORACLE进程系统监控(SMON)作为恢恢复自动实实例的进程程,回滚尚尚未提交的的事务或前前卷重做日日志。SMON也是是管理某些些数据库段段的进程,,收回不再再使用的临临时段空间间,并自动动合并在数数据文件中中相邻的自自由空间块块。SMON仅当当创建表空间间或表时的缺缺省存储参数数pctincrease不是0时时,合并表空空间中的自由由空间。如果果想让SMON自动地处处理这个操作作,至少将pctincrease设置为1。。InstanceSGASMONDatabaseDatafilesControlfilesRedologfiles北京邮电大学学软件学院郭郭文文明2003.06郭文明2003.06.05Database4.2.1.2ORACLE进程程数据库写进程程(DatabaseWriter,DBWR):负负责将缓冲区区中脏的数据据块写入到数数据文件中。。InstanceSGAdatabaseBuffercacheDBWRDatafilesControlfilesRedologfiles北京邮电大学学软件学院郭郭文文明2003.06郭文明2003.06.054.2.1.2ORACLE进程程数据库写进程程(DatabaseWriter,DBWR)DBWR等到到下列情况发发生时,才成成批地读脏列列表,并将在在脏列表中发发现的所有块块刷新写入数数据文件。1)发生一个个检查点。2)脏列表的的长度达到init.ora文件中中DB_BLOCK_WRITE_BATCH参数值的一一半。3)使用的缓缓冲区数量达达到init.ora参参数DB_BLOCK_MAX_SCAN。4)DBWR后台进程发发生超时(大大约每3秒))。北京邮电大学学软件学院郭郭文文明2003.06郭文明2003.06.054.2.1.2ORACLE进程程数据库写进程程(DatabaseWriter,DBWR)在大多数安装装中,有一个个DBWR进进程处理所有有数据库的所所有写入活动动。但是当发发现这个DBWR进程不不能满足数据据库要求时,,可以启动一一个以上的DBWR进程程。init.ora文件中中DB_WRITES参参数可以设置置在启动时创创建的DBWR进程数(缺省值是1)。建议使使用与存储数数据文件的物物理磁盘一样样多的DBWR进程或者者将这个数量量设为与数据据库中数据文文件的数量相相等。北京邮电大学学软件学院郭郭文文明2003.06郭文明2003.06.054.2.1.2ORACLE进程程数据库写进程程(DatabaseWriter,DBWR)另一个参数是是DB_BLOCK_CHECKPOINT_BATCH,设置在每每个检查点DBWR写入入的块的最大大量(参看检检查点进程))。增大该参参数,可以减减少DBWR刷新缓冲区区的次数。但但将这个数值值增得过大,,当DBWR最终刷新缓缓冲区时,可可能产生不能能接受的延迟迟。第三个参数是是DB_BLOCK_CHECKSUM,这是是个布尔参数数,启用这个个参数时,导导致每个数据据库块被写入入时附加一个个校验和值。。当随后读取取该块时,计计算校验和值值并与存储在在数据库中的的数值进行比比较,如果值值不同,将产产生错误。当当查找数据毁毁坏问题时,,这是一个有有价值的参数数,但是在全全部时间都启启用这个值也也会有代价。。北京邮电大学学软件学院郭郭文文明2003.06郭文明2003.06.054.2.1.2ORACLE进程程日志写(LogWriter,LGWR):LGWR是将在系统统全局区中重重做日志缓冲冲区的重做日日志条目写入入到联机重做做日志文件的的进程。LGWR执行行写入操作的的条件是:发发生提交、重重做日志缓冲冲区满度达到到三分之一、、超时(3秒秒)、DBWR进程开始始之前。DatabaseInstanceSGARedologbufferLGWRDBWRDatafilesControlfilesRedologfiles北京邮电大学学软件学院郭郭文文明2003.06郭文明2003.06.054.2.1.2ORACLE进程程日志写(LogWriter,LGWR):直到Oracle在LGWR完成将将重做信息从从重做缓冲区区刷新到联机机重做日志文文件之后,Oracle才认为一个个事务已完成成。在LGWR成功地将将重做日志项项写入联机重重做文件时((并不是改变变数据文件中中的数据时)),将一个成成功码返回给给服务器进程程。用于配置LGWR进程的的选项很少,,大多数的配配置涉及重做做日志缓冲区区和支持该缓缓冲区的内存存结构,而不不是LGWR进程自身。。可以建立多个个LGWR的的I/O口,,以改善向日日志文件的写写入性能,init.ora中LGWR_IO_SLAVES参数决决定。北京邮电大学学软件学院郭郭文文明2003.06郭文明2003.06.054.2.1.2ORACLE进程程日志写(LogWriter,LGWR)::检查点导致LGWR和DBWR。检检查点间隔时时间越短,发发生数据库故故障时需要的的恢复时间越越短,同时减减少了必须执执行每一检查查点所需的工工作。当决定定正确的检查查点间隔时,,必须权衡所所有这些因素素。LOG_CHECKPOINT_INTERVAL参数即即一定数量的的操作系统块块(不是Oracle块块)写入重做做时,引起数数据库中的一一个检查点被被触发。LOG_CHECKPOINT_TIMEOUT参数指定的的时间间隔(以秒为单位位)发生一个个检查点。北京邮电大学学软件学院郭郭文文明2003.06郭文明2003.06.054.2.1.2ORACLE进进程日志写写(LogWriter,LGWR)::另外当当一个个重做做日志志组写写满时时,一一个检检查点点被触触发。。要注注意不不要设设置不不必要要的检检查点点,或或者迫迫使不不需要要的检检查点点发生生。例例如,,如果果一个个重做做日志志组大大小为为3MB,,而LOG_CHECKPOINT_INTERVAL设置置为2.5MB。当当有2.5MB的数数据写写入重重做日日志时时,导导致发发生一一个检检查点点。另另外,,当重重做日日志组组写满满时((仅在在又写写入0.5MB的数数据后后),,发生生另一一个检检查点点。事事实上上,这这两个个检查查点将将相继继发生生。频繁的的检查查点将将浪费费大量量的进进程活活动和和I/O次次数以以执行行相关关的检检查点点。最后一个个参数是是布尔值值LOG_CHECKPOINTS_TO_ALERT。每当当检查点点发生时时,它为为数据库库在alert.log文件件中设置置一个标标记,并并用于试试图指出出确切的的检查点点间隔。。北京邮电电大学软软件学院院郭郭文文明2003.06郭文明2003.06.054.2.1.2ORACLE进程程调度进程程:正如如前面所所提到的的,服务务器进程程既可以以是一个个用户进进程专有有的,也也可以在在多个用用户进程程之间共共享。使使用共享享服务器器要求配配置多线线程服务务器。当当使用共共享服务务器进程程时,至至少必须须存在一一个调度度进程((Dnnn),,在环境境需要时时也可能能有多个个调度进进程。调度进程程将用户户请求传传送到系系统全局局区的请请求队列列,并将将服务器器的响应应信息返返回给正正确的用用户进程程。参数MTS_DISPATCHERS指定定调度进进程使用用的协议议及开始始使用该该协议的的调度进进程的数数量。参数MTS_MAX_DISPATCHERS控控制RDBMS允许的的调度进进程的最最大数量量。北京邮电电大学软软件学院院郭郭文文明2003.06郭文明2003.06.054.2.1.2ORACLE进程程归档进程程(Archiver,ARCH):ARCH负负责将全全部联机机重做日日志复制制到归档档重做日日志文件件。这仅仅在数据据库运行行在归档档模式((ARCHIVELOG)下下才发生生。DatafilesControlfilesRedologfilesArchivedRedologfilesARCH北京邮电电大学软软件学院院郭郭文文明2003.06郭文明2003.06.054.2.1.2ORACLE进程程归档进程程(Archiver,ARCH):当ARCH正在在复制归归档重做做日志时时,没有有其他进进程能够够写入这这个重做做日志。。重做日日志是按按顺序循循环使用用的,如如果数据据库需要要转换重重做日志志,但是是ARCH还正正在按其其顺序复复制下一一个日志志,所有有数据库库的活动动将终止止,直到到ARCH完成成。如果果归档由由于某些些原因不不能完成成复制日日志,它它将等待待直到引引起不能能写入的的错误得得到解决决为止。。在init.ora文文件中ARCHIVE_LOG_START参数数必须设设置为TRUE,当数数据库启启动时,,才会自自动开始始归档。。如果设设置了归归档模式式,但不不自动启启动ARCH,,当所有有联机重重做日志志写满时时,数据据库将会会挂起,,等待你你手工归归档联机机日志。。北京邮电电大学软软件学院院郭郭文文明2003.06郭文明2003.06.054.2.1.2ORACLE进程程检查点进进程(CKPT):CKPT是可选选的后台台进程,,执行LGWR进程通通常会执执行的检检查点任任务———即用当当前版本本信息更更新数据据文件和和控制文文件头。。CHECKPOINT_PROCESS参参数设置置为TRUE可可以启用用CKPT进程程。注意意在Oracle8.x中中,该已已被集成成入RDBMS中并设设置为TRUE。如果果在Oracle8.x的的init文件件中包括括这个参参数,实实例启动动将会失失败。DatabaseInstanceSGARedologbufferLGWRCKPTDBWRDatafilesControlfilesRedologfiles北京邮电电大学软软件学院院郭郭文文明2003.06郭文明2003.06.054.2.1.2ORACLE进程程恢复进程程(RECO):负责责在分布布式数据据库中恢恢复失败败的事务务。分布布式事务务配置数数据库时时(设置置DISTRIBUTED_TRANSACTIONS值大于于0),,RECO会自自动启动动。快照进程程(SNPn):处理理数据库库快照的的自动刷刷新,并并运行预预定的数数据库过过程。参参数JOB_QUEUE_PROCESS设置启启动的快快照进程程数,参参数JOB_QUEUE_INTERVAL决定定快照进进程在被被唤醒以以处理挂挂起的作作业或事事务之前前休眠的的时间(以秒为为单位)。北京邮电电大学软软件学院院郭郭文文明2003.06郭文明2003.06.054.2.1.2ORACLE进程程锁进程(LCKn):在并行行服务器器环境中中,多个个实例安安装在同同一个数数据库上上,锁进进程(LCKn)负责责管理和和协调每每个实例例占有的的锁。并行查询询进程(Pnnn):根据数数据库的的活动和和并行查查询选项项的配置置,Oracle服务务器启动动和停止止查询进进程。这这些进程程涉及并并行索引引的创建建、表的的创建及及查询。。启动的的进程的的数量与与参数PARALLEL_MIN_SERVERS指定定的数量量相同,,但决不不能超过过参数PARALLEL_MAX_SERVERS指定定的进程程数。北京邮电电大学软软件学院院郭郭文文明2003.06郭文明2003.06.054.2.1ORACLE数数据库实实例组成成为更好地地理解前前面讨论论的实例例组件是是如何相相互交互互的,看看一个典典型的事事务在实实例结构构中的移移动。当一个用用户会话话使用SQL*Net驱动程程序连接接到服务务器会话话时,开开始一个个事务。。这个连连接可以以使用它它自己的的一个服服务进程程进行专专用连接接,或通通过调度度进程处处理的一一个共享享连接。。服务器器会话对对传递给给它的SQL语语句与已已经保存存在共享享SQL区中的的语句进进行比较较,如果果在共享享池中发发现有完完全一样样的语句句,使用用该语句句早已存存储的做做过语法法分析的的形式与与执行计计划。如如果在共共享池中中没有发发现匹配配语句,,服务器器进程对对这些语语句进行行语法分分析。北京邮电电大学软软件学院院郭郭文文明2003.06郭文明2003.06.054.2.1ORACLE数数据库实实例组成成接下来,,服务器器会话查查看在数数据库缓缓冲区中中是否已已经存储储了完成成该事务务所必须须的数据据块。如如果在缓缓冲区中中没有,,服务器器会话就就从数据据文件中中读取必必要的数数据,将将它们拷拷贝到缓缓冲区中中。如果果事务是是一个查查询,服服务器会会话将查查询的结结果返回回给用户户进程((执行必必要次数数的数据据块读和和拷贝以以返回所所有数据据)。对一个修修改数据据的事务务,有更更多的步步骤需要要做。例例如,假假设事务务是一个个更新。。在将必必要的数数据块读读入缓冲冲区高速速缓存中中之后,,修改内内存中的的数据块块。修改改的缓存存块标记记为脏的的,并把把它们放放入脏列列表中。。还产生生重做信信息,并并将重做做信息存存储在重重做日志志缓存中中。北京邮电电大学软软件学院院郭郭文文明2003.06郭文明2003.06.054.2.1ORACLE数数据库实实例组成成如果事务务是相对对短期的的,事务务完成,,用户提提交,发发出信号号给LGWR进进程让它它将重做做日志缓缓冲区刷刷新到联联机重做做日志文文件。如如果事务务相对持持续时间间很长和和很复杂杂,下列列事情有有可能发发生:1)产生生的重做做引起重重做日志志缓冲区区写满三三分之一一的空间间,这会会触发LGWR进程刷刷新重做做日志缓缓冲区。。2)放入入脏列表表中的块块数达到到限定的的长度,,这会触触发DBWR进进程将数数据库缓缓冲区所所有脏列列表项刷刷新写入入到数据据文件中中,它反反过来也也使LGWR进进程向磁磁盘刷新新重做日日志缓冲冲区。3)遇到到一个数数据库检检查点,,这将触触发数据据库缓冲冲区高速速缓存和和重做日日志高速速缓存刷刷新。北京邮电电大学软软件学院院郭郭文文明2003.06郭文明2003.06.054.2.1ORACLE数数据库实实例组成成4)可获获得的缓缓冲区高高速缓存存中的自自由缓存存空间下下降到规规定的门门限以下下,这也也会引起起数据库库高速缓缓存缓冲冲区的刷刷新。5)产生生一个不不可恢复复的数据据库错误误,这迫迫使该事事务中断断、回滚滚并向服服务器会会话报告告错误。。当事务正正在处理理向重做做缓存生生成的重重做并刷刷新时,,联机重重做日志志逐渐被被填满。。当前日日志被填填满后,,LGWR进程程开始写写入下一一个日志志组;与与此同时时,归档档进程将将重做日日志复制制到磁盘盘或磁带带。因为为直到所所有重做做日志信信息从重重做缓冲冲区写入入到联机机重做日日志之后后,事务务才被记记录为执执行成功功的,所所以LGWR和和ARCH必须须各自有有能力在在无错误误的情况况下完成成自己的的任务。。北京邮电电大学软软件学院院郭郭文文明2003.06郭文明2003.06.054.2.2ORACLE数数据库实实例创建建通过前面面介绍,,我们知知道ORACLE数数据库服服务器的的启动事事实上是是创建实实例的过过程。打开一一个Oracle数据据库的过过程具体体包括以以下三步步:1)创建建一个Oracle实实例(非非安装阶阶段)2)由实实例安装装数据库库(安装装阶段))3)打开开数据库库(打开开阶段))Oracle实实例在数数据库启启动的非非安装阶阶段创建建。当数数据库经经过非安安装阶段段时,读读取init.ora参数文文件,启启动后台台进程,,初始化化系统全全局区((SGA)。init.ora文件件定义了了实例的的配置,,包括内内存结构构的大小小和启动动后台进进程的数数量和类类型等。。北京邮电电大学软软件学院院郭郭文文明2003.06郭文明2003.06.054.2.2ORACLE数数据库实实例创建建下一阶段段称为安安装阶段段。init.ora文件中中的控制制文件参参数值决决定数据据库的安安装实例例。在安安装阶段段,读取取控制文文件并使使其成为为可访问问的,可可以对控控制文件件内存储储的数据据进行查查询和修修改。最后的阶阶段就是是打开数数据库。。在这一一阶段,,存储在在控制文文件中的的数据库库文件以以排它使使用方式式被实例例锁定,,使数据据库能够够被普通通用户访访问。打打开是数数据库的的正常操操作状态态,在数数据库打打开之前前,只有有DBA能访问问数据库库,且只只能通过过服务器器管理器器对其进进行访问问。北京邮电电大学软软件学院院郭郭文文明2003.06郭文明2003.06.054.2.2ORACLE数数据库实实例创建建Oracle启动进程0开始状态SHUTDOWN1启动实例读参数文件;分配SGA;启动后台进程;打开跟踪文件和警告。NOMOUNT(Startupnomount;)2装载数据库打开控制文件(控制文件的位置在参数文件中约定)。MOUNT(Alterdatabasemount;)3打开数据库打开数据文件;打开日志文件;(数据库包含的文件名及位置信息在控制文件中约定)。OPEN(Alterdatabaseopen;)北京邮电电大学软软件学院院郭郭文文明2003.06郭文明2003.06.054.2.2ORACLE数数据库实实例创建建为了改变变数据库库的操作作状态,,必须拥拥有SYSDBA特权权。当数数据库从从关闭状状态到打打开状态态时,可可以单步步调试数数据库的的每一个个操作状状态,例例如,可可以在服服务器管管理器工工具中执执行STARTUPNOMOUNT命令令,使数数据库处处在非安安装阶段段,接下下来可以以运行ALTERDATABASEMOUNT或者者ALTERDATABASEOPEN命令令以单步步调试到到操作阶阶段。无论是在在何种操操作状态态下,如如果执行行SHUTDOWN命令,,将完全全关闭数数据库。。当关闭闭数据库库时,只只能从当当前运行行状态转转到完全全关闭状状态,数数据库不不能从打打开状态态转到安安装状态态。北京京邮邮电电大大学学软软件件学学院院郭郭文文明明2003.06郭文文明明2003.06.054.2.2ORACLE数数据据库库实实例例创创建建没有有安安装装数数据据库库的的实实例例称称为为空空闲闲的的————它它使使用用内内存存,,但但不不做做任任何何工工作作。。一一个个实实例例只只能能唯唯一一地地与与一一个个数数据据库库连连接接,,而而且且对对一一个个数数据据库库也也只只分分配配一一个个实实例例(使使用用并并行行服服务务器器除除外外)。。启动动数数据据库库命命令令::STARTUP[FORCE][RESTRICT][PFILE=filename][OPEN[RECOVER]|MOUNT|NOMOUNT];;FORCE强强制制关关闭闭数数据据库库,,然然后后正正常常启启动动,,RESTRICT启启动动数数据据库库,,只只允允许许具具有有特特权权的的用用户户访访问问,,RECOVER启启动动数数据据库库同同时时开开始始介介质质恢恢复复,,PFILE说说明明启启动动实实例例使使用用的的参参数数文文件件及及其其位位置置。。北京京邮邮电电大大学学软软件件学学院院郭郭文文明明2003.06郭文文明明2003.06.054.2.2ORACLE数数据据库库实实例例创创建建关闭闭数数据据库库过过程程与与启启动动相相反反,,关关闭闭数数据据文文件件,,关关闭闭日日志志文文件件,,关关闭闭控控制制文文件件,,关关闭闭实实例例并并释释放放资资源源。。关关闭闭数数据据库库命命令令::SHUTDOWN[NORMAL|TRANSACTIONAL|IMMEDIATE|ABORT];;SHUTDOWNABORTIMMEDIATETRANSACTIONALNORMAL允许新的连接NONONONO等待用户结束会话NONONOYES等待事务结束NONOYESYES产生检查点并关闭数据文件NOYESYESYES北京京邮邮电电大大学学软软件件学学院院郭郭文文明明2003.06郭文文明明2003.06.054.2.2ORACLE数数据据库库实实例例创创建建关闭闭数数据据库库的的方方式式中中可可以以看看出出,,对于NORMAL、IMMEDIATE、TRANSACTIONAL的关闭闭数据库方式式,下次启动动数据库时不不需做例程恢恢复;对于ABORT的关闭方方式,下次启启动要做例程程恢复。北京邮电大学学软件学院郭郭文文明2003.06郭文明2003.06.054.2.3ORACLE数据库监监控实例一般情况下,,系统全局区区和后台进程程在没有DBA干预的情情况下运行。。然而,有时时可能会发生生问题,这时时DBA必须须能诊断和修修复发生的问问题,即DBA应当能够够有效地监控控和管理实例例。以下介绍绍的三种方法可以以监控和追踪踪实例及其相相关的结构。使用诊断追踪踪文件管理实实例通过操作系统统追踪管理实实例使用V$表监监控实例结构构北京邮电大学学软件学院郭郭文文明2003.06郭文明2003.06.054.2.3ORACLE数据库监监控实例使用诊断追踪踪文件管理实实例诊断追踪文件件中包含有实实例运行过程程中的事件发发生信息,充充分利用它可可以发现和解解决许多问题题。诊断追踪踪文件有三类类:警告文件件(alertSID.log)、、后台进程跟跟踪文件、用用户跟踪文件件。查找关于实例例的问题最好好的地方是在在进程自己的的追踪文件中中。根据特定定的进程和所所遇到的错误误,这些追踪踪文件被写在在由参数USER_DUMP_DEST或者BACKGROUND_DUMP_DEST所所指定的位置置。北京邮电大学学软件学院郭郭文文明2003.06郭文明2003.06.054.2.3ORACLE数据库监监控实例使用诊断追踪踪文件管理实实例后台进程失败败经常在数据据库的alert.log文件中写写入一项,或或者写到它们们各自的追踪踪文件,当一一个后台进程程被终止或者者非正常中断断一个操作时时,通常产生生一个追踪文文件,包含导导致失败的错错误信息、当当前进程堆栈栈的转储、当当前执行的游游标和与问题题有关的其他他信息。DBA应当收收集这些追踪踪文件,将它它们提供给Oracle全球范围客客户支持顾问问,他们会帮帮助你诊断问问题。北京邮电大学学软件学院郭郭文文明2003.06郭文明2003.06.054.2.3ORACLE数据库监监控实例通过操作系统统追踪管理实实例后台进程也能能通过使用操操作系统命令令进行追踪。。在UNIX环境中,每每一个后台进进程是一个分分立的任务,,可以分立追追踪。通过查查看操作系统统进程的内存存和CPU的的使用(通过过使用sar、ps、vmstat和top等等工具)指明明性能问题和和失控的查询询。有时解决决挂起、中断断服务器进程程或用户进程程的唯一方法法是在操作系系统级中断它它们。但只能能对有十足经经验的用户使使用。北京邮电大学学软件学院郭郭文文明2003.06郭文明2003.06.054.2.3ORACLE数据库监监控实例通过操作系统统追踪管理实实例在NT服务器器环境中,全全部的Oracle实例例在NT操作作系统作为一一个称为服务务的后台进程程实现。各个个后台进程作作为属于这个个服务的线程程实现。使用用与NTOS的PerformanceMonitor工具进行行监控,它监监控许多事情情,包括属于于这个服务的的线程的内存存的消耗和环环境的切换。。详细情况可可查看有关使使用手册。北京邮电大学学软件学院郭郭文文明2003.06郭文明2003.06.054.2.3ORACLE数据库监监控实例使用V$表监监控实例结构构DBA可以使使用许多动态态性能视图显显示实例的信信息。这些视视图对发现当当前数据库实实例的状态和和与实例相关关的故障问题题有很大的价价值。1.监控数据据库的连接所有连接到实实例的用户和和后台进程都都能够使用V$视图被监监控。北京邮电大学学软件学院郭郭文文明2003.06郭文明2003.06.054.2.3ORACLE数据库监监控实例1.监控数据据库的连接V$process视图图显
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年企业与员工劳动协议示范文本
- 2025年策划合作项目合作方解除协议书
- 2025年建筑行业策划合伙人合同样本
- 2025年预防用生物制品项目规划申请报告
- 2025年中等职业技术学校教务主任合同
- 2025年仓储短期租赁策划合同范本
- 2025年公共交通改善合同协议
- 2025年公司员工股权合作合同指南
- 2025年标准融资协调合同
- 2025年医院医师综合雇佣协议
- 2024年安全生产网络知识竞赛题库及答案(共五套)
- 2024年实验小学大队委竞选笔试试题题库
- 学校办公室卫生制度
- 医学生理学智慧树知到答案2024年德州学院
- GB/T 44412-2024船舶与海上技术液化天然气燃料船舶加注规范
- 小学三年级数学上册口算题卡(加换算)
- 小学数学二年级《数图形》练习题
- 机械制造HSE协议书
- 2024-2030年中国静脉血栓栓塞症(VTE)防治行业市场全景监测及投资策略研究报告
- 财务审计服务投标方案(技术方案)
- 2024年国家保密法知识竞赛经典题库及完整答案【必刷】
评论
0/150
提交评论