ORACLE数据库管理基础_第1页
ORACLE数据库管理基础_第2页
ORACLE数据库管理基础_第3页
ORACLE数据库管理基础_第4页
ORACLE数据库管理基础_第5页
已阅读5页,还剩71页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

ORACLE数据库管理基础认真就是能力,细心就是优势!Jerry序数据库管理员是一个或一组全面负责管理和控制数据库系统的人员。

简称:DBA(DataBaseAdministrator)ORACLE数据库管理基础了解Oracle体系结构中的各种组件启动和关闭Oracle数据库创建可操作的数据库管理Oracle控制文件、重做日志文件、数据文件、表空间、段、区和块管理用户、权限和资源使用“全球化支持”功能什么是Oracle9i企业版?Oracle9i企业版是一种可伸缩且易于管理的对象关系数据库。本课程就最基本的企业版的管理进行了探讨。但是,下列选件还提供了其它功能。•分区(Partitioning):提供了一些可用于执行大型、可伸缩的应用程序的实用工具。通过它,您可以在比基本企业版中更低的粒度级别上控制表和索引•实时应用集群(RealApplicationClusters):改善数据库的可伸缩性和可用性,这是通过允许Oracle软件的多个副本访问单个数据库来实现的•OracleEnterpriseManager工具包:构建在OracleEnterpriseManager的基础上。OracleEnterpriseManager的诊断包(DiagnosticsPack)、优化包(TuningPack)和更改管理包(ChangeManagementPack)均是附件,可以为DBA提供一整套工具,用来对Oracle环境进行高级诊断、监视、优化以及管理更改。•高级安全(AdvancedSecurity):使用加密和数据完整性检查来提供客户机-服务器和服务器-服务器的网络安全,同时可使用第三方安全服务来支持增强的用户验证服务。数据库管理员的任务•计划和创建数据库•管理数据库可用性•管理物理结构和逻辑结构•根据设计管理存储•管理安全•网络管理•备份和恢复•数据库优化体系结构概述物理结构

数据文件、日志文件、控制文件、参数文件系统全局区(SystemGlobalArea)

共享池、数据缓冲区、日志缓冲区进程

用户进程、服务器进程、后台进程口令文件主要组成部分简图实例SGA重做日志缓冲区共享池数据字典缓冲区库缓冲区DBWRSMONPMONCKPTLGWROthers用户进程服务器进程PGA控制文件数据文件数据库数据库缓冲区重做日志文件Java池大池参数文件归档日志文件•Oracle服务器:Oracle服务器中包含多种文件结构、进程结构和内存结构;但是,处理SQL语句时,并非所有这些结构都会用到。某些结构用于提高数据库的性能,确保该数据库在遇到软件或硬件错误时可以恢复,或者执行维护该数据库所需的其它任务。Oracle服务器包括一个Oracle例程和一个Oracle数据库。•Oracle例程:Oracle例程是后台进程和内存结构的组合。只有启动例程后,才能访问数据库中的数据。每次启动例程时,会分配系统全局区(SGA)并启动Oracle后台进程。后台进程代表调用进程执行各种功能。它们把为每个用户运行的多个Oracle程序所处理的功能统一起来。后台进程执行输入/输出(I/O),并监视其它Oracle进程来提高并行性,从而使性能和可靠性更加优越。基本组件概览•Oracle数据库:Oracle数据库包含操作系统文件(也称为数据库文件),这些文件为数据库信息提供了实际的物理存储。数据库文件用于确保数据一致性并能在例程失败时得以恢复。•其它关键文件:非数据库文件用于配置例程、验证特权用户以及在磁盘出现故障时恢复数据库。•用户进程和服务器进程:执行SQL语句时,用户进程和服务器进程是其中涉及的主要进程;但是,其它进程也会有助于服务器完成SQL语句的处理。•其它进程:还有很多供其它选件使用的其它进程,例如,高级排队(AdvancedQueuing)、实时应用集群(RealApplicationClusters)、共享服务器(SharedServer)和高级复制(AdvancedReplication)等基本组件概览Oracle服务器端Oracle服务器端:是一个提供开放的、全面的、完整的信息管理的数据库管理系统由Oracle实例和Oracle数据库组成Oracle服务器Oracle服务器数据库服务务器是信息息管理的关关键。一般般来说,服服务器必须须可靠地管管理多用户户环境中的的大量数据,以便便多个用户户能够同时时访问同一一数据。所所有这一切切都必须在在保证高性性能的同时时进行。数据库服务务器还必须须防止未经经授权的访访问,并为为故障恢复复提供有效效的解决方方案。实例(INSTANCE)是存取和控控制数据库库的软件机机制,它由由系统全局局(SystemGlobalArea,,简称SGA)和后后台进程组组成由系统全局局区(SGA)内内存结构和和用于管理理数据库的的后台进程程组成。例例程是通过过使用特定于于每个操作作系统的方方法来标识识的。例程程一次只能能打开和使使用一个数数据库。Oracle实例例Oracle实例例:提供对Oracle数据据库的访问问通常打开一一个,只打打开一个数数据库由内存空间间和后台进进程组成后台进程内存结构实例SGA重做日志缓缓冲区共享池数据字典缓缓冲区库缓冲区DBWRSMONPMONCKPTLGWROthers数据库或重重区Java池池大池建立连接和和创建会话话连接到Oracle实例例:建立一个用用户连接创建一个会会话会话被创建建用户用户进程服务器进程程连接已建立立Oracle服务器建立连接和和创建会话话用户只有在在连接到例例程后,才才能向Oracle数据库库提交SQL语句句。•用户启启动SQL*Plus之类类的工具,,或者运行行使用OracleForms之之类的工具具开发的应应用程序。。该应用程程序或工具具将作为用用户进程来来执行。•在最基基本的配置置中,用户户登录到Oracle服务务器时,运运行Oracle服服务器的的计算机上上就会创建建一个进程程。这个进进程称为服服务器进程程。服务器器进程代表表客户机上上运行的用用户进程与与Oracle例例程进行通通信。服务务器进程代代表用户执执行SQL语句。。连接连接是用户户进程和Oracle服务务器之间的的通信路径径。数据库库用户可以以采用以下下三种方式式之一连接接到Oracle服服务器::•用户登登录到运行行Oracle例例程的操作作系统上,,然后启动动访问该系系统中的数数据库的应应用程序或或工具。通通信路径是是使用主机机操作系统统上的进程程间通信机机制建立的的。•用户在在本地计算算机上启动动应用程序序或工具,,然后通过过网络连接接到运行Oracle例程程的计算机机。在这个个称为客户户机/服务务器的配置置中,用户户和Oracle服服务器使使用网络软软件进行通通信。•在三层层连接中,,用户计算算机通过网网络与应用用程序服务务器或网络络服务器进进行通信,,这些服务务器又通过过网络与运运行Oracle例例程的计计算机连接接。例如,,用户在网网络中的一一台计算机机上运行浏浏览器来使使用位于NT服务务器上的应应用程序,,该NT服服务器又又从UNIX主机机上运行的的Oracle数数据库中检检索数据。。会话会话是用户户与Oracle服服务器的的一种特定定连接。会会话在Oracle服务器器验证用户户后启动,,当用户退退出或出现现异常终止止时会话结结束。对某个具体体的数据库库用户来说说,如果该该用户从很很多工具、、应用程序序或者终端端同时登录录,则可能能有很多并并发会话。。除了一些些专用的数数据库管理理工具以外外,启动数数据库会话话还要求Oracle服务务器可供使使用。注:在此处处所讲的连连接类型中中,用户进进程和服务务器进程之之间存在一一对一的通通信关系,,这称作专专用服务器器连接。使使用共享服服务器(SharedServer)配置置时,多个个用户进程程可以共享享服务器进进程。Oracle数据据库Oracle数据据库:是所有数据据的集合由三种类型型的文件组组成口令文件参数文件归档日志文件控制文件数据文件重做日志文件Oracle数据库Oracle数据库Oracle数据据库具有逻逻辑结构和和物理结构构。数据据库的物理理结构是数数据库中操操作系统文文件的集合合。Oracle数据据库包含以以下三类文文件:•数据文文件,包含含数据库中中的实际数数据•重做日日志文件,,包含数据据库的更改改记录,可可以在出现现故障时恢恢复数据•控制文文件,包含含维护和验验证数据库库完整性所所需的信息息Oracle数据库Oracle服务务器还使用用一些其它它文件,这这些文件并并不是数据据库的一部部分:•参数文文件,用来来定义Oracle例程的的特性。例例如,它包包含调整SGA中中一些内存存结构大小小的参数。。•口令文文件验证哪哪些用户有有权启动和和关闭Oracle例程。。•归档的的重做日志志文件是重重做日志文文件的脱机机副本,当当必须从介介质失败中中进行恢复复时可能会会需要这些些副本。物理结构物理结构包包含三种类类型的文件件:控制文件数据文件联机重做日日志控制文件数据文件联机重做日志内存结构Oracle的内存存包括两个个内存区域域:系统全局区区(SGA):是是Oracle实实例的基基本组成部部分,随实实例的启动动而分配程序全局区区(PGA):服服务器进进程启动时时分配系统全局区区SGA由由以下几种种内存结构构组成:共享池(SharedPool)数据库缓冲冲区(DatabaseBufferCache))重做日志缓缓冲区(RedoLogBuffer)其它结构SGA中的的两种可选选的附加内内存结构:大池(LargePool)Java池池(JavaPool)系统全局区区(SGA)SGA也也称作共享享全局区,,用于存储储数据库进进程共享的的数据库信信息。它包包含有关Oracle服务务器的数据据和控制信信息,在Oracle服务务器所在计计算机的虚虚拟内存中中分配。要查看SGA内存存的分配情情况,可以以使用下面面的语句::SQL>showsgaTotalSystemGlobalArea131144544bytesFixedSize453472bytesVariableSize113246208bytesDatabaseBuffers16777216bytesRedoBuffers667648bytes系统全局区区SGA是ORACLE系统统为实例分分配的一组组共享缓冲冲存储区,,用于存放放数据库数数据和控制制信息,以以实现对数数据库数据据的管理和和操作系统全局区区动态分配的的参数SGA_MAX_SIZE决定其大小小SGA中中的存储器器由被称作作细粒的存存储单元来来分配的由连续的细细粒来分配配细粒的大小小依赖于参参数SGA_MAX_SIZE动态SGA从Oracle9i开始,动态态SGA实实施了一一种体系结结构,可以以对SGA配置进进行更改,,而不必关关闭例程。。这样,在在不关闭例例程的情况况下,就可可以更改数数据库缓冲冲区高速缓缓存和共享享池的大小小。因此,,开始时可可将数据库库缓冲区高高速缓存和和共享池配配置为一个个较小的值值,然后根根据它们各各自的工作作量增减,,但最大值值不能超过过由SGA_MAX_SIZE指定定的值。调整SGA的大小SGA的的大小由几几个初始化化参数决定定。对SGA的大大小影响最最大的参数数有:DB_CACHE_SIZE:标准块块的高速缓缓存大小。。对于UNIX,缺缺省值是48MB,对于NT,缺省省值是52MBLOG_BUFFER:为重重做日志缓缓冲区分配配的字节数数SHARED_POOL_SIZE::专用于共共享SQL和PL/SQL的内存存区的大小小(以字节节为单位))。缺省值值是16MB。如如果是64位,则则缺省值是是64MBLARGE_POOL_SIZE:大大型共享池池的大小。。缺省值是是零(如果果未将init.ora参参数PARALLEL_AUTOMATIC_TUNING设设置为TRUE,则则自动计算算缺省值。。)JAVA_POOL_SIZE:Java池池的大小。。缺省值是是24MB因此,SGA的大大小不能超超过SGA_MAX_SIZE-DB_CACHE_SIZE-LOG_BUFFER––SHARED_POOL_SIZE-LARGE_POOL_SIZE-JAVA_POOL_SIZE。。系统全局区区(续)分配单位::粒组是一个个连续虚拟拟内存分配配单位。粒粒组的大小小取决于估估算的SGA的总总大小,这这个总大小小是根据参参数SGA_MAX_SIZE的值值计算的。。•如如果估估算的的SGA的的大大小小小于128MB,,那么么粒组组大小小是4MB•否否则为为16MB共享池池用来存存储:最近执执行的的SQL语语句最近使使用的的数据据定义义由两个个主要要的与与性能能相关关的内内存结结构组组成:库缓冲冲区((LibraryCache))数据字字典缓缓冲区区(DataDictionaryCache)决定其其大小小的参参数::SHARED_POOL_SIZE共享池池数据字字典缓存存库缓存存ALTERSYSTEMSETSHARED_POOL_SIZE=64M;共享池池共享池池环境境既包包含固固定结结构,,也包包含可可变结结构。。固定定结构构的大大小相相对保保持不不变,,而可可变结结构的的大小小会根根据用用户和和程序序的需需求增增减。。固定定结构构和可可变结结构的的实际际大小小由一一个初初始化化参数数和Oracle内内部部算法法来确确定。。共享池池—调调整大大小由于共共享池池用于于可以以全局局共享享的对对象,,如可可重复复使用用的SQL执执行计计划、、PL/SQL程程序包包、过过程、、函数数和游游标信信息,,所以以必须须对它它的大大小进进行调调整,,以满满足固固定区区和可可变区区的需需要。。分配给给共享享池的的内存存由SHARED_POOL_SIZE初初始始化参参数确确定。。使用用ALTERSYSTEMSET,,便可可以动动态地地重新新调整整它的的大小小。经经过性性能分分析后后,就就可以以调整整它的的大小小,但但SGA的的总大大小不不能超超过SGA_MAX_SIZE库缓冲冲区存储最最近使使用的的SQL和和PL/SQL语语句句的信信息允许共共享普普通的的语句句使用最最近最最少使使用(LRU)算法法管理理由两部部分组组成:共享SQL区区共享PL/SQL区区大小由由共享享池的的大小小决定定库高速速缓存存库高速速缓存存的大大小视视所定定义的的共享享池大大小而而定。。内存存分配配是在在对语语句进进行语语法分分析或或调用用程序序单元元时进进行。。如果果共享享池的的大小小太小小,就就会将将语句句连续续重新新载入入库高高速缓缓存,,从而而使性性能受受到影影响。。库高高速缓缓存由由算法法LRU来来管管理。。高速速缓存存填满满时,,将从从库高高速缓缓存中中删除除最近近很少少使用用的执执行路路径和和语法法分析析树,,以便便为新新条目目腾出出空间间。如如果某某些SQL或或PL/SQL语语句未未再次次使用用,它它们最最终会会被删删除。。库高速速缓存存两个结结构::•共共享SQL:共共享SQL为为针对对数据据库运运行的的SQL语语句句存储储并共共享执执行计计划和和语法法分析析树。。下次次运行行同一一SQL语语句句时,,这个个语句句就能能利用用共享享SQL提提供供的语语法分分析信信息来来加快快其执执行速速度。。要确确保SQL语语句随随时可可以使使用共共享SQL区区,文文本、、方案案和绑绑定变变量必必须完完全相相同。。•共共享PL/SQL::共享享PL/SQL区区存储储并共共享最最近执执行的的PL/SQL语语句。。经过过语法法分析析和编编译的的程序序单元元和过过程((函数数、程程序包包和触触发器器)都都存储储在这这个区区中。。数据字字典缓缓冲区区是数据据库中中最近近使用用的定定义的的集合合包括数数据库库文件件、表表、索索引、、列、、用户户、权权限以以及其其它数数据库库对象象的信信息在解析析阶段段,服服务器器进程程查看看数据据字典典决定定对象象的命命名和和有效效的访访问将数据据字典典中的的内容容放入入内存存中可可以改改善查查询和和DML的的相相应时时间大小由由共享享池大大小决决定附:DML,DDL,DCL释义义数据定定义语语言(DDL):create、、alter、、drop(创创建、、修改改结构构、删删除))(其其他::rename)数据操操纵语语言(DML):insert、、delete、select、、update(增增、删删、查查、改改)((其他他:truncate))数据控控制语语言(DCL):grant、revoke((授权权、回回收))、setrole事务控控制::commit、rollback、、savepoint((其他他:locktable、、setconstraint、settransaction)审计控控制::audit、、noaudit系统控制制:altersystem会话控制制:altersession其他语句句:comment((添加注注释)、、explainplan、analyze、、validate、、call数据库缓缓冲区存储着从从数据文文件中提提取的数数据块的的拷贝当获取或或修改数数据时可可极大提提高系统统性能使用最近近最少使使用(LRU)算法管管理参数DB_BLOCK_SIZE决定数据据块的大大小数据库缓缓冲区数据库缓缓冲区高高速缓存存由独立的的子高速速缓存组组成:–DB_CACHE_SIZE–DB_KEEP_CACHE_SIZE–DB_RECYCLE_CACHE_SIZE•大小小可以进进行动态态调整•设置置DB_CACHE_ADVICE可收集用用于预测测不同高速缓存存大小行行为的统统计信息息•统计计信息由由V$DB_CACHE_ADVICE显示数据库缓缓冲区高高速缓存存调整数据据库缓冲冲区高速速缓存的的大小::数据库缓缓冲区高高速缓存存中每个个缓冲区区的大小小等于一一个Oracle块块的大小小,它由由DB_BLOCK_SIZE参参数来指指定。数数据库缓缓冲区高高速缓存存由独立立的子高高速缓存存组成,,子高速速缓存用于于缓冲区区池和多多个块大大小。参参数DB_BLOCK_SIZE确确定主主块的大大小,主主块的大大小用于于SYSTEM表空空间。以下三个个参数定定义了数数据库缓缓冲区高高速缓存存的大小小:•DB_CACHE_SIZE::只调整整缺省缓缓冲区高高速缓存存的大小小,这个个参数始始终存在在且不能能设置为为零•DB_KEEP_CACHE_SIZE:调调整保留留缓冲区区高速缓缓存的大大小,用用于保留留内存中中很可能能会重新新使用的的块•DB_RECYCLE_CACHE_SIZE:调调整循环环缓冲区区高速缓缓存的大大小,用用于删除除内存中中重新使使用的可可能性很很小的块块数据库缓缓冲区高高速缓存存(续))缓冲区高高速缓存存咨询功功能:缓冲区高高速缓存存咨询功功能可以以启用和和禁用统统计信息息的收集集,这些些统计信信息用于于预测不不同高速缓存大大小的行行为。这这些统计计信息所所提供的的信息可可以帮助助您针对对具体的的工作量量,调整整数据库缓冲区区高速缓缓存的大大小,以以达到最最佳性能能。缓冲冲区高速速缓存咨咨询信息息通过V$DB_CACHE_ADVICE视视图收集集和显示示。可以通过过初始化化参数DB_CACHE_ADVICE启启用缓缓冲区高高速缓存存咨询功功能。这这个参数数是一个动态参参数,可可以使用用ALTERSYSTEM来更更改。可可供使用用的三个个值是OFF、、ON和和READY。DB_CACHE_ADVICE参数值::OFF::咨询功功能关闭闭,并且且没有为为咨询功功能分配配内存ON:咨咨询功能能打开,,并产生生CPU和内内存开销销如果参数数处于OFF状状态,,在尝试试将它设设置为ON状状态时会会产生ORA-4031错错误:当当参数切切换到ON时,,无法从从共享池池分配内内存。如如果参数数处于READY状状态,则则能正确确地设置置为ON,因因为此时时已为咨咨询功能能分配内内存。READY:咨咨询功能能关闭,,但已经经为咨询询功能分分配内存存。在实实际打开开咨询功功能前分分配内存存可以避免产产生ORA-4031错误误。如果果将参数数从OFF状状态直接接切换到到ON,,可能会会产生ORA-4031错误误。重做日志志缓冲区区记录所有有对数据据库数据据的改变变主要目的的是恢复复修改记录录在这里里叫重做做条目重做条目目包含重重新构造造或重做做改变的的信息参数LOG_BUFFER决定其其大小重做日志志缓冲区区重做日志志缓冲区区重做日志志缓冲区区是一个个循环缓缓冲区,,它包含含对数据据文件块块所做的的各种更更改。此此信息存存储在重重做条目目中。重重做条目目包含将将数据恢恢复到使使用INSERT、UPDATE、、DELETE、CREATE、ALTER、、或或DROP操操作作进进行行更更改改前前的的状状态态所所需需要要的的信信息息。。调整整重重做做日日志志缓缓冲冲区区的的大大小小::重做做日日志志缓缓冲冲区区的的大大小小由由初初始始化化参参数数LOG_BUFFER定定义义。。注::Oracle9i数据据库库性性能能优优化化课课程程将将详详细细介介绍绍调调整整重重做做日日志志缓缓冲冲区区的的大大小小。。有有关关重重做做日日志志文文件件的的详详细细信信息息,,请请参参见见““管管理理重重做做日日志志文文件件””这这一一课课。。大池池(大大型型共共享享池池)SGA中中一一块块可可选选的的内内存存区区域域减轻轻共共享享池池的的负负担担不使使用用最最近近最最少少使使用用(LRU)清清单单参数数LARGE_POOL_SIZE决决定定其其大大小小可以以动动态态改改变变大大小小用于于::–共共享享服服务务器器的的会会话话内内存存(UGA)–I/O服务务器器进进程程–备备份份和和恢恢复复操操作作或或RMAN–并并行行执执行行消消息息缓缓冲冲区区–将将PARALLEL_AUTOMATIC_TUNING设置置为为TRUE大型型共共享享池池通过过从从大大型型共共享享池池为为共共享享服服务务器器、、OracleXA或或并并行行查查询询缓缓冲冲区区分分配配会会话话内内存存,,Oracle可可将将共共享享池池主主要要用用于于高高速速缓缓存存共共享享的的SQL语语句句。。这这样样,,便便减减轻轻了了共共享享池池中中各各区区的的工工作作负负担担。。共共享享池池无无需需再再提提供供内内存存以以高高速速缓缓存存SQL语语法法分分析析树树,,来来支支持持共共享享服服务务器器会会话话信信息息、、I/O以以及及备备份份和和恢恢复复进进程程。。由由于于增增减减共共享享SQL高高速速缓缓存存的的开开销销降降低低,,性性能能得得以以提提高高。。备份份和和恢恢复复::如果果设设置置了了BACKUP_DISK_IO=n和和BACKUP_TAPE_IO_SLAVE=TRUE参参数数,,则则恢恢复复管管理理器器(RMAN)将将使使用用大大型型共共享享池池。。如如果果大大型型共共享享池池已已经经配配置置,,但但不不够够大大,,则则在在大大型型共共享享池池中中分分配配内内存存就就会会失失败败。。RMAN将将错错误误消消息息写写入入警警报报日日志志文文件件,,而而且且不不使使用用I/O操操作作进进行行备备份份或或恢恢复复操操作作。。并行行执执行行::如果果将将PARALLEL_AUTOMATIC_TUNING设设置置为为TRUE,,将将使使用用大大型型共共享享池池。。否否则则,,将将把把这这些些缓缓冲冲区区分分配配至至共共享享池池。。大型型共共享享池池((续续))调整整大大型型共共享享池池的的大大小小::大型型共共享享池池的的大大小小由由LARGE_POOL_SIZE参参数数定定义义,,单单位位是是字字节节。。该该参参数数不不是是动动态态参参数数。。大型型共共享享池池和和LRU列表表::大型型共共享享池池并并不不包包含含LRU列列表表。。它它与与使使用用LRU列列表表的的共共享享池池中中的的保保留留空空间间不不同同。。Java池池为Java操操作作提提供供内内存存如果果安安装装并并使使用用Java,,则则是是必必需需的的参数数JAVA_POOL_SIZE决定定其其大大小小Java池池Java池池是是一一个个可可选选设设置置,,但但如如果果安安装装并并使使用用Java,,则则需需要要使使用用Java池池。。Java池池大大小小可可以以使使用用JAVA_POOL_SIZE参参数数设设置置,,单单位位为为字字节节。。在在Oracle9i,Java池池的的缺缺省省大大小小是是24MB。。程序序全全局局区区为每每个个连连接接到到Oracle数数据据库库用用户户的的进进程程提提供供内内存存进程程开开始始时时分分配配进程程结结束束时时释释放放每个个进进程程独独享享自自己己的的内内存存用户户进进程程PGA服务务器器进进程程程序序全全局局区区(PGA)程序序全全局局区区或或进进程程全全局局区区(PGA)是是内内存存区区,,它它包包含含有有关关单单个个服服务务器器进进程程或或单单个个后后台台进进程程的的数据据和和控控制制信信息息。。PGA在在创创建建进进程程时时分分配配,,并并在在终终止止进进程程时时回回收收。。与与由由若若干干个个进进程程共共享享的的SGA相相比比,,PGA是是仅仅供供一一个个进进程程使使用用的的区区。。PGA的内容:PGA内存存的内容会因因不同情况而而变化,这取取决于例程是是在专用服务务器配置还是是在共享服务务器配置下运行行。一般来讲讲,PGA内内存包括下下列组件:•专用SQL区:包包含绑定信息息和运行时内内存结构之类类的数据。发发出SQL语语句的每个个会话均拥有有一个专用SQL区。。提交同一SQL语句句的每个用户户都拥有自己己的使用单个个共享SQL区的专用用SQL区区。因此,许许多专用SQL区都与与同一个共享享SQL区区相关联。一个游标的专专用SQL区区可以分成成以下两个区区:–永久区::包含绑定信信息,并且只只在关闭游标标时释放–运行时区区:在执行请请求时的第一一步创建。对对于INSERT、UPDATE和和DELETE命令,,该区在执行行语句后释放放,对于查询询操作,该区区只在提取所所有行或取消消查询后释放放程序全局区((续)•专用SQL区(续续):专用SQL区的的位置取决于于为会话建立立的连接类型型。在专用服服务器环境中中,专用SQL区位于于各自服务器器进程的PGA中。在在共享服务器器环境中,专专用SQL区区位于SGA中。管管理专用SQL区是用用户进程的职职责。用户进进程可以分配配的专用SQL区的数数目始终由初初始化参数OPEN_CURSORS来限制制。该参数的的缺省值是50。•会话内存存:包含为保保留会话变量量以及与该会会话相关的其其它信息而分分配的内存。。对于共享服服务器环境,,该会话是共共享的而不是是专用的。•SQL工工作区:用用于大量占用用内存的操作作,如排序、、散列联接、、位图合并和和位图创建。。工作区的大小小可进行控制制和调整。自Oracle9i起,工作区的的大小可以进进行自动的全全局管理。要要实现这种功功能,可将WORKAREA_SIZE_POLICY参参数设置成成缺省情况下下的AUTO,同时设置置PGA_AGGREGATE_TARGET初始化参参数。DBA可以对PGA_AGGREGATE_TARGET参参数进行设置置,以指定该该例程可以使使用的PGA内存的目目标聚集数目目。此参数只只是一个指标标,可以由DBA在例例程一级动态态修改。设置置值的单位可可以是字节数数、千字节数数、兆字节数数或吉字节数数。设置完这这些参数后,,工作区的大大小即可自动动调整,这些些会话将忽略略所有的*_AREA_SIZE参参数。在Oracle9i之前的版本中中,由DBA控制着SQL工作作区的最大大大小,方法是是设置以下参参数:SORT_AREA_SIZE、HASH_AREA_SIZE、BITMAP_MERGE_AREA_SIZE和和CREATE_BITMAP_AREA_SIZE。。设置这些参参数是很困难难的,因为工工作区的最大大大小在理论论上是基于输输入的数据大大小以及系统统中活动工作作区的数目来来选择的。但但是,以上两两种因素在不不同工作区和和不同时间差差别很大。因因此,很难在在最佳环境下下调整这些参参数程序全局区((续)专用服务器和和共享服务器器之间的内存存分配差异::PGA内存存的内容会因因不同情况而而变化,这取取决于例程是是在专用服务务器配置下还还是在共享服服务器配置下下运行。一般般来讲,PGA内存包包括下列组件件:进程结构Oracle有三种不不同类型的进进程:用户进程:开开始于一个个数据库用户户请求连接Oracle服务器服务器进程:连接到Oracle实例、、开始于用户户建立起一个个会话后台进程:Oracle实例建建立就建立用户进程同Oracle服务器器进行交互请请求的程序必需先建立一一个连接并不直接同Oracle服务器进进行交互数据库用户服务器进程用户进程连接已建立用户进程需要从数据库库请求信息的的数据库用户户必须先建立立与Oracle服务务器的连接。。连接由SQL*Plus这类的的数据库接口口工具请求,,并开始用户户进程。用户户进程并不与与Oracle服务器器直接进行交交互操作,而而是通过用户户程序接口(UPI)生生成各种调调用。用户程程序接口则可可以创建会话话并启动服务务器进程。服务器进程直接同Oracle服服务器进行交交互的程序产生调用并返返回结果可以是专用的的也可以是共共享的连接已建立会话已产生数据库用户用户进程服务器进程Oracle服务器服务器进程用户建立连接接后,服务器器进程便会启启动,以处理理用户进程的的请求。服务务器进程可以以是专用服务务器进程或共共享服务器进进程。在专用用服务器环境境中,服务器器进程只处理理一个用户进进程的请求。。用户进程断断开连接后,,服务器进程程就会终止。。在共享服务务器环境中,,服务器进程程将处理多个个用户进程的的请求。服务务器进程可以以通过Oracle程程序接口(OPI)与与Oracle服务器器进行通信。。注:Oracle9i数据库性能优优化课程将详详细介绍服务务器进程在专专用服务器环环境与共享服服务器环境中中的分配情况况。后台进程维护并加强物物理结构和内内存结构之间间的联系:必需的后台进进程:DBWnPMONCKPTLGWRSMON可选的后台进进程:ARCnLMDnQMNnCJQ0LMONRECODnnnLMSSnnnLCKnPnnn后台进程Oracle体系结构构有五个必备备的后台进程程,本课将详详细介绍这些些进程。除了了必备的后台台进程列表以以外,Oracle体体系结构中还还有很多可选选的后台进程程。如果选择择使用这些可可选的后台进进程,它们便便会启动。除除了ARCn后台进程程之外,这些些可选的进程程不在本课所所涉及的范围围之内。下面面列出了一些些可选的后台台进程:•RECO:恢复程序序•QMNn:高级排队队•ARCn:归档程序序•LCKn:RAC锁管理器器–例程锁锁•LMON:RACDLM监监控程序–全全局锁•LMDn:RACDLM监监控程序–远远程锁•CJQ0:协调程序序作业队列后后台进程•Dnnn:调度程序序•Snnn:共享服务务器•Pnnn:并行查询询从属数据库写入器器(DBWn)DBWn在以以下情况下将将数据写入磁磁盘:发生检查点脏的缓冲区达达到阙值没有空闲空间间超时把表空间改为为只读把表空间改为为脱机删除或截断一一个表把表空间改为为开始备份实例SGA控制文文件数据文文件重做日日志文文件数据库库DBWn数据库库缓冲冲区数据库库写入入器(DBWn)文件,直到到发生生下列列事件件之一一:•增增量或或正常常检查查点•灰灰数据据缓冲冲区的的数量量达到到阈值值•进进程扫扫描指指定数数量的的块而而无法法找到到任何何空闲闲缓冲冲区时时•出出现超超时•实实时应应用集集群(RealApplicationClusters,RAC)环环境境中出出现ping请请求求•使使一般般表空空间或或临时时表空空间处处于脱脱机状状态•使使表空空间处处于只只读模模式•删删除或或截断断表•执执行ALTERTABLESPACE表表空空间名名BEGINBACKUP操操作日志写写入器器(LGWR)LGWR在以下下情况况下将将缓存存写入入磁盘盘:用户发发出提提交重做日日志缓缓从区区的三三分之之一被被占用用重做记记录达达到1MB每过三三秒在DBWn将将暂存存写入入磁盘盘前实例SGA控制文文件数据文文件重做日日志文文件数据库库重做日日志缓冲区区DBWnLGWR日志写写入器器(LGWR)日志写写入器器(LGWR)LGWR在在下下列情情况下下执行行从重重做日日志缓缓冲区区到重重做日日志文文件的的连续续写入入:•当当提交交事务务时•当当重做做日志志缓冲冲区的的三分分之一一填满满时•当当重做做日志志缓冲冲区中中记录录了超超过1MB的的更更改时时•在在DBWn将将数据据库缓缓冲区区高速速缓存存中修修改的的块写写入数数据文文件以以前•每每隔三三秒因为恢恢复操操作需需要重重做,,所以以LGWR只只在重重做写写入磁磁盘后后确认认提交交操作作。LGWR还还可可以调调用DBWn来来写写入数数据文文件。。系统监监视器器(SMON)功能:实例恢恢复接合空空闲空空间处理临临时段段控制文文件数据文文件重做日日志文文件数据库库实例SGASMON系统监监控程程序(SMON)如果Oracle例例程程失败败,那那么SGA中中尚未未写入入磁盘盘的所所有信信息都都会丢丢失。。例如如,操操作系系统的的失败败导致致例程程失败败。例例程丢丢失后后,后后台进进程SMON在在数数据库库重新新打开开时自自动执执行例例程恢恢复。。恢复复例程程需要要执行行以下下步骤骤:1.前前滚滚以恢恢复尚尚未记记入数数据文文件但但已经经记入入联机机重做做日志志中的的数据据。由由于例例程失失败时时SGA的的丢丢失,,所以以尚未未将这这些数数据写写入磁磁盘。。在该该进程程中,,SMON读读取重重做日日志文文件并并将重重做日日志中中记录录的更更改应应用到到数据据块中中。由由于提提交的的所有有事务务处理理都已已写入入重做做日志志,因因此该该进程程完全全恢复复了这这些事事务处处理。。2.打开开数据库以以便用户可可以登录。。未被未恢恢复事务处处理锁定的的任何数据据都立即可可用。3.回退退未提交的的事务处理理。它们由由SMON回退,,或在访问问锁定的数数据时由单单个服务器器进程回退退。SMON也也执行一一些空间维维护功能::•它联合合或合并数数据文件中中空闲空间间的邻近区区域。•它回收收临时段,,将它们作作为数据文文件中的空空闲空间返返回。进程监视器器(PMON)通过以下操操作清除失失败进程:回滚事务释放锁释放其他资资源重新启动死死的调度程程序PGA区区实例SGAPMON进程监视器器(PMON)进程失败后后,后台进进程PMON通过过下面的方方法进行清清理:•回退用用户的当前前事务处理理•释放当当前保留的的所有表锁锁或行锁•释放用用户当前保保留的其它它资源•重新启启动已失效效的调度程程序Oracle9i数据库管理理基础II课程中详细细介绍了调调度程序检查点(CKPT)负责:在检查点时时通知DBWn用检查点信信息更新数数据文件的的头部用检查点信信息更新控控制文件的的头部控制文件数据文件重做日志文件数据库实例SGADBWnLGWRCKPT检查点(CKPT)每隔三秒,,CKPT进程就就会向控制制文件存储储数据,以以标识重做做日志文件件中恢复操操作的起始始位置,该该操作称作作检查点。。检查点的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论