数据库设计与开发--ORACLE数据库实例管理35944.pptx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《数据库设计与开发--ORACLE数据库实例管理35944.pptx》由会员分享,可在线阅读,更多相关《数据库设计与开发--ORACLE数据库实例管理35944.pptx(63页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、4.2 ORACLE数据库实例管理 Oracle服务器就是数据库管理系统(DBMS),由数据库(Oracle database)和实例(Oracle instance)组成。实例是一系列复杂的内存结构和操作系统进程,它为Oracle客户提供所期望的不同程度的服务。一个实例只能打开一个数据库,或者说一个数据库被唯一的一个实例装载。4.2.1 实例组成 4.2.2 实例创建 4.2.3 监控实例北京邮电大学软件学院 郭文明 2003.06郭文明 2003.06.054.2.1 ORACLE数据库实例组成 实例中每一个进程都有各自的一个内存块,该内存块用于保存私有变量、地址堆栈和其他运行时的信息。进
2、程间使用公共共享区并在公共共享区内完成它们的工作。公共共享区是能够在同一时间内被不同程序和不同进程读写的一块内存区。该内存块称为系统全局区(SGA)。因为SGA驻留在一个共享内存段中,所以它经常被称作共享全局区。后台进程就像数据库的手,是直接处理数据库的组件;SGA就像大脑,在必要时间接地调度手处理它们的信息与存储检索。SGA参与发生在数据库中全部的信息和服务器的处理。单用户的Oracle配置(Personal Oracle Lite),不使用多进程执行数据库的功能。相反,所有的数据库功能由一个Oracle进程完成。由于这个原因,单用户也称为单进程Oracle。北京邮电大学软件学院 郭文明 2
3、003.06郭文明 2003.06.054.2.1 ORACLE数据库实例组成 ORACLE实例是指有自己的内存结构和相关的服务器进程及后台进程的DBMS。4.2.1.1 内存结构 4.2.1.2 进程 实例 SGA Shared pool DatabaseBuffer cache Redo logBuffer cache Library cacheData Dictionary cachePMON SMON DBWR LGWR CKPT Others内存结构后台进程用户进程服务器进程PGA北京邮电大学软件学院 郭文明 2003.06郭文明 2003.06.054.2.1.1 ORACLE內存
4、结构 ORACLE的内存结构主要有两个内存区域组成:SGA(System Global Area):系统全局区,是ORACLE实例的基础,是一个共享区域,存放最近使用的SQL语句、最近使用的数据、最近使用的数据字典等信息,供各个进程调用。PGA(Program Global Area):程序全局区,该区域是一非共享区域,存放会话、排序、游标、主变量等信息,被服务器进程调用,保证谁的请求处理结果给谁,谁的排序给谁,用户声明的、打开的、使用的、关闭的游标是私有的,用户的主变量不被其他用户干扰。北京邮电大学软件学院 郭文明 2003.06郭文明 2003.06.054.2.1.1 ORACLE內存结
5、构 系统全局区:系统全局区是实例的主要部分。它含有数据维护、SQL语句分析与重做缓存所必须的所有内存结构。系统全局区的数据是共享的,也就是说,多个进程可以在同一时间对SGA中的数据进行访问和修改。所有数据库操作都使用包含在SGA中某点上的结构。当实例被创建时,分配SGA;当实例关闭时,释放SGA。北京邮电大学软件学院 郭文明 2003.06郭文明 2003.06.054.2.1.1 ORACLE內存结构 SGA组成如下:共享池。数据库缓冲区高速缓存。重做日志缓冲区。另外oracle9i还有Java pool,8i有Java虚拟机,解释Java;Java pool是利用数据库技术解释Java.o
6、racle9i的SGA可以通过SGA_MAX_SIZE被动态的设置大小,8i不能动态设置。北京邮电大学软件学院 郭文明 2003.06郭文明 2003.06.054.2.1.1 ORACLE內存结构共享池:共享池包括库高速缓存、数据字典高速缓存和服务器控制结构(例如数据库字符集)。参见下图 库高速缓冲 字典高速缓冲 控制结构共享SQL区专用SQL区永久区 运行区北京邮电大学软件学院 郭文明 2003.06郭文明 2003.06.054.2.1.1 ORACLE內存结构共享池:库高速缓存存储已提交给RDBMS的SQL语句文本、分析过的格式与执行计划,以及已被执行的PL/SQL包头与过程等。数据字
7、典高速缓存存储用于分析SQL语句的数据字典行。Oracle服务器用库高速缓存来提高执行SQL语句的性能。当一条SQL语句提交时,服务器首先查找高速缓存,查看相同的语句是否已被提交或缓存过。如果有,Oracle使用存储的语法分析树和执行路径来执行该语句,使用存储代码可以获得明显的性能提高。北京邮电大学软件学院 郭文明 2003.06郭文明 2003.06.054.2.1.1 ORACLE內存结构共享池:对于使用以前缓存的SQL语句,它必须在所有方面都与缓存版本完全相同,包括标点符号和字母的大小写。库高速缓存包括共享和专用SQL区。共享SQL区包括SQL语句语法分析树和执行路径;专用SQL区存储特
8、定的会话信息,一个用户会话能够一次打开的专用SQL区的数量由init.ora参数OPEN_CURSORS决定。库高速缓存中的专用SQL区可更进一步分为永久区和运行区。永久区中包含合法的信息,并可应用于SQL语句的多个执行中,而运行区中仅包含正在被执行的SQL语句的数据。北京邮电大学软件学院 郭文明 2003.06郭文明 2003.06.054.2.1.1 ORACLE內存结构共享池:字典高速缓存含有RDBMS引擎分析SQL语句所使用的数据字典信息。在这个区域中含有段信息、安全性、访问权限和在可用的自由存储空间等信息。共享池的大小取决于init.ora文件参数SHARED_POOL_SIZE,它
9、是以字节为单位的。ORACLE 9i可以通过ALTER SYSTEM SET SHARED_POOL_SIZE动态设置。共享区经过长期装卸和卸载数据对象会产生许多碎片,如果在共享池中没有足够的连续空间用来装载目标数据,会产生错误。这个问题可以通过运行SQL命令ALTER SYSTEM FLUSH SHARED_POOL解决。但是如果在数据库操作时,经常遇到共享池错误,就必须增大共享池。北京邮电大学软件学院 郭文明 2003.06郭文明 2003.06.054.2.1.1 ORACLE內存结构数据库缓冲区高速缓存:是影响整个数据库系统运行的重要因素之一。数据库缓冲区高速缓存是由与Oracle块相
10、同大小的内存块组成。所有Oracle操作的数据在使用前被装入到数据库缓冲区高速缓存中。数据的更新在内存块中完成。Oracle根据最近最少被使用(LRU)列表将数据清出缓冲区高速缓存。LRU列表记录数据块被访问的频繁程度。当服务器在缓冲区中需要更多空间来从磁盘读入一个数据块时,它去访问LRU列表,以确定可以清出哪些块,使用这种方法,保证最频繁使用的块保存在内存中。北京邮电大学软件学院 郭文明 2003.06郭文明 2003.06.054.2.1.1 ORACLE內存结构数据库缓冲区高速缓存:被修改过的缓冲块称为脏的,脏列表记录所有在内存中被修改而又尚未写入磁盘中的数据。当Oracle接收到修改数
11、据的请求时,对高速缓存中的块进行数据修改,同时写入重做日志中,然后该块被放入脏的列表中,对这些数据的随后访问从高速缓存中读取改变的数据的新的值。Oracle服务器对更新的一块数据,并不立即更新数据文件中的数据。RDBMS等到一定条件时才将改变的数据刷新写入数据文件(参见数据库写入进程)。北京邮电大学软件学院 郭文明 2003.06郭文明 2003.06.054.2.1.1 ORACLE內存结构数据库缓冲区高速缓存:DB_BLOCK_SIZE和DB_BLOCK_BUFFERS是决定缓冲区高速缓存大小的两个初始化参数。DB_BLOCK_SIZE设置Oracle块大小,DB_BLOCK_BUFFER
12、S决定分配给缓冲区高速缓存的块的数量。两参数相乘就可得出缓冲区高速缓存的内存总数(以字节为单位)。ORACLE 9i可以通过ALTER SYSTEM SET DB_CACHE_SIZE动态设置。北京邮电大学软件学院 郭文明 2003.06郭文明 2003.06.054.2.1.1 ORACLE內存结构重做日志缓冲区:重做日志缓冲区用于在内存中存储未被刷新写入联机重做日志文件的重做信息。它是循环使用的缓冲区,当重做日志缓冲区填满时,将它的内容写入联机重做日志文件。重做日志缓冲区的大小是由LOG_BUFFER初始化参数决定,以字节为单位,决定在内存中保留多少空间缓存重做日志项。如果这个值设置得过低
13、,进程之间相互竞争,LGWR进程读出和写入缓存,有可能会导致性能问题。北京邮电大学软件学院 郭文明 2003.06郭文明 2003.06.054.2.1.1 ORACLE內存结构重做日志缓冲区:为强迫重做日志顺序写入,Oracle服务器使用闩控制对缓存的访问。闩是一个Oracle进程对一个内存结构的锁定,一个进程必须持有重做分配闩,才能写入重做日志缓冲区。当一个进程持有分配闩时,其他任何进程都不能使用这个分配闩写入重做日志缓冲区。Oracle服务器使用LOG_SMALL_ENTRY_MAX_SIZE初始化参数限制一次写入的重做的总量。这个参数以字节为单位,其缺省值随操作系统和硬件不同而不同。北
14、京邮电大学软件学院 郭文明 2003.06郭文明 2003.06.054.2.1.1 ORACLE內存结构重做日志缓冲区:对具有多个CPU的服务器而言,Oracle服务器不允许使用重做分配闩所书写的重做日志项所需空间比参数LOG_SMALL_ENTRY_MAX_SIZE大。相反,进程必须持有一个重做复制闩。可获得的重做复制闩的数量等于LOG_SIMULTANEOUS_COPIES初始化参数的值。LOG_SIMULTANEOUS_COPIES的缺省值是系统中CPU的数量。使用重做复制闩,多个进程能同时写入重做日志缓冲区。可以使用V$LATCH动态性能视图监控重做分配闩与重做复制闩。北京邮电大学软
15、件学院 郭文明 2003.06郭文明 2003.06.054.2.1.2 ORACLE进程 ORACLE进程可以理解为一系列执行一定任务、提供不同服务信息的程序。主要有用户进程、服务器进程、后台进程三种类型。用户进程:当客户机向ORACLE服务器发出一个连接请求时,就产生一个用户进程。数据库用户操纵数据前,首先要建立一个与数据库服务器的连接(可通过Oracle工具,如SQL*Plus),连接的同时产生用户进程,用户进程并不直接作用于ORACLE服务器,而是与一个服务器进程进行通信。北京邮电大学软件学院 郭文明 2003.06郭文明 2003.06.054.2.1.2 ORACLE进程 用户进程
16、:每个用户进程被分配一部分内存区,称为进程全局区(PGA)。当一个用户进程通过专用服务器方式连接数据库时,用户的会话数据、堆栈空间和游标状态信息存储在进程全局区中。用户的会话数据包括安全和资源使用信息;堆栈空间含有为用户会话指定的本地变量;游标状态区包括运行时的游标信息、返回的行和游标返回的代码。如果用户进程通过共享服务器进程方式进行连接,游标和会话信息被存储在系统全局区(SGA)中。尽管对整个数据库而言,这并不增加对内存空间的要求,但是它需要一个更大的系统全局区来存放这些附加的会话信息。北京邮电大学软件学院 郭文明 2003.06郭文明 2003.06.05Oracle Server4.2.
17、1.2 ORACLE进程 服务器进程:服务器进程接受用户发出的请求,并根据请求与数据库通信,通过这些通信完成用户进程对数据库中数据的处理要求,同时完成对数据库的连接操作和I/O访问。SGAShared poolDatabase Buffer Redo log Buffer 用户进程服务器进程数据库用户建立连接建立会话北京邮电大学软件学院 郭文明 2003.06郭文明 2003.06.054.2.1.2 ORACLE进程 Oracle后台进程:在任意瞬间,Oracle数据库可以处理许多行信息、处理几百个同步用户请求、进行复杂的数据操作,与此同时提供最高水平的性能和数据的完整性。为了完成这些任务,
18、Oracle数据库将一项大的工作分散到多个程序中,其中每个程序的大部分操作都是相互独立的,并扮演一个特定的角色。这些程序称为Oracle后台进程。北京邮电大学软件学院 郭文明 2003.06郭文明 2003.06.054.2.1.2 ORACLE进程 Oracle数据库的物理文件和内存结构之间的关系由后台进程来维持。理解后台进程和它们担负的任务,将有助于分析性能问题、指出瓶颈和诊断数据库中的故障点。数据库拥有多个后台进程,其数量取决于数据库的配置。每个后台进程创建一个跟踪文件,在实例操作期间保存跟踪文件。可以设置init.ora文件的BACKGROUND_DUMP_DEST参数来规定后台进程跟
19、踪文件的位置。排除数据库故障时,跟踪文件就显得非常重要。北京邮电大学软件学院 郭文明 2003.06郭文明 2003.06.054.2.1.2 ORACLE进程 Oracle后台进程有:系统监控(SMON)进程监控进程(PMON)数据库写进程(DBWR)日志写进程(LGWR)调度进程(Dnnn)归档进程(ARCH)检查点(CKPT)恢复进程(RECO)快照进程(SNPn)锁进程(LCKn)并行查询进程(Pnnn)北京邮电大学软件学院 郭文明 2003.06郭文明 2003.06.054.2.1.2 ORACLE进程系统监控(System Monitor,SMON)进程监控(Process Mo
20、nitor,PMON):由于种种原因,对Oracle数据库的连接可能会发生崩溃、挂起或其他非正常终止。例如,网络断线、用户提出不合理的要求遭到系统拒绝,操作系统出错等等,都会引起连接中断或系统挂起,Oracle服务器必须有能力去处理由于各种原因而引起的失败。系统监控和进程监控都是自动解决数据库系统问题的后台进程。北京邮电大学软件学院 郭文明 2003.06郭文明 2003.06.054.2.1.2 ORACLE进程进程监控(PMON)自动清除中断或失败的进程,包括清除非正常中断的进程留下的孤儿会话、回滚未提交事务、释放被断开连接的进程占有的锁、释放被失败进程占有的系统全局区(SGA)资源,它同
21、时监控服务器和调度进程,如果它们失败则自动重启它们。Instance SGA PMONPGA area北京邮电大学软件学院 郭文明 2003.06郭文明 2003.06.054.2.1.2 ORACLE进程系统监控(SMON)作为恢复自动实例的进程,回滚尚未提交的事务或前卷重做日志。SMON也是管理某些数据库段的进程,收回不再使用的临时段空间,并自动合并在数据文件中相邻的自由空间块。SMON仅当创建表空间或表时的缺省存储参数pctincrease不是0时,合并表空间中的自由空间。如果想让SMON自动地处理这个操作,至少将pctincrease设置为1。Instance SGA SMONData
22、baseDatafilesControlfilesRedo logfiles北京邮电大学软件学院 郭文明 2003.06郭文明 2003.06.05Database4.2.1.2 ORACLE进程数据库写进程(Database Writer,DBWR):负责将缓冲区中脏的数据块写入到数据文件中。Instance SGAdatabase Buffer cache DBWRDatafilesControlfilesRedo logfiles北京邮电大学软件学院 郭文明 2003.06郭文明 2003.06.054.2.1.2 ORACLE进程数据库写进程(Database Writer,DBWR)
23、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.2 ORACLE进程数据库写进程(Database Writer,DBWR)在大多数安装中,有一个DBWR进程处理所有数据库的所有写入活动。但是当发现这个DBWR进程不能满足数据库要求时
24、,可以启动一个以上的DBWR进程。init.ora文件中DB_WRITES参数可以设置在启动时创建的DBWR进程数(缺省值是1)。建议使用与存储数据文件的物理磁盘一样多的DBWR进程或者将这个数量设为与数据库中数据文件的数量相等。北京邮电大学软件学院 郭文明 2003.06郭文明 2003.06.054.2.1.2 ORACLE进程数据库写进程(Database Writer,DBWR)另一个参数是DB_BLOCK_CHECKPOINT_BATCH,设置在每个检查点DBWR写入的块的最大量(参看检查点进程)。增大该参数,可以减少DBWR刷新缓冲区的次数。但将这个数值增得过大,当DBWR最终刷新
25、缓冲区时,可能产生不能接受的延迟。第三个参数是DB_BLOCK_CHECKSUM,这是个布尔参数,启用这个参数时,导致每个数据库块被写入时附加一个校验和值。当随后读取该块时,计算校验和值并与存储在数据库中的数值进行比较,如果值不同,将产生错误。当查找数据毁坏问题时,这是一个有价值的参数,但是在全部时间都启用这个值也会有代价。北京邮电大学软件学院 郭文明 2003.06郭文明 2003.06.054.2.1.2 ORACLE进程日志写(Log Writer,LGWR):LGWR是将在系统全局区中重做日志缓冲区的重做日志条目写入到联机重做日志文件的进程。LGWR执行写入操作的条件是:发生提交、重做
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 设计 开发 ORACLE 实例 管理 35944
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内