欢迎来到天天文库
浏览记录
ID:57814395
大小:395.00 KB
页数:15页
时间:2020-03-30
《Oracle的内存结构和进程结构.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、1:Oracle实例(Instance) 在一个服务器中,每一个运行的Oracle数据库都与一个数据库实例相联系,实例是我们 访问数据库的手段。 实例在操作系统中用ORACLE_SID来标识,在Oracle中用参数INSTANCE_NAME来标识, 它们两个的值是相同的。数据库启动时,系统首先在服务器内存中分配系统全局区(SGA), 构成了Oracle的内存结构,然后启动若干个常驻内存的操作系统进程,即组成了Oracle的 进程结构,内存区域和后台进程合称为一个Oracle实例。 数
2、据库与实例之间是1对1/n的关系,在非并行的数据库系统中每个Oracle数据库与一个 实例相对应;在并行的数据库系统中,一个数据库会对应多个实例,同一时间用户只与一个 实例相联系,当某一个实例出现故障时,其他实例自动服务,保证数据库正常运行。在任何 情况下,每个实例都只可以对应一个数据库。 2:Oracle10g动态内存管理 内存是影响数据库性能的重要因素,Oracle8i使用静态内存管理,Oracle10g使用动态 内存管理。所谓静态内存管理,就是在数据库系统中,无论是否有用户连接,也无论并发用 量大小,只要数据库服务在运行,就会分配
3、固定大小的内存;动态内存管理允许在数据库服 务运行时对内存的大小进行修改,读取大数据块时使用大内存,小数据块时使用小内存,读 取标准内存块时使用标准内存设置。 按照系统对内存使用方法的不同,Oracle数据库的内存可以分为以下几个部分: •系统全局区:SGA(SystemGlobalArea) •程序全局区:PGA(ProgrameGlobalArea) •排序池:(SortArea) •大池:(LargePool) •Java池:(JavaPool) 2-1:系统全局区SGA(SystemGlobalArea) SGA是
4、一组为系统分配的共享的内存结构,可以包含一个数据库实例的数据或控制信 息。如果多个用户连接到同一个数据库实例,在实例的SGA中,数据可以被多个用户共享。 当数据库实例启动时,SGA的内存被自动分配;当数据库实例关闭时,SGA内存被回收。 SGA是占用内存最大的一个区域,同时也是影响数据库性能的重要因素。 SGA的有关信息可以通过下面的语句查询,sga_max_size的大小是不可以动态调整的。 ===================================== SQL>showparametersga NAME
5、 TYPE VALUE ------------------------------------------------------- loc您正在看的Oracle是:Oracle的内存结构和进程结构。k_sga boolean FALSE pre_page_sga boolean FALSE sga_max_size
6、 biginteger164M sga_target biginteger0 SQL>altersystemsetsga_max_size=100m; altersystemsetsga_max_size=100m * ERRORatline1: ORA-02095:specifiedinitializationparametercannotbemodified ======================
7、================ 系统全局区按作用不同可以分为: •数据缓冲区 •日志缓冲区 •共享池 2-1-1:数据缓冲区(DatabaseBufferCache) 如果每次执行一个操作时,Oracle都必须从磁盘读取所有数据块并在改变它之后 又必须把每一块写入磁盘,显然效率会非常低。数据缓冲区存放需要经常访问的数据, 供所有用户使用。修改数据时,首先从数据文件中取出数据,存储在数据缓冲区中, 修改/插入数据也存储在缓冲区中,commit或DBWR(下面有详细介绍)进程的其他条 件引发时,数据
8、被写入数据文件。 数据缓冲区的大小是可以动态调整的,但是不能超过sga_max_size的限制。 ====================================== S
此文档下载收益归作者所有