【转】Oracle基础结构认知——oracle内存结构 礼记八目 2017-12-15 20:31:27
oracle的数据库实例是一组后台进程和内存结构组成的,而内存结构由系统全局区(system global area)和程序全局区(program global area)组成。
#修改SGA和PGA的配置文件,通常在/../oracle/admin/spfile/init.ora中的sgz_max_size=64M、sga_target=64M、pga_aggregate_target 参数,或在sqlplus里Alter system set sga_max_size=64M scope=spfile; 修改后重启数据库和服务生效。
系统全局区(SGA):Oracle 系统用于存放系统信息的一块存储区域,用户进程和Oracle后台进程都可以使用SGA。
SGA:database buffer cache(数据库高速缓存区),redolog buffer cache(重做日志高速缓存区),大的共享池(java pool,large pool),共享池(library cache[库缓存区],data dictionary cache[数据字典缓存区]),固定SGA(不可以设置修改,oracle之初自动创建的);
1.数据高速缓冲区(Data Buffer Cache)
在数据高速缓冲区中存放着Oracle系统最近使用过的数据块(即用户的高速缓冲区),当把数据写入数据库时,它以数据块为单位进行读写,当数据高速缓冲区填满时,则系统自动去掉一些不常被用访问的数据。如果用户要查的数据不在数据高速缓冲区时,Oracle自动从磁盘中去读取。oracle每执行一个查询必须从磁盘调用数据DBSGA的存在,数据库用于调用的访问数据一般存在DBSGA。长期访问的代码表存在于保持缓存池长期存于内存并不释放,频繁访问的大表存在于再生缓存池。
数据高速缓存区包括三个类型:
(1).脏的区(Dirty Buffers):包含有已经改变过并需要写回数据文件的数据块。
(2).自由区(Free Buffers):没有包含任何数据并可以再写入的区,Oracle可以从数据文件读数据块的存储信息写入该区。
(3).保留区(Pinned Buffers):此区包含有正在处理的或者明确保留用作将来用数据访问的区。
2. 重做日志缓冲区(Rado Log Buffer)
任何事务(Transaction)在记录到重做日志(恢复工作需要使用联机重做日志)之前都必须首先放到重做日志缓冲区(Redo Log Buffer)中,然后由日志写入进程(LGWR)定期将此缓冲区的内容写入重做日志文件(redolog file)中。
3. 共享池(Shared Pool)
共享池是SGA保留的区,用于存储如SQL、PL/SQL存储过程及包、数据字典、锁、字符集信息、安全属性等。共享池包含有:
(1).库高速缓存(Library Cache):共享SQL区(保留SQL解释版本),PL/SQL区(保留PLSQL的函数和过程及包)
(2).字典高速缓冲区(Dictionary Cache):数据字典,校验表名,列名,锁,字符集信息,安全属性等
*****查看SGA*****
通过sqlplus工具,键入:show parameter SGA 或 select * from v$SGA; 。SGA=fixed size+variable size+database buffers+redo buffers
查看oracle的SGA
4. 大的共享池:在SGA中大池是可选的缓冲区。它可以根据需要有管理权进行配置。它可以提供一个大的区以供对象数据库的备份与恢复等操作。
程序全局区:(PGA)是Oracle使用的内存区域,该区同一时间只能被一个进程存放数据和控制,用于存放会话变量及内部数组等;在专用服务模式(dedicated server configuration)下,每个只处理一个用户进程的请求。在共享服务模式(shared server configuration)下,大量用户可以共享几个服务进程,通过减少服务进程数量达到有效利用系统资源的目的。
例:用户访问进程与服务进程的会话。
****查看PGA****
show parameter pga ;
查看oracle的PGA
【转】Oracle基础结构认知——oracle内存结构 礼记八目 2017-12-15 20:31:27的更多相关文章
- 【转】Oracle基础结构认知—进程及逻辑结构 礼记八目 2017-12-17 19:33:21
原文地址:https://www.toutiao.com/i6500477672349499917/ 一. Process Structure进程结构 Oracle有两种类型的进程: 服务器进程和后台 ...
- 【转】Oracle基础结构认知—oracle物理结构 礼记八目 2017-12-13 20:31:06
原文地址:https://www.toutiao.com/i6499008214980362765/ oracle数据库启动:oracle服务启动,通过参数文件查找控制文件,启动控制文件,则控制文件调 ...
- 【转】Oracle基础结构认知—初识oracle 礼记八目 2017-12-12 21:19:30
Oracle服务器(oracle server)由实例和数据库组成.其中,实例就是所谓的关系型数据库管理系统(Relational Database Management System,RDBMS), ...
- Oracle基础结构认知—初识oracle【转】
Oracle服务器(oracle server)由实例和数据库组成.其中,实例就是所谓的关系型数据库管理系统(Relational Database Management System,RDBMS), ...
- 【转】ORACLE SQL基础—DDL语言 礼记八目 2017-12-23 21:26:21
原文地址:https://www.toutiao.com/i6502733303550837261/ SQL语言分为:DDL数据定义语言,DML数据操纵语言,DCL是数据库控制语言,TC事务控制语言 ...
- 【转】Oralce基础—Sqlplus工具运用 礼记八目 2017-12-20 20:22:45
原文地址:https://www.toutiao.com/i6501603661565657614/ 一.数据库连接: sqlplus [user_name[/password][@ host_str ...
- [转]oracle学习入门系列之五内存结构、数据库结构、进程
原文地址:http://www.2cto.com/database/201505/399285.html 1 Oracle数据库结构 关于这个话题,网上一搜绝对一大把,更别提书籍上出现的了,还有很多大 ...
- Oracle的内存结构
备注:本图片截图自“炼数成金” Oracle的体系结构分为内存结构.进程,磁盘文件. 内存结构分为SGA, PGA.SGA是系统全局区,是所有的用户共享区,PGA是某个用户的私有区. SGA分为sha ...
- Oracle实例和Oracle数据库(Oracle体系结构)
--========================================== --Oracle实例和Oracle数据库(Oracle体系结构) --==================== ...
随机推荐
- 1.Eclipse创建普通java工程
1.创建java工程 2.输入java 工程名 3.编写类
- git常见问题总结
1.每次上传文件的时候,有很多iml文件容易不小心上传上去,然后报错,所以可以把这些文件取消上传 如图所示,每次提交时,都不会显示标红文件 具体操作步骤如下:
- 洛谷 P2587 BZOJ 1034 [ZJOI2008]泡泡堂
题目描述 //不知道为什么BZOJ和洛谷都没有这幅图了,大牛们几年前的博客上都有这幅图的,把它贴上来吧 第XXXX届NOI期间,为了加强各省选手之间的交流,组委会决定组织一场省际电子竞技大赛,每一个省 ...
- HDU - 2833 - WuKong
先上题目: WuKong Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Tota ...
- java中类的路径为什么这么长
- 洛谷——P1910 L国的战斗之间谍
https://www.luogu.org/problem/show?pid=1910#sub 题目背景 L国即将与I国发动战争!! 题目描述 俗话说的好:“知己知彼,百战不殆”.L国的指挥官想派出间 ...
- cogs 983. [NOIP2003] 数字游戏
983. [NOIP2003] 数字游戏 ★☆ 输入文件:numgame.in 输出文件:numgame.out 简单对比时间限制:1 s 内存限制:128 MB 题目描述 丁丁最近沉 ...
- vmstat命令的输出
- HDU 3340 Rain in ACStar(线段树+几何)
HDU 3340 Rain in ACStar pid=3340" target="_blank" style="">题目链接 题意:给定几个多 ...
- Object对象具体解释(二)之clone
clone方法会返回该实例对象的一个副本,通常情况下x.clone() != x || x.clone().getClass() == x.getClass() || x.clone().equals ...