《Oracle 9i10g11g实例内存结构概要.ppt》由会员分享,可在线阅读,更多相关《Oracle 9i10g11g实例内存结构概要.ppt(26页珍藏版)》请在三一办公上搜索。
1、,Oracle 9i/10g/11g实例-内存结构概要,赵元杰中程在线(北京)科技有限公司2009.8,2/25,2023/3/2,内容提要,Oracle 数据库日志缓冲区共享池数据缓冲区,3/25,2023/3/2,数据库服务器是一系列部件组成,数据库软件部件,数据库,数据文件,控制文件,日志文件,实例,后台进程,内存结构(SGA),数据库服务器,4/25,2023/3/2,Spfile,Temp,Data file,Undo,Oracle 数据库架构,PMON,SMON,RECO,MMON,MMNL,PSP0,MMAN,DBWn,LGWR,CKPT,CJQ0,S000,D000,QMNC,
2、Qnnn,FMON,ARCn,CTWR,RVWR,Fixedsize,Largepool,Javapool,Streamspool,Defaultbuffercache,Keepbuffercache,Recyclebuffercache,nKbuffercaches,Redologbuffer,ASHbuffer,Sortextentpool,Globalcontextpool,SGA,Flashbackbuffer,Instance,Flashbacklogs,Redo logfiles,Archivelog files,Controlfiles,SYSTEM,SYSAUX,Changet
3、rackingfile,Passwordfile,Sharedpool,5/25,2023/3/2,Oracle 数据库,Oracle 数据库:是一个被统一处理的数据集合 包括三类文件,口令文件,参数文件,归档的日志文件,控制文件,数据文件,重做日志文件,Oracle 数据库,6/25,2023/3/2,OPEN,MOUNT,NOMOUNT,SHUTDOWN,打开在控制文件中描述的所有文件,打开控制文件,启动实例,数据库实例操作步骤,启动数据库,关闭数据库,7/25,2023/3/2,Oracle 10g 数据库启动,在 UNIX启动数据库:用默认的SPFILE_sid.ORA文件启动实例:$
4、sqlplus/nologSQLCONNECT SYS/password AS SYSDBASQLstartup在 Windows启动数据库:点击“开始”=“设置”=“控制面板”=“管理工具”=“服务”;=右键单击“OracleServiceSID”=选择“关闭”即可。关闭Oracle监听进程,8/25,2023/3/2,实例与会话,连接到 Oracle 实例(instance)包括:每个用户同时刻只能连接到一个实例上;用户连接可通过TCP/HTTP实现;连接成功的用户,系统为该用户创建会话,创建的会话,数据库用户,用户进程,服务器进程,建立的连接,9/25,2023/3/2,Oracle 结
5、构-实例与数据库,什么是实例(instance)?系统全局区(System Global Area=SGA)动态的 SGA(Oracle9i/10g)不用关闭就可改变 后台进程什么是物理数据库?操作系统文件(Operating system files)逻辑数据库构成?数据库存储结构(Database storage structures),10/25,2023/3/2,Oracle 实例-内存结构,Java pool,Databasebuffer cache,Redo log buffer,Shared pool,Large pool,SGA,Streams pool,Serverproce
6、ss1,PGA,Serverprocess2,PGA,Backgroundprocess,PGA,11/25,2023/3/2,Oracle 实例-内存结构,Java pool,Databasebuffer cache,Redo log buffer,Shared pool,Large pool,SGA,Streams pool,Serverprocess1,PGA,Serverprocess2,PGA,Backgroundprocess,PGA,12/25,2023/3/2,Oracle 结构 SGA,13/25,2023/3/2,SGA:Shared Pool,Shared Pool,Li
7、brary Cache,Dictionary Cache,控制结构:Character SetConversion MemoryNetwork Security Attributes.,Shared Pool Contents-SQL 或 PL/SQL 语句文本-SQL 或 PL/SQL 语句解析格式-SQL 或 PL/SQL 语句执行计划-数据字典高速缓存包含数据字典数据行 Library Cache(库高速缓存)-共享 SQL 区-私有 SQL区-PL/SQL 存储过程与包-控制结构:锁与库高速缓存句柄 Dictionary Cache(字典高速缓存)-数据库中所有表与视图的名称-数据库中
8、所有表的列名与类型-Oracle 用户的权限 SHARED_POOL_SIZE参数,ReusableRuntimeMemory,14/25,2023/3/2,SGA:Shared Pool,LRU 算法与共享池管理每次当一个SQL语句被分析后都存放在共享池里以便重复使用;如果一个SQL语句已存放在共享池里,则它不再进行分析,但该语句会放到LRU的前面;SQL语句不频繁被使用,则认为老化而,而频繁被使用则保留在共享池里;一个SQL语句可被人为地保留在共享池里(用DBMS_SHARED包实现),15/25,2023/3/2,SGA:Data Buffer Cache,SQL语句有关的所有数据采用脏
9、列表管理 和(least recently used=LRU)当用户进程需要缓冲区时,服务器进程扫描 LRU 列表以确定自由缓冲区大小由 DB_CACHE_SIZE 参数确定,相关参数:DB_CACHE_SIZEDB_KEEP_CACHE_SIZEDB_RECYCLE_CACHE_SIZE,16/25,2023/3/2,SGA:Data Buffer Cache,LRU 算法与数据缓冲区即使是内存数据库,内存不可能与数据库一样大;每次从磁盘读数据块存放在LRU的前面(即the most recently used-MRU);如果某个块已在缓冲区中并且再次被读,则系统将该块移动到列表的前面;数据
10、不被使用则认为是已经老化(aged)而被逐出内存;,17/25,2023/3/2,SGA:Redo Log Buffer,Redo Log Buffer 是SGA中最小的缓冲区包含数据库改变日志的信息保持这些信息是为了可能的再做(一样的操作)当数据库恢复时需要读重做日志LGWR 写重做日志信息到日志文件LOG_BUFFER,change vector#1,change vector#2,change vector#3,redo record,18/25,2023/3/2,Large Pool(大型池),Large Pool是Oracle针对一些需要大量存储空间的数据库处理与运算工作所提供的一个
11、额外选项大型池可以让SGA配置一个较大的存储空间,提供给处理Oracle的backup/restore、I/O、执行Oracle复原管理程序RMAN、等。通过指定LARGE_POOL_SIZE参数,设置Large Pool的大小。,19/25,2023/3/2,Java Pool(Java池),当使用者有使用Java时,Oracle Server利用这块存储空间,存放及分析所使用的Java Code,藉以提供Oracle与Internet更高的整合性。通过指定JAVA_POOL_SIZE这个参数,来改变Java Pool的大小。,20/25,2023/3/2,SGA-内存结构查询,SGA大小查
12、询查V$SGA数据字典或SHOW PARAMETR SGASQL select*from v$sga;NAME VALUE-Fixed Size 1247900Variable Size 79693156Database Buffers 83886080Redo Buffers 2945024,21/25,2023/3/2,Oracle SGA信息,查询V$SGAINFO:10g/11g 支持(RES=RESIZEABLE;YES为可改大小;NO为不能直接改):,SQL select*from v$sgainfo;NAME BYTES RES-Fixed SGA Size 1333648 No
13、Redo Buffers 6086656 NoBuffer Cache Size 125829120 YesShared Pool Size 163577856 YesLarge Pool Size 4194304 YesJava Pool Size 12582912 YesStreams Pool Size 0 YesShared IO Pool Size 0 YesGranule Size 4194304 NoMaximum SGA Size 426852352 NoStartup overhead in Shared Pool 50331648 NoFree SGA Memory Ava
14、ilable 113246208已选择12行。,22/25,2023/3/2,Oracle 实例-EM能监视,使用Oracle EM 管理SGA选择“管理”=“内存参数”即可显示:,23/25,2023/3/2,SQL select dbid,name,DB_UNIQUE_NAME,LOG_MODE from v$database DBID NAME DB_UNIQUE_NAME LOG_MODE-601443332 ORA10 ora10 NOARCHIVELOG,Oracle 数据库查V$DATABASE数据字典Oracle 实例查V$INSTANCE数据字典,Oracle结构-数据库查询
15、,SQL col host_name for a20SQL select instance_name,host_name,version from v$instanceSQL/INSTANCE_NAME HOST_NAME VERSION-ora10 D8FMZ32X 10.2.0.1.0,24/25,2023/3/2,实例-后台进程(略),所谓后台(Background Process):客户端是前台,Oracle所在的服务器就是后台现在仍然沿用后台概念后台进程(background process):是一组常驻服务器的服务程序(service routine),执行I/O处理、Oracle进程的监控、针对请求执行相应的工作等;每个进程负责专一的一项工作,25/25,2023/3/2,参考资料,Oracle 11g:Oracle Database Performance Tuning Guide11g Release 1(11.1)B28274-01;Oracle Database Administrators Guide11g Release 1(11.1)B28310-03;中文网站:http:/,26/25,2023/3/2,参考资源,Oracle OCP-11g:Automatic Memory Management,