版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1: HYPERLINK /diannao/List/List_399.html t _blank Oracle实例(Instance) 在一个服务器中,每一个运行的 HYPERLINK /diannao/List/List_399.html t _blank Oracle数据库都与一个数据库实例相联系,实例是我们访问数据库的手段。实例在操作系统中用ORACLE_SID来标识,在 HYPERLINK /diannao/List/List_399.html t _blank Oracle中用参数INSTANCE_NAME来标识,它们两个的值是相同的。数据库启动时,系统首先在服务器内存中分配系统全
2、局区(SGA),构成了Oracle的内存结构,然后启动若干个常驻内存的操作系统进程,即组成了 HYPERLINK /diannao/List/List_399.html t _blank Oracle的进程结构,内存区域和后台进程合称为一个 HYPERLINK /diannao/List/List_399.html t _blank Oracle实例。 数据库与实例之间是1对1/n的关系,在非并行的数据库系统中每个 HYPERLINK /diannao/List/List_399.html t _blank Oracle数据库与一个实例相对应;在并行的数据库系统中,一个数据库会对应多个实例,同
3、一时刻用户只与一个实例相联系,当某一个实例出现故障时,其他实例自动服务,保证数据库正常运行。在任何情况下,每个实例都只能够对应一个数据库。2: HYPERLINK /diannao/List/List_399.html t _blank Oracle 10g动态内存治理内存是阻碍数据库性能的重要因素,Oracle8i使用静态内存治理, HYPERLINK /diannao/List/List_399.html t _blank Oracle 10g使用动态内存治理。所谓静态内存治理,确实是在数据库系统中,不管是否有用户连接,也不管并发用量大小,只要数据库服务在运行,就会分配固定大小的内存;动态
4、内存治理同意在数据库服务运行时对内存的大小进行修改,读取大数据块时使用大内存,小数据块时使用小内存,读取标准内存块时使用标准内存设置。按照系统对内存使用方法的不同, HYPERLINK /diannao/List/List_399.html t _blank Oracle数据库的内存能够分为以下几个部分:系统全局区:SGA(System Global Area)程序全局区:PGA(Programe Global Area)排序池:(Sort Area)大池:(Large Pool)Java池:( HYPERLINK /diannao/List/List_379.html t _blank Ja
5、va Pool)2-1:系统全局区SGA(System Global Area)SGA是一组为系统分配的共享的内存结构,能够包含一个数据库实例的数据或操纵信息。假如多个用户连接到同一个数据库实例,在实例的SGA中,数据能够被多个用户共享。当数据库实例启动时,SGA的内存被自动分配;当数据库实例关闭时,SGA内存被回收。SGA是占用内存最大的一个区域,同时也是阻碍数据库性能的重要因素。SGA的有关信息能够通过下面的语句查询,sga_max_size的大小是不能够动态调整的。= HYPERLINK /diannao/List/List_396.html t _blank SQL show para
6、meter sgaNAME TYPE VALUE loc您正在看的Oracle是:Oracle的内存结构和进程结构。 k_sga boolean FALSEpre_page_sga boolean FALSEsga_max_size big integer 164Msga_target big integer 0 HYPERLINK /diannao/List/List_396.html t _blank SQL alter system set sga_max_size=100m;alter system set sga_max_size=100m *ERROR at line 1:ORA-
7、02095: specified initialization parameter cannot be modif HYPERLINK /diannao/List/List_1164.html t _blank ied= 系统全局区按作用不同能够分为:数据缓冲区日志缓冲区共享池2-1-1:数据缓冲区(Database Buffer Cache)假如每次执行一个操作时, HYPERLINK /diannao/List/List_399.html t _blank Oracle都必须从磁盘读取所有数据块并在改变它之后又必须把每一块写入磁盘,显然效率会特不低。数据缓冲区存放需要经常访问的数据,供所有
8、用户使用。修改数据时,首先从数据文件中取出数据,存储在数据缓冲区中,修改/插入数据也存储在缓冲区中,commit或DBWR(下面有详细介绍)进程的其他条件引发时,数据被写入数据文件。数据缓冲区的大小是能够动态调整的,然而不能超过sga_max_size的限制。= HYPERLINK /diannao/List/List_396.html t _blank SQL show parameter db_cache_sizeNAME TYPE VALUE db_cache_size big integer 24M HYPERLINK /diannao/List/List_396.html t _bl
9、ank SQL alter system set db_cache_size=128m;alter system set db_cache_size=128m*ERROR at line 1:ORA-02097: parameter cannot be modified because specif HYPERLINK /diannao/List/List_1164.html t _blank ied value is invalidORA-00384: Insuffic HYPERLINK /diannao/List/List_1164.html t _blank 您正在看的Oracle是:
10、Oracle的内存结构和进程结构。 ient memory to grow cache HYPERLINK /diannao/List/List_396.html t _blank SQL alter system set db_cache_size=20m;System altered. HYPERLINK /diannao/List/List_396.html t _blank SQL show parameter db_cache_size;NAME TYPE VALUE db_cache_size big integer 20M#此处我仅增加了1M都不行? HYPERLINK /dia
11、nnao/List/List_396.html t _blank SQL alter system set db_cache_size=25m;alter system set db_cache_size=25m*ERROR at line 1:ORA-02097: parameter cannot be modified because specif HYPERLINK /diannao/List/List_1164.html t _blank ied value is invalidORA-00384: Insuffic HYPERLINK /diannao/List/List_1164.
12、html t _blank ient memory to grow cache#修改显示格式,方便查看。 HYPERLINK /diannao/List/List_396.html t _blank SQL column name format a40 wrap HYPERLINK /diannao/List/List_396.html t _blank SQL column value format a20 wrap#下面语句能够用来查看内存空间分配情况,注意SGA各区大小总和。 HYPERLINK /diannao/List/List_396.html t _blank SQL selec
13、t name,value from v$parameter where name like %size and value 0;#先将 HYPERLINK /diannao/List/List_379.html t _blank Java_pool_size调小,然后再修改db_cache_size HYPERLINK /diannao/List/List_396.html t _blank SQL show parameter HYPERLINK /diannao/List/List_379.html t _blank Java_pool_size;NAME TYPE VALUE HYPER
14、LINK /diannao/List/List_379.html t _blank Java_pool_size big integer 48MSQL alter system set HYPERLINK /diannao/List/List_379.html t _blank Java_pool_size=20m;System altered. HYPERLINK /diannao/List/List_396.html t _blank SQL alter system set HYPERLINK /diannao/List/List_379.html t _blank Java_pool_
15、size=30m;System altered.#上面讲明SGA中各区大小总和不能超过sga_max_size。=数据缓冲区的大小对数据库的存区速度有直接阻碍,多用户时尤为明显。有些应用对速度要求专门高,一般要求数据缓冲区的命中率在90%以上。下面给出一种计算数据缓冲区命中率的方法:使用数据字典v$sysstat= HYPERLINK /diannao/List/List_396.html t _blank SQL select name, value from v$sysstat 2 where name in(session logical reads, 3 physical reads,
16、 4 physical reads direct, 5 physical reads direct (lob)NAME VALUE session logical reads 895243physical reads 14992physical reads direct 34physical reads direct (lob) 0=命中率=1-(14992-34-0)/895243能够让 HYPERLINK /diannao/List/List_399.html t _blank Oracle给出数据缓冲区大小的建议:= HYPERLINK /diannao/List/List_396.ht
17、ml t _blank SQL alter system set db_cache_advice=on;#打开该功能System altered. HYPERLINK /diannao/List/List_396.html t _blank SQL alter system set db_cache_advice=off;#关闭该功能System altered.=2-1-2:日志缓冲区(Log Buffer Cache)日志缓冲区用来存储数据库的修改信息。该区对数据库性能的阻碍专门小,有关日志后面还会有详细的介绍。查询日志缓冲区大小:SQL show parameter log_buffer
18、NAME TYPE VALUE log_buffer integer 262144 2-1-3:共享池(Share Pool)共享池是对SQL,PL/ HYPERLINK /diannao/List/List_396.html t _blank SQL程序进行语法分析,编译,执行的内存区域。它包含三个部分:(都不可单独定义大小,必须通过share pool间接定义)。库缓冲区(Library Cache)包含SQL,PL/ HYPERLINK /diannao/List/List_396.html t _blank SQL语句的分析码,执行打算。数据字典缓冲区(Data Dictionary
19、Cache)表,列定义,权限。用户全局区(Usr Global Area)用户MTS会话信息。共享池的大小能够动态修改:= HYPERLINK /diannao/List/List_396.html t _blank SQL show parameter shared_pool_sizeNAME TYPE VALUE _shared_pool_size big integer 80Mshared_pool_size big integer 80M HYPERLINK /diannao/List/List_396.html t _blank SQL alter system set shared
20、_pool_size=78m System altered.=#上面的_shared_pool_size一行惊奇?2-2:程序全局区PGA(Programe Global Area)程序全局区是包含单个用户或服务器数据和操纵信息的内存区域,它是在用户进程连接到Oracle并创建一个会话时由 HYPERLINK /diannao/List/List_399.html t _blank Oracle自动分配的,不可共享,要紧用于用户在编程存储变量和数组。 如上图:Stack Space是用来存储用户会话变量和数组的存储区域;User Session Data是为用户会话使用的附加存储区。|-Ses
21、sion Information|-Sort Area|-Cursor Information注意Session information(用户会话信息)在独占服务器中与在共享服务器中所处的内存区域是不同的。2-3:排序区,大池, HYPERLINK /diannao/List/List_379.html t _blank Java池排序区(Sort Area)为有排序要求的 HYPERLINK /diannao/List/List_396.html t _blank SQL语句提供内存空间。系统使用专用的内存区域进行数据排序,这部分空间确实是排序区。在 HYPERLINK /diannao/L
22、ist/List_399.html t _blank Oracle数据库中,用户数据的排序可使用两个区域,一个是内存排序区,一个是磁盘临时段,系统优先使用内存排序区进行排序。假如内存不够,Orcle自动使用磁盘临时表空间进行排序。为提高数据排序的速度,建议尽量使用内存排序区,而不要使用临时段。参数sort_area_size用来设置排序区大小。(仿佛不能动态修改?) 大池(Large Pool)用于数据库备份工具-恢复治理器(RMAN:Recovery Manager)。Large Pool的大小由large_pool_size确定,可用下面语句查询和修改:= HYPERLINK /diann
23、ao/List/List_396.html t _blank SQL show parameter large_pool_sizeNAME TYPE VALUE large_pool_size big integer 8M HYPERLINK /diannao/List/List_396.html t _blank SQL alter system set large_pool_size=7m;System altered.=Java池要紧用于Java语言开发,一般来讲不低于20M。其大小由 HYPERLINK /diannao/List/List_379.html t _blank Java
24、_pool_size来确定,能够动态调整。2-4: HYPERLINK /diannao/List/List_399.html t _blank Oracle自动共享内存治理(Automatic Shared Memory(SGA) Management)在 HYPERLINK /diannao/List/List_399.html t _blank Oracle 8i/9i中数据库治理员必须手动调整SGA各区的各个参数取值,每个区要依照负荷轻重分不设置,假如设置不当,比如当某个区负荷增大时,没有调整该区内存大小,则可能出现ORA-4031:unable to allocate .bytes
25、of shared memory错误。在 HYPERLINK /diannao/List/List_399.html t _blank Oracle 10g中,将参数STATISTICS_LEVEL设置为TYPICALALL,使用SGA_TARGET指定SGA区总大小,数据库会依照需要在各个组件之间自动分配内存大小。下面是系统自动调整的区域:固定SGA区及其他共享池数据缓冲区 HYPERLINK /diannao/List/List_379.html t _blank Java池大池。注意:假如不设置SGA_TARGET,则自动共享内存治理功能被禁止。= HYPERLINK /diannao/
26、List/List_396.html t _blank SQL show parameter statistics_levelNAME TYPE VALUE statistics_level string TYPICAL HYPERLINK /diannao/List/List_396.html t _blank SQL alter system set statistics_level=all;System altered.#typical和all有什么区不? HYPERLINK /diannao/List/List_396.html t _blank SQL alter system se
27、t statistics_level=typical;BRSystem altered. HYPERLINK /diannao/List/List_396.html t _blank SQL show parameter sga_targetNAME TYPE VALUE sga_target big integer 0 HYPERLINK /diannao/List/List_396.html t _blank SQL alter system set sga_target=170m;alter system set sga_target=170m*ERROR at line 1:ORA-0
28、2097: parameter cannot be modified because specif HYPERLINK /diannao/List/List_1164.html t _blank ied value is invalidORA-00823: Specif HYPERLINK /diannao/List/List_1164.html t _blank ied value of sga_target greater than sga_max_size HYPERLINK /diannao/List/List_396.html t _blank SQL alter system se
29、t sga_target=20m;System altered.#只是后来又发觉sga_target的值变成了140M? 下面是语句执行情况。 HYPERLINK /diannao/List/List_396.html t _blank SQL show parameter sga_targetNAME TYPE VALUE sga_target big integer 140M HYPERLINK /diannao/List/List_396.html t _blank SQL alter system set sga_target=0;System altered. HYPERLINK /
30、diannao/List/List_396.html t _blank SQL show parameter sga_targetNAME TYPE VALUE sga_target big integer 0#改为20M HYPERLINK /diannao/List/List_396.html t _blank SQL alter system set sga_target=20m;System altered.#显示的是140M HYPERLINK /diannao/List/List_396.html t _blank SQL show parameter sga_targetNAME
31、 TYPE VALUE sga_target big integer 140M #不可缩减? HYPERLINK /diannao/List/List_396.html t _blank SQL alter system set sga_target=130m;alter system set sga_target=130m*ERROR at line 1:ORA-02097: parameter cannot be modified because specif HYPERLINK /diannao/List/List_1164.html t _blank ied value is inva
32、lidORA-00827: could not shrink sga_target to specif HYPERLINK /diannao/List/List_1164.html t _blank ied value#不可增加 HYPERLINK /diannao/List/List_396.html t _blank SQL alter system set sga_target=141m;alter system set sga_target=141m*ERROR at line 1:ORA-02097: parameter cannot be modified because spec
33、if HYPERLINK /diannao/List/List_1164.html t _blank ied value is invalidORA-00823: Specif HYPERLINK /diannao/List/List_1164.html t _blank ied value of sga_target greater than sga_max_size3: HYPERLINK /diannao/List/List_399.html t _blank Oracle实例的进程结构(Process Structure) HYPERLINK /diannao/List/List_39
34、9.html t _blank Oracle包含三类进程:用户进程(User Process)服务器进程(Server Process)后台进程(Background Process)3-1:用户进程和服务器进程当数据库用户请求连接到 HYPERLINK /diannao/List/List_399.html t _blank Oracle的服务时启动用户进程(比如启动 HYPERLINK /diannao/List/List_396.html t _blank SQLPlus时)。用户进程首先必须建立一个连接。用户不能直接与 HYPERLINK /diannao/List/List_399.
35、html t _blank Oracle服务器,必须通过服务器进程交互。服务器进程是用户进程与服务器交互的桥梁,它能够与 HYPERLINK /diannao/List/List_399.html t _blank Oracle Server直接交互。服务器进程能够有共享和独占两种形式。3-2:后台进程(Backgroung Process)数据库的物理结构与内存结构之间的交互要通过后台进程来完成。数据库的后台进程包含两类,一类是必须的,一类是可选的:Mandatory background processes|-DBWn(Database Writer):数据写入|-PMON(Process
36、 Moniter):进程监控|-LGWR(Log Writer):日志写入|-SMON(System Moniter):系统监控|-RECO(Recovery):恢复|-CKPT(Chekpoint):检查点Optional background processes|-ARCn(Archiver):归档|-LCKn(Lock):锁|-Dnnn(Dispatcher):调度|-能够用下面的语句查看正在运行的后台进程:=SQL select * from v$bgprocess where paddr00;PADDR PSERIAL# NAME DESCRIPTION 6B0ED064 1 PMO
37、N process cleanup 6B0ED4E4 1 MMAN Memory Manager 6B0ED964 1 DBW0 db writer process 0 6B0EDDE4 1 LGWR Redo etc. 6B0EE264 1 CKPT checkpoint 6B0EE6E4 1 SMON System Monitor Process 6B0EEB64 1 RECO distributed recovery 6B0EEFE4 1 CJQ0 Job Queue Coordinator 6B0F01E4 1 QMNC AQ Coordinator 6B0F0664 1 MMON Manageability Monitor Process 6B0F0AE4 1 MMNL Manageability Monitor Process 2= 3-2-1:DBWR(Database Writer,数据写入进程)将数据缓冲区的数据写入数据文件,是负责数据缓冲区治理的一个后台进程。当数据缓冲区中的一数据被修改后,就标记为dirty,DBWR进程将数据缓冲区中“脏”数据写入数据文件,保持数据缓冲区的”洁净
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工会采买蛋糕卡合同3篇
- 教育图书购销合同
- 政府委托采购合同的变更3篇
- 教育宣传单设计印刷合同3篇
- 教育机构绿化养护合同3篇
- 提前解除租房合同范本3篇
- 教育培训行业工作协议3篇
- 工业园租赁合同格式打印打印生成3篇
- 排水招投标解析3篇
- 文明建设责任书3篇
- 人教版三年级下册数学期中测试卷含答案(新)
- 16J914-1 公用建筑卫生间
- 有限空间作业审批表格模板
- 春节人员流失预控方案
- 2019年日照市专业人员继续教育答案(更新全)
- XX集团公司“揭榜挂帅”实施办法
- 小学少先队活动课赣教三年级上册主题一唱响嘹亮的队歌勇敢前进
- 《穿井得一人》《桑中生李》阅读练习及答案
- “大综合一体化”行政执法改革工作自查报告
- (3)110KV配电装置安装单位工程质量验收评定表1
- 课程设计之年产90000吨丙酮水连续精馏塔的设计
评论
0/150
提交评论