欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    北京邮电大学软件工程研究生的课程数据库设计开发42.pptx

    • 资源ID:78673784       资源大小:374KB        全文页数:63页
    • 资源格式: PPTX        下载积分:12金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要12金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    北京邮电大学软件工程研究生的课程数据库设计开发42.pptx

    4.2 ORACLE4.2 ORACLE数据库实例数据库实例(shl)(shl)管理管理Oracle服务器就是数据库管理系统(DBMS),由数据库(Oracle database)和实例(Oracle instance)组成。实例是一系列复杂的内存结构和操作系统(co zu x tn)进程,它为Oracle客户提供所期望的不同程度的服务。一个实例只能打开一个数据库,或者说一个数据库被唯一的一个实例装载。4.2.1 实例组成 4.2.2 实例创建 4.2.3 监控实例第一页,共63页。4.2.1 ORACLE4.2.1 ORACLE数据库实例数据库实例(shl)(shl)组成组成实例中每一个进程都有各自的一个内存块,该内存块用于保存私有变量、地址堆栈和其他运行时的信息。进程间使用公共共享区并在公共共享区内(q ni)完成它们的工作。公共共享区是能够在同一时间内被不同程序和不同进程读写的一块内存区。该内存块称为系统全局区(SGA)。因为SGA驻留在一个共享内存段中,所以它经常被称作共享全局区。后台进程就像数据库的手,是直接处理数据库的组件;SGA就像大脑,在必要时间接地调度手处理它们的信息与存储检索。SGA参与发生在数据库中全部的信息和服务器的处理。单用户的Oracle配置(Personal Oracle Lite),不使用多进程执行数据库的功能。相反,所有的数据库功能由一个Oracle进程完成。由于这个原因,单用户也称为单进程Oracle。第二页,共63页。4.2.1 ORACLE4.2.1 ORACLE数据库实例数据库实例(shl)(shl)组成组成ORACLEORACLE实例是指有自己的内存结构和相关的服务器进实例是指有自己的内存结构和相关的服务器进程程(jnchng)(jnchng)及后台进程及后台进程(jnchng)(jnchng)的的DBMSDBMS。4.2.1.1 4.2.1.1 内存结构内存结构 4.2.1.2 4.2.1.2 进程进程(jnchng)(jnchng)实例(shl)SGA Shared pool DatabaseBuffer cache Redo logBuffer cache Library cacheData Dictionary cachePMONSMONDBWRLGWRCKPTOthers内存结构后台进程用户进程服务器进程PGA第三页,共63页。4.2.1.1 ORACLE4.2.1.1 ORACLE內存结构內存结构(jigu)(jigu)ORACLE的内存结构主要有两个内存区域组成:SGA(System Global Area):系统全局区,是ORACLE实例的基础,是一个共享区域,存放最近使用的SQL语句、最近使用的数据、最近使用的数据字典等信息,供各个进程调用。PGA(Program Global Area):程序全局区,该区域是一非共享区域,存放会话(huhu)、排序、游标、主变量等信息,被服务器进程调用,保证谁的请求处理结果给谁,谁的排序给谁,用户声明的、打开的、使用的、关闭的游标是私有的,用户的主变量不被其他用户干扰。第四页,共63页。4.2.1.1 ORACLE4.2.1.1 ORACLE內存结构內存结构(jigu)(jigu)系统全局区:系统全局区是实例的主要部分。它含有数据维护(wih)、SQL语句分析与重做缓存所必须的所有内存结构。系统全局区的数据是共享的,也就是说,多个进程可以在同一时间对SGA中的数据进行访问和修改。所有数据库操作都使用包含在SGA中某点上的结构。当实例被创建时,分配SGA;当实例关闭时,释放SGA。第五页,共63页。4.2.1.1 ORACLE4.2.1.1 ORACLE內存结构內存结构(jigu)(jigu)SGA组成如下:共享池。数据库缓冲区高速缓存。重做日志缓冲区。另外oracle9i还有Java pool,8i有Java虚拟机,解释Java;Java pool是利用数据库技术解释Java.oracle9i的SGA可以通过SGA_MAX_SIZE被动态(dngti)的设置大小,8i不能动态(dngti)设置。第六页,共63页。4.2.1.1 ORACLE4.2.1.1 ORACLE內存结构內存结构(jigu)(jigu)共享池:共享池包括库高速缓存、数据字典(zdin)高速缓存和服务器控制结构(例如数据库字符集)。参见下图 库高速(o s)缓冲 字典高速(o s)缓冲 控制结构共享SQL区专用SQL区永久区运行区第七页,共63页。4.2.1.1 ORACLE4.2.1.1 ORACLE內存结构內存结构(jigu)(jigu)共享池:库高速缓存存储已提交给RDBMS的SQL语句文本、分析过的格式与执行计划,以及已被执行的PL/SQL包头与过程(guchng)等。数据字典高速缓存存储用于分析SQL语句的数据字典行。Oracle服务器用库高速缓存来提高执行SQL语句的性能。当一条SQL语句提交时,服务器首先查找高速缓存,查看相同的语句是否已被提交或缓存过。如果有,Oracle使用存储的语法分析树和执行路径来执行该语句,使用存储代码可以获得明显的性能提高。第八页,共63页。4.2.1.1 ORACLE4.2.1.1 ORACLE內存结构內存结构(jigu)(jigu)共享池:对于使用以前缓存的SQL语句,它必须在所有方面都与缓存版本完全相同,包括标点符号和字母的大小写。库高速缓存包括共享和专用SQL区。共享SQL区包括SQL语句语法分析树和执行路径;专用SQL区存储特定的会话信息,一个用户会话能够一次打开的专用SQL区的数量由init.ora参数OPEN_CURSORS决定。库高速缓存中的专用SQL区可更进一步分为(fn wi)永久区和运行区。永久区中包含合法的信息,并可应用于SQL语句的多个执行中,而运行区中仅包含正在被执行的SQL语句的数据。第九页,共63页。4.2.1.1 ORACLE4.2.1.1 ORACLE內存结构內存结构(jigu)(jigu)共享池:字典高速缓存含有RDBMS引擎分析SQL语句所使用的数据字典信息。在这个区域中含有段信息、安全性、访问权限和在可用的自由存储空间等信息。共享池的大小取决于init.ora文件参数SHARED_POOL_SIZE,它是以字节为单位的。ORACLE 9i可以通过ALTER SYSTEM SET SHARED_POOL_SIZE动态设置。共享区经过长期装卸和卸载数据对象会产生许多碎片,如果在共享池中没有足够的连续空间用来装载目标数据,会产生错误。这个问题可以通过运行SQL命令ALTER SYSTEM FLUSH SHARED_POOL解决。但是如果在数据库操作时,经常遇到共享池错误,就必须(bx)增大共享池。第十页,共63页。4.2.1.1 ORACLE4.2.1.1 ORACLE內存结构內存结构(jigu)(jigu)数据库缓冲区高速缓存:是影响整个数据库系统运行的重要因素之一。数据库缓冲区高速缓存是由与Oracle块相同大小的内存块组成。所有Oracle操作(cozu)的数据在使用前被装入到数据库缓冲区高速缓存中。数据的更新在内存块中完成。Oracle根据最近最少被使用(LRU)列表将数据清出缓冲区高速缓存。LRU列表记录数据块被访问的频繁程度。当服务器在缓冲区中需要更多空间来从磁盘读入一个数据块时,它去访问LRU列表,以确定可以清出哪些块,使用这种方法,保证最频繁使用的块保存在内存中。第十一页,共63页。4.2.1.1 ORACLE4.2.1.1 ORACLE內存结构內存结构(jigu)(jigu)数据库缓冲区高速缓存:被修改过的缓冲块称为脏的,脏列表记录所有在内存中被修改而又尚未写入磁盘中的数据。当Oracle接收到修改数据的请求(qngqi)时,对高速缓存中的块进行数据修改,同时写入重做日志中,然后该块被放入脏的列表中,对这些数据的随后访问从高速缓存中读取改变的数据的新的值。Oracle服务器对更新的一块数据,并不立即更新数据文件中的数据。RDBMS等到一定条件时才将改变的数据刷新写入数据文件(参见数据库写入进程)。第十二页,共63页。4.2.1.1 ORACLE4.2.1.1 ORACLE內存结构內存结构(jigu)(jigu)数据库缓冲区高速缓存:DB_BLOCK_SIZE和DB_BLOCK_BUFFERS是决定缓冲区高速缓存大小的两个初始化参数。DB_BLOCK_SIZE设置Oracle块大小,DB_BLOCK_BUFFERS决定分配给缓冲区高速缓存的块的数量。两参数相乘就可得出(d ch)缓冲区高速缓存的内存总数(以字节为单位)。ORACLE 9i可以通过ALTER SYSTEM SET DB_CACHE_SIZE动态设置。第十三页,共63页。4.2.1.1 ORACLE4.2.1.1 ORACLE內存结构內存结构(jigu)(jigu)重做日志缓冲区:重做日志缓冲区用于在内存中存储未被刷新写入联机重做日志文件的重做信息。它是循环使用的缓冲区,当重做日志缓冲区填满时,将它的内容写入联机重做日志文件。重做日志缓冲区的大小是由LOG_BUFFER初始化参数决定,以字节为单位,决定在内存中保留多少空间缓存重做日志项。如果这个值设置得过低,进程之间相互竞争,LGWR进程读出和写入缓存,有可能会导致性能(xngnng)问题。第十四页,共63页。4.2.1.1 ORACLE4.2.1.1 ORACLE內存结构內存结构(jigu)(jigu)重做日志缓冲区:为强迫重做日志顺序写入,Oracle服务器使用闩控制对缓存的访问(fngwn)。闩是一个Oracle进程对一个内存结构的锁定,一个进程必须持有重做分配闩,才能写入重做日志缓冲区。当一个进程持有分配闩时,其他任何进程都不能使用这个分配闩写入重做日志缓冲区。Oracle服务器使用LOG_SMALL_ENTRY_MAX_SIZE初始化参数限制一次写入的重做的总量。这个参数以字节为单位,其缺省值随操作系统和硬件不同而不同。第十五页,共63页。4.2.1.1 ORACLE4.2.1.1 ORACLE內存结构內存结构(jigu)(jigu)重做日志缓冲区:对具有多个CPU的服务器而言,Oracle服务器不允许使用(shyng)重做分配闩所书写的重做日志项所需空间比参数LOG_SMALL_ENTRY_MAX_SIZE大。相反,进程必须持有一个重做复制闩。可获得的重做复制闩的数量等于LOG_SIMULTANEOUS_COPIES初始化参数的值。LOG_SIMULTANEOUS_COPIES的缺省值是系统中CPU的数量。使用(shyng)重做复制闩,多个进程能同时写入重做日志缓冲区。可以使用(shyng)V$LATCH动态性能视图监控重做分配闩与重做复制闩。第十六页,共63页。4.2.1.2 ORACLE4.2.1.2 ORACLE进程进程(jnchng)(jnchng)ORACLE进程可以理解为一系列执行一定任务、提供不同服务信息的程序。主要有用户(yngh)进程、服务器进程、后台进程三种类型。用户(yngh)进程:当客户机向ORACLE服务器发出一个连接请求时,就产生一个用户(yngh)进程。数据库用户(yngh)操纵数据前,首先要建立一个与数据库服务器的连接(可通过Oracle工具,如SQL*Plus),连接的同时产生用户(yngh)进程,用户(yngh)进程并不直接作用于ORACLE服务器,而是与一个服务器进程进行通信。第十七页,共63页。4.2.1.2 ORACLE4.2.1.2 ORACLE进程进程(jnchng)(jnchng)用户进程:每个用户进程被分配一部分内存区,称为进程全局区(PGA)。当一个用户进程通过专用服务器方式连接数据库时,用户的会话数据、堆栈空间和游标状态信息存储在进程全局区中。用户的会话数据包括安全和资源使用信息;堆栈空间含有为用户会话指定的本地变量;游标状态区包括运行时的游标信息、返回的行和游标返回的代码。如果用户进程通过共享服务器进程方式进行连接,游标和会话信息被存储在系统(xtng)全局区(SGA)中。尽管对整个数据库而言,这并不增加对内存空间的要求,但是它需要一个更大的系统(xtng)全局区来存放这些附加的会话信息。第十八页,共63页。Oracle Server4.2.1.2 ORACLE4.2.1.2 ORACLE进程进程(jnchng)(jnchng)服务器进程:服务器进程接受用户发出的请求,并根据请求与数据库通信,通过这些通信完成用户进程对数据库中数据的处理(chl)要求,同时完成对数据库的连接操作和I/O访问。SGAShared poolDatabase Buffer Redo log Buffer 用户(yngh)进程服务器进程数据库用户建立连接建立会话第十九页,共63页。4.2.1.2 ORACLE4.2.1.2 ORACLE进程进程(jnchng)(jnchng)Oracle后台进程:在任意瞬间,Oracle数据库可以处理(chl)许多行信息、处理(chl)几百个同步用户请求、进行复杂的数据操作,与此同时提供最高水平的性能和数据的完整性。为了完成这些任务,Oracle数据库将一项大的工作分散到多个程序中,其中每个程序的大部分操作都是相互独立的,并扮演一个特定的角色。这些程序称为Oracle后台进程。第二十页,共63页。4.2.1.2 ORACLE4.2.1.2 ORACLE进程进程(jnchng)(jnchng)OracleOracle数据库的物理文件和内存数据库的物理文件和内存(ni cn)(ni cn)结构结构之间的关系由后台进程来维持。之间的关系由后台进程来维持。理解后台进程和它们担负的任务,将有助于分理解后台进程和它们担负的任务,将有助于分析性能问题、指出瓶颈和诊断数据库中的故障析性能问题、指出瓶颈和诊断数据库中的故障点。点。数据库拥有多个后台进程,其数量取决于数据数据库拥有多个后台进程,其数量取决于数据库的配置。每个后台进程创建一个跟踪文件,库的配置。每个后台进程创建一个跟踪文件,在实例操作期间保存跟踪文件。可以设置在实例操作期间保存跟踪文件。可以设置init.orainit.ora文件的文件的BACKGROUND_DUMP_DESTBACKGROUND_DUMP_DEST参数来参数来规定后台进程跟踪文件的位置。排除数据库故规定后台进程跟踪文件的位置。排除数据库故障时,跟踪文件就显得非常重要。障时,跟踪文件就显得非常重要。第二十一页,共63页。4.2.1.2 ORACLE4.2.1.2 ORACLE进程进程(jnchng)(jnchng)Oracle后台进程有:系统监控(SMON)进程监控进程(PMON)数据库写进程(DBWR)日志写进程(LGWR)调度进程(Dnnn)归档进程(ARCH)检查点(CKPT)恢复进程(RECO)快照(kui zho)进程(SNPn)锁进程(LCKn)并行查询进程(Pnnn)第二十二页,共63页。4.2.1.2 ORACLE4.2.1.2 ORACLE进程进程(jnchng)(jnchng)系统监控(System Monitor,SMON)进程(jnchng)监控(Process Monitor,PMON):由于种种原因,对Oracle数据库的连接可能会发生崩溃、挂起或其他非正常终止。例如,网络断线、用户提出不合理的要求遭到系统拒绝,操作系统出错等等,都会引起连接中断或系统挂起,Oracle服务器必须有能力去处理由于各种原因而引起的失败。系统监控和进程(jnchng)监控都是自动解决数据库系统问题的后台进程(jnchng)。第二十三页,共63页。4.2.1.2 ORACLE4.2.1.2 ORACLE进程进程(jnchng)(jnchng)进程监控(PMON)自动清除中断或失败的进程,包括清除非正常中断的进程留下的孤儿会话、回滚未提交事务、释放被断开连接的进程占有的锁、释放被失败进程占有的系统全局区(SGA)资源,它同时监控服务器和调度(diod)进程,如果它们失败则自动重启它们。Instance SGA PMONPGA area第二十四页,共63页。4.2.1.2 ORACLE4.2.1.2 ORACLE进程进程(jnchng)(jnchng)系统监控(SMON)作为恢复自动实例的进程,回滚尚未提交的事务或前卷重做日志。SMON也是管理某些数据库段的进程,收回不再使用的临时段空间(kngjin),并自动合并在数据文件中相邻的自由空间(kngjin)块。SMON仅当创建表空间(kngjin)或表时的缺省存储参数pctincrease不是0时,合并表空间(kngjin)中的自由空间(kngjin)。如果想让SMON自动地处理这个操作,至少将pctincrease设置为1。Instance SGA SMONDatabaseDatafilesControlfilesRedo logfiles第二十五页,共63页。Database4.2.1.2 ORACLE4.2.1.2 ORACLE进程进程(jnchng)(jnchng)数据库写进程(jnchng)(Database Writer,DBWR):负责将缓冲区中脏的数据块写入到数据文件中。Instance SGAdatabase Buffer cache DBWRDatafilesControlfilesRedo logfiles第二十六页,共63页。4.2.1.2 ORACLE4.2.1.2 ORACLE进程进程(jnchng)(jnchng)数据库写进程(Database Writer,DBWR)DBWR等到下列情况发生时,才成批地读脏列表,并将在脏列表中发现的所有块刷新写入数据文件(wnjin)。1)发生一个检查点。2)脏列表的长度达到init.ora文件(wnjin)中DB_BLOCK_WRITE_BATCH参数值的一半。3)使用的缓冲区数量达到init.ora参数DB_BLOCK_MAX_SCAN。4)DBWR后台进程发生超时(大约每3秒)。第二十七页,共63页。4.2.1.2 ORACLE4.2.1.2 ORACLE进程进程(jnchng)(jnchng)数据库写进程(Database Writer,DBWR)在大多数安装中,有一个DBWR进程处理所有数据库的所有写入活动。但是当发现(fxin)这个DBWR进程不能满足数据库要求时,可以启动一个以上的DBWR进程。init.ora文件中DB_WRITES参数可以设置在启动时创建的DBWR进程数(缺省值是1)。建议使用与存储数据文件的物理磁盘一样多的DBWR进程或者将这个数量设为与数据库中数据文件的数量相等。第二十八页,共63页。4.2.1.2 ORACLE4.2.1.2 ORACLE进程进程(jnchng)(jnchng)数据库写进程(Database Writer,DBWR)另一个参数是DB_BLOCK_CHECKPOINT_BATCH,设置在每个检查点DBWR写入的块的最大量(参看检查点进程)。增大该参数,可以减少DBWR刷新缓冲区的次数。但将这个数值增得过大,当DBWR最终刷新缓冲区时,可能产生(chnshng)不能接受的延迟。第三个参数是DB_BLOCK_CHECKSUM,这是个布尔参数,启用这个参数时,导致每个数据库块被写入时附加一个校验和值。当随后读取该块时,计算校验和值并与存储在数据库中的数值进行比较,如果值不同,将产生(chnshng)错误。当查找数据毁坏问题时,这是一个有价值的参数,但是在全部时间都启用这个值也会有代价。第二十九页,共63页。4.2.1.2 ORACLE4.2.1.2 ORACLE进程进程(jnchng)(jnchng)日志写(Log Writer,LGWR):LGWR是将在系统全局区中重做日志缓冲区的重做日志条目写入到联机重做日志文件的进程。LGWR执行写入操作的条件(tiojin)是:发生提交、重做日志缓冲区满度达到三分之一、超时(3秒)、DBWR进程开始之前。DatabaseInstance SGARedo log buffer LGWRDBWRDatafilesControlfilesRedo logfiles第三十页,共63页。4.2.1.2 ORACLE4.2.1.2 ORACLE进程进程(jnchng)(jnchng)日志写(Log Writer,LGWR):直到Oracle在LGWR完成将重做信息从重做缓冲区刷新到联机重做日志文件之后,Oracle才认为一个事务已完成。在LGWR成功地将重做日志项写入联机重做文件时(并不是改变数据文件中的数据时),将一个成功码返回给服务器进程。用于配置LGWR进程的选项很少,大多数的配置涉及重做日志缓冲区和支持该缓冲区的内存结构,而不是LGWR进程自身。可以建立多个LGWR的I/O口,以改善向日志文件的写入性能,init.ora中LGWR_IO_SLAVES参数(cnsh)决定。第三十一页,共63页。4.2.1.2 ORACLE4.2.1.2 ORACLE进程进程(jnchng)(jnchng)日志写(Log Writer,LGWR):检查点导致LGWR和DBWR。检查点间隔时间越短,发生数据库故障时需要的恢复时间越短,同时减少了必须执行每一检查点所需的工作。当决定正确的检查点间隔时,必须权衡所有这些因素。LOG_CHECKPOINT_INTERVAL参数即一定数量的操作系统块(不是Oracle块)写入重做时,引起数据库中的一个检查点被触发。LOG_CHECKPOINT_TIMEOUT参数指定(zhdng)的时间间隔(以秒为单位)发生一个检查点。第三十二页,共63页。4.2.1.2 ORACLE4.2.1.2 ORACLE进程进程(jnchng)(jnchng)日志写(Log Writer,LGWR):另外当一个重做日志组写满时,一个检查点被触发。要注意不要设置不必要的检查点,或者迫使不需要的检查点发生。例如,如果一个重做日志组大小为3MB,而LOG_CHECKPOINT_INTERVAL设置为2.5MB。当有2.5MB的数据写入重做日志时,导致发生一个检查点。另外,当重做日志组写满时(仅在又写入0.5MB的数据后),发生另一个检查点。事实上,这两个检查点将相继发生。频繁的检查点将浪费大量的进程活动(hu dng)和I/O次数以执行相关的检查点。最后一个参数是布尔值LOG_CHECKPOINTS_TO_ALERT。每当检查点发生时,它为数据库在alert.log文件中设置一个标记,并用于试图指出确切的检查点间隔。第三十三页,共63页。4.2.1.2 ORACLE4.2.1.2 ORACLE进程进程(jnchng)(jnchng)调度进程:正如前面(qin mian)所提到的,服务器进程既可以是一个用户进程专有的,也可以在多个用户进程之间共享。使用共享服务器要求配置多线程服务器。当使用共享服务器进程时,至少必须存在一个调度进程(Dnnn),在环境需要时也可能有多个调度进程。调度进程将用户请求传送到系统全局区的请求队列,并将服务器的响应信息返回给正确的用户进程。参数MTS_DISPATCHERS指定调度进程使用的协议及开始使用该协议的调度进程的数量。参数MTS_MAX_DISPATCHERS控制RDBMS允许的调度进程的最大数量。第三十四页,共63页。4.2.1.2 ORACLE4.2.1.2 ORACLE进程进程(jnchng)(jnchng)归档进程(Archiver,ARCH):ARCH负责(fz)将全部联机重做日志复制到归档重做日志文件。这仅在数据库运行在归档模式(ARCHIVELOG)下才发生。DatafilesControlfilesRedo logfilesArchivedRedo logfilesARCH第三十五页,共63页。4.2.1.2 ORACLE4.2.1.2 ORACLE进程进程(jnchng)(jnchng)归档进程(Archiver,ARCH):当ARCH正在复制归档重做日志时,没有其他进程能够写入这个重做日志。重做日志是按顺序循环使用的,如果数据库需要转换重做日志,但是ARCH还正在按其顺序复制下一个日志,所有数据库的活动将终止,直到ARCH完成。如果归档由于某些原因不能完成复制日志,它将等待直到引起不能写入的错误得到解决为止。在init.ora文件中ARCHIVE_LOG_START参数(cnsh)必须设置为TRUE,当数据库启动时,才会自动开始归档。如果设置了归档模式,但不自动启动ARCH,当所有联机重做日志写满时,数据库将会挂起,等待你手工归档联机日志。第三十六页,共63页。4.2.1.2 ORACLE4.2.1.2 ORACLE进程进程(jnchng)(jnchng)检查点进程(CKPT):CKPT是可选的后台进程,执行LGWR进程通常会执行的检查点任务即用当前版本信息更新数据文件和控制文件头。CHECKPOINT_PROCESS参数设置为TRUE可以启用CKPT进程。注意在Oracle 8.x中,该已被集成入RDBMS中并设置为TRUE。如果在Oracle 8.x的init文件中包括这个(zh ge)参数,实例启动将会失败。DatabaseInstance SGARedo log buffer LGWRCKPTDBWRDatafilesControlfilesRedo logfiles第三十七页,共63页。4.2.1.2 ORACLE4.2.1.2 ORACLE进程进程(jnchng)(jnchng)恢复进程(RECO):负责在分布式数据库中恢复失败的事务。分布式事务配置(pizh)数据库时(设置DISTRIBUTED_TRANSACTIONS值大于0),RECO会自动启动。快照进程(SNPn):处理数据库快照的自动刷新,并运行预定的数据库过程。参数JOB_QUEUE_PROCESS设置启动的快照进程数,参数JOB_QUEUE_INTERVAL决定快照进程在被唤醒以处理挂起的作业或事务之前休眠的时间(以秒为单位)。第三十八页,共63页。4.2.1.2 ORACLE4.2.1.2 ORACLE进程进程(jnchng)(jnchng)锁进程(LCKn):在并行服务器环境中,多个实例安装在同一个数据库上,锁进程(LCKn)负责管理和协调每个实例占有的锁。并行查询进程(Pnnn):根据数据库的活动和并行查询选项的配置,Oracle服务器启动和停止(tngzh)查询进程。这些进程涉及并行索引的创建、表的创建及查询。启动的进程的数量与参数PARALLEL_MIN_SERVERS指定的数量相同,但决不能超过参数PARALLEL_MAX_SERVERS指定的进程数。第三十九页,共63页。4.2.1 ORACLE4.2.1 ORACLE数据库实例数据库实例(shl)(shl)组成组成为更好地理解前面讨论的实例组件是如何相互交互的,看一个典型的事务在实例结构中的移动。当一个用户会话使用SQL*Net驱动程序连接到服务器会话时,开始一个事务。这个连接可以使用它自己的一个服务进程进行(jnxng)专用连接,或通过调度进程处理的一个共享连接。服务器会话对传递给它的SQL语句与已经保存在共享SQL区中的语句进行(jnxng)比较,如果在共享池中发现有完全一样的语句,使用该语句早已存储的做过语法分析的形式与执行计划。如果在共享池中没有发现匹配语句,服务器进程对这些语句进行(jnxng)语法分析。第四十页,共63页。4.2.1 ORACLE4.2.1 ORACLE数据库实例数据库实例(shl)(shl)组成组成接下来,服务器会话查看在数据库缓冲区中是否(sh fu)已经存储了完成该事务所必须的数据块。如果在缓冲区中没有,服务器会话就从数据文件中读取必要的数据,将它们拷贝到缓冲区中。如果事务是一个查询,服务器会话将查询的结果返回给用户进程(执行必要次数的数据块读和拷贝以返回所有数据)。对一个修改数据的事务,有更多的步骤需要做。例如,假设事务是一个更新。在将必要的数据块读入缓冲区高速缓存中之后,修改内存中的数据块。修改的缓存块标记为脏的,并把它们放入脏列表中。还产生重做信息,并将重做信息存储在重做日志缓存中。第四十一页,共63页。4.2.1 ORACLE4.2.1 ORACLE数据库实例数据库实例(shl)(shl)组成组成如果事务是相对短期的,事务完成,用户提交,发出信号给LGWR进程让它将重做日志缓冲区刷新到联机重做日志文件。如果事务相对持续时间很长和很复杂,下列事情有可能发生:1)产生的重做引起重做日志缓冲区写满三分之一的空间(kngjin),这会触发LGWR进程刷新重做日志缓冲区。2)放入脏列表中的块数达到限定的长度,这会触发DBWR进程将数据库缓冲区所有脏列表项刷新写入到数据文件中,它反过来也使LGWR进程向磁盘刷新重做日志缓冲区。3)遇到一个数据库检查点,这将触发数据库缓冲区高速缓存和重做日志高速缓存刷新。第四十二页,共63页。4.2.1 ORACLE4.2.1 ORACLE数据库实例数据库实例(shl)(shl)组成组成 4)可获得的缓冲区高速缓存中的自由缓存空间下降到规定的门限以下,这也会引起数据库高速缓存缓冲区的刷新。5)产生一个不可恢复的数据库错误,这迫使该事务中断、回滚并向服务器会话报告错误。当事务正在处理向重做缓存生成的重做并刷新时,联机重做日志逐渐被填满。当前日志被填满后,LGWR进程开始写入下一个日志组;与此同时,归档进程将重做日志复制到磁盘或磁带。因为(yn wi)直到所有重做日志信息从重做缓冲区写入到联机重做日志之后,事务才被记录为执行成功的,所以LGWR和ARCH必须各自有能力在无错误的情况下完成自己的任务。第四十三页,共63页。4.2.2 ORACLE4.2.2 ORACLE数据库实例数据库实例(shl)(shl)创创建建通过前面介绍,我们知道ORACLE数据库服务器的启动事实上是创建实例的过程。打开一个Oracle数据库的过程具体包括以下三步:1)创建一个Oracle实例(非安装阶段)2)由实例安装数据库(安装阶段)3)打开数据库(打开阶段)Oracle实例在数据库启动的非安装阶段创建。当数据库经过非安装阶段时,读取init.ora参数文件,启动后台(huti)进程,初始化系统全局区(SGA)。init.ora文件定义了实例的配置,包括内存结构的大小和启动后台(huti)进程的数量和类型等。第四十四页,共63页。4.2.2 ORACLE4.2.2 ORACLE数据库实例数据库实例(shl)(shl)创建创建下一阶段称为安装阶段。init.ora文件中的控制文件参数值决定数据库的安装实例。在安装阶段,读取控制文件并使其成为可访问的,可以对控制文件内存储的数据进行查询(chxn)和修改。最后的阶段就是打开数据库。在这一阶段,存储在控制文件中的数据库文件以排它使用方式被实例锁定,使数据库能够被普通用户访问。打开是数据库的正常操作状态,在数据库打开之前,只有DBA能访问数据库,且只能通过服务器管理器对其进行访问。第四十五页,共63页。4.2.2 ORACLE4.2.2 ORACLE数据库实例数据库实例(shl)(shl)创创建建Oracle启动进程0 开始状态 SHUTDOWN1 启动实例读参数文件;分配SGA;启动后台进程;打开跟踪文件和警告。NOMOUNT(Start up nomount;)2 装载数据库打开控制文件(控制文件的位置在参数文件中约定)。MOUNT(Alter database mount;)3 打开数据库打开数据文件;打开日志文件;(数据库包含的文件名及位置信息在控制文件中约定)。OPEN(Alter database open;)第四十六页,共63页。4.2.2 ORACLE4.2.2 ORACLE数据库实例数据库实例(shl)(shl)创建创建为了改变(gibin)数据库的操作状态,必须拥有SYSDBA特权。当数据库从关闭状态到打开状态时,可以单步调试数据库的每一个操作状态,例如,可以在服务器管理器工具中执行STARTUP NOMOUNT命令,使数据库处在非安装阶段,接下来可以运行ALTER DATABASE MOUNT或者ALTER DATABASE OPEN命令以单步调试到操作阶段。无论是在何种操作状态下,如果执行SHUT DOWN命令,将完全关闭数据库。当关闭数据库时,只能从当前运行状态转到完全关闭状态,数据库不能从打开状态转到安装状态。第四十七页,共63页。4.2.2 ORACLE4.2.2 ORACLE数据库实例数据库实例(shl)(shl)创建创建没有安装数据库的实例称为空闲的它使用内存,但不做任何工作。一个实例只能唯一地与一个数据库连接,而且对一个数据库也只分配一个实例(使用并行服务器除外)。启动(qdng)数据库命令:STARTUP FORCERESTRICTPFILE=filename OPEN RECOVER|MOUNT|NOMOUNT;FORCE 强制关闭数据库,然后正常启动(qdng),RESTRICT 启动(qdng)数据库,只允许具有特权的用户访问,RECOVER 启动(qdng)数据库同时开始介质恢复,PFILE 说明启动(qdng)实例使用的参数文件及其位置。第四十八页,共63页。4.2.2 ORACLE4.2.2 ORACLE数据库实例数据库实例(shl)(shl)创建创建关闭数据库过程与启动相反,关闭数据文件,关闭日志文件,关闭控制文件,关闭实例并释放资源(zyun)。关闭数据库命令:SHUTDOWN NORMAL|TRANSACTIONAL|IMMEDIATE|ABORT;SHUTDOWNABORTIMMEDIATETRANSACTIONALNORMAL允许新的连接NONONONO等待用户结束会话NONONOYES等待事务结束NONOYESYES产生检查点并关闭数据文件NOYESYESYES第四十九页,共63页。4.2.2 ORACLE4.2.2 ORACLE数据库实例数据库实例(shl)(shl)创建创建关闭数据库的方式(fngsh)中可以看出,对于NORMAL、IMMEDIATE、TRANSACTIONAL的关闭数据库方式(fngsh),下次启动数据库时不需做例程恢复;对于ABORT的关闭方式(fngsh),下次启动要做例程恢复。第五十页,共63页。4.2.3 ORACLE4.2.3 ORACLE数据库监控数据库监控(jin kn)(jin kn)实例实例一般情况下,系统全局区和后台进程在没有DBA干预的情况下运行。然而,有时可能会发生问题,这时DBA必须能诊断和修复发生的问题,即DBA应当能够有效地监控和管理实例。以下介绍的三种方法(fngf)可以监控和追踪实例及其相关的结构。使用诊断追踪文件管理实例通过操作系统追踪管理实例使用V$表监控实例结构第五十一页,共63页。4.2.3 ORACLE4.2.3 ORACLE数据库监控数据库监控(jin kn)(jin kn)实例实例使用诊断追踪文件管理实例 诊断追踪文件中包含有实例运行过程中的事件发生信息,充分利用它可以发现和解决许多问题。诊断追踪文件有三类:警告文件(alertSID.log)、后台进程(jnchng)跟踪文件、用户跟踪文件。查找关于实例的问题最好的地方是在进程(jnchng)自己的追踪文件中。根据特定的进程(jnchng)和所遇到的错误,这些追踪文件被写在由参数USER_DUMP_DEST或者BACKGROUND_DUMP_DEST所指定的位置。第五十二页,共63页。4.2.3 ORACLE4.2.3 ORACLE数据库监控数据库监控(jin kn)(jin kn)实例实例使用诊断追踪文件管理实例 后台进程失败经常在数据库的alert.log文件中写入一项,或者写到它们各自的追踪文件,当一个后台进程被终止或者非正常中断一个操作时,通常产生一个追踪文件,包含导致失败的错误信息、当前进程堆栈的转储、当前执行的游标

    注意事项

    本文(北京邮电大学软件工程研究生的课程数据库设计开发42.pptx)为本站会员(知****量)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

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

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

    收起
    展开