网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
本月文章推荐
.如何在ORACLE中實現人民幣大寫的.
.Oracle的标准系统服务脚本-for .
.教你快速掌握如何使用"Opatch"打.
.分析Oracle下导出某用户所有表的.
.Oracle中PL/SQL单行函数和组函数.
.常用的查看数据库的SQL.
.提高Linux上小型数据库的速度.
.如何升级 kernel?.
.Oracle 10G 最佳20位新特性:物化.
.Fravo Oracle 1Z0-131 v1.0.
.很有用的oracle 函数.
.Re: 请问ORACLE共享池的问题.
.ORACLE中如何实现ASCII字符串和1.
.Oracle中三种上载文件技术.
.Powerdesigner使用建议(完整版).
.学会将SYS_GUID和序列作为主关键.
.Oracle远程复制和异地容灾方案分.
.LILO可以装在软盘上.
.用SQL进行函数查询.
.redhat linux 9.0 VSFTP配置大权.

Oracle 数据库10g:自动共享内存管理

发表日期:2008-2-9



 
  是不是很难准确地分配
配到最需要的地方去成为可
不同的池所需的内存数?自动共
能。
享内存治理特性使得自动将内存分


  无论您是一个刚入门的
的错误:
DBA 还是一个经验丰富的 DBA

,您肯定至少看到过一次类似以下


  ORA-04031:unable to
allocate 2216 bytes of share
d memory ("shared pool"... ...

  或者这种错误:                                                                  ORA-04031:unable to allocate XXX
X bytes of shared memory
  ("large pool","unknown object","
session heap","frame")


  或者可能这种错误:                                                              ORA-04031:unable to
allocate bytes of shared mem
ory ("shared pool",
  "unknown object","joxlod:init h"
, "JOX:ioc_allocate_pal")

  第一种错误的原因很明
原因可能不是池本身的大小
的一个主题;但目前让我们
池的空间不足。
显:分配给共享池的内存不足以
,而是未使用绑定变量导致的过
把重点放在手头的问题上。)其

满足用户请求。(在某些情况下,
多分析造成的碎片,这是我很喜欢
它的错误分别来自大型池和 Java



  您需要解决这些错误情
问题是如何在 Oracle 例程
况,而不作任何与应用程序相关
所需的所有池之间划分可用的内
的修改。那么有哪些方案可选呢?
存。

  馅饼怎么分?
  正如您所了解的,一个
冲高速缓存、共享池、Java
占据了固定的内存数;它们
Oracle 例程的系统全局区域 (
池、大型池和重做日志缓冲)
的大小由 DBA 在初始化参数文
SGA) 包含几个内存区域(包括缓
。这些池在操作系统的内存空间中
件中指定。

  这四个池(数据库块缓冲高速缓存、
的空间。(与其它区域相比,重做日志缓
)作为 DBA,您必须确保它们各自的内存
共享池、Java 池和大型池)几乎占据了 SGA 中所有
冲没有占据多少空间,对我们这里的讨论无关紧要。
分配是充足的。

  假定您决定了这些池的值分别是 2GB
数据库例程规定池的大小。
、1GB、1GB 和 1GB。您将设置以下初始化参数来为

  db_cache_size = 2g                                             shared_pool_size = 1g                                       large_pool_size = 1g                                         java_pool_size = 1g                                        
  现在,仔细看一下这些参数。坦白讲,这些值是否准确?                           

  我相信您一定会有疑虑
赖于数据库内部的处理,而
。在实际中,没有人能够为这些
处理的特性随时在变化。
池指定确切的内存数 — 它们太依


  下面是一个示例场景。
速缓存分配的专用内存比为
用户放开了一些非常大的全
线修改内存分配的功能,但
些内存:
假定您有一个典型的、大部分属
纯 OLTP 数据库(现在已经很少
表扫描,以创建当天的结束报表
由于提供的总物理内存有限,您

于 OLTP 的数据库,并且为缓冲高
见了)分配的要少。有一天,您的
。Oracle9i 数据库为您提供了在
决定从大型池和 Java 池中取出一

  alter system set db_cache_size =
3g scope=memory;
  alter system set lar
ge_pool_size = 512m scope=me
mory;
  alter system set jav
a_pool_size = 512m scope=mem
ory;

  这个解决方案能够很好地工作一段时
开始了,大型池将立即出现内存不足。同
池,以拯救这种局面。
间,但是接着夜间的 RMAN 作业
上一篇:Oracle 数据库函数库 人气:1040
下一篇:Oracle10g的SQL正则表达式支持 人气:918
浏览全部Oracle教程的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐