欢迎来到天天文库
浏览记录
ID:44290861
大小:394.07 KB
页数:11页
时间:2019-10-20
《Oracle内存结构与实例》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、Oracle内存结构与实例1、内存结构:Oracle数据库的总体结构如下图:OverviewofPrimaryComponentsF1..a.userprocessAServer、process上teaPGAInstanceSharedpoolSGALibrarycacheDatabaseRedologDataDietbuffercachebuffercachecachePMONSMONDBWRLGWR[CKPTOthersParameterfilePasswordfileControlRedolog[771filesfiles
2、IArchived1LlogfliesJuDatabaseDatafilesInstanceSharedpoolSGALibrarycacheDatabaseRedologDataDictionarycachebuffercachebuffercache实例结构如下图:MemorystructuresBackgroundstructures每个Oracle数据库都是由OracleInstance(实例)与数据库(数据文件,控制文件、重做日志文件)组成,其中所谓实例就是用户同数据库交互的媒介,用户通过于一个实例相连来操作数据库。而
3、实例又是由统一的内存结构(SGA,PGA,UGA)和一批内存驻留进程组成。实例在操作系统中用0RACLE_SID来标识,在Oracle中用参数INSTANCE_NAME来标识,它们两个的值是相同的。数据库启奇时,系统首先在服务器内存中分配系统全局区(§GA),构成了Oracle的内存结构,然后启动若干个常驻内存的操作系统进程,即组成了Oracle的进程结构,内存区域和后台进程合称为一个0racle实例。PMONSMONDBWRLGWRCKPTOthers1.1内存对数据库的影响:内存是影响数据库性能的重要因素,Oracle8i使
4、用静态内存管理,Oracle10g使用动态内存管理。所谓静态内存管理,就是在数据库系统中,无论是否有用户连接,也无论并发用量大小,只要数据库服务在运行,就会分配固定大小的内存;动态内存管理允许在数据库服务运行时对内存的大小进行修改,读取大数据块时使用大内存,小数据块时使用小内存,读取标准内存块时使用标准内存设置。1.2SGA内部结构及管理:SGA是一组为系统分配的共享的内存结构,可以包含一个数据库实例的数据或控制信息。如果多个用户连接到同一个数据库实例,在实例的SGA中,数据可以被多个用户共享。当数据库实例启动时,SGA的内存被
5、自动分配;当数据库实例关闭时,SGA内存被回收。SGA是占用内存最大的一个区域,同时也是影响数据库性能的重要因素。通过下面的语句查询SQL>showparametersgaNAMETYPEVALUElocksgabooleanFALSEpre_page_sgabooleanFALSEsga_max_sizebiginteger164Msga_targetbiginteger0其中:sga_max_size的大小是不可以动态调整的。如:SQL>altersystemsetsga_max_size=100m;altersystems
6、etsga_max_size=100m★ERRORatline1:ORA-02095:specifiedinitializationparametercannotbemodified系统全局区按作用不同可以分为:•数据缓冲区•日志缓冲区•共享池•大池•Java池其中后两项为可选项。1.2.1数据缓冲区(DatabaseBufferCache)如果每次执行一个操作时,Oracle都必须从磁盘读取所有数据块并在改变它之后又必须把每一块写入磁盘,显然效率会非常低。数据缓冲区存放需要经常访问的数据,供所有用户使用。修改数据时,首先从数据
7、文件中取出数据,存储在数据缓冲区中,修改/插入数据也存储在缓冲区中,commit或DBWR(下面有详细介绍)进程的其他条件引发时,数据被写入数据文件。数据缓冲区的大小是可以动态调整的,但是不能超过sga_max_size的限制。通过下面的语句查询SQL>showparameterdb_cache_sizeNAMETYPEVALUEdb_cache_sizebiginteger24M修改数据缓冲区大小:SQL>altersystemsetdb_cache_size=20m;Systemaltered・#下面语句可以用来查看内存空间
8、分配情况,注意SGA各区大小总和。SQL>selectname,valuefromv$parameterwherenamelike‘%size1andvalue<>'O';SGA区的其他部分都可以修改,致使不能超过sga_max_size限制,如使用下面语句修改
此文档下载收益归作者所有