- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第 3 章 参数及参数文件
第 3 章 参数及参数文件
在 Oracle 数据库中,有一系列的初始化参数用来进行数据库约束和资源限制,这些参数
通常存储在一个参数文件中,在数据库实例启动时读取并加载。
初始化参数对数据库来说非常重要,很多参数通过合理的调整可以极大的高数据库性
能。本章对初始化参数和参数文件进行相关探讨。
3.1初始化参数的分类
按照得出方式不同,初始化参数可以分为三类:
3.2.1 推导参数(Derived Parameters)
推导参数通常来自于其他参数的运算,依赖其他参数得出。所以这类参数通常不需要修
改。如果强制修改,那么修改值会覆盖推导值。
常见的此类参数有很多,例如:SESSIONS 参数,在Oracle 11gR2 文档中,该参数按以下
公式运算得出:
(1.5 * PROCESSES) + 22
缺省的,当 PROCESSES 被修改时,此参数会自动计算并生效。以下是一个示范数据库
中这两个参数的设置:
SQL select name,value from v$parameter where name in (processes,sessions);
NAME VALUE
processes 200
sessions 322
Processes 参数代表操作系统上能够并发向Oracle 数据库发起的连接进程数量。如果该参
数设置过低,则在应用并非高时,超过Processes 数量的进程将无法连接到数据库。所以在规
划数据库时,合理设置Processes 参数是十分重要的。但是注意,很多时候由于应用的异常可
能导致业务环境的进程数量激增,所以在生产环境中对进程数量进行必要监控是必需的。
以下是一个生产环境中遇到的相关案例,数据库告警日志文件中记录了如下错误:
Thu Jul 17 14:40:18 2008
Process J001 died, see its trace file
Thu Jul 17 14:40:18 2008
kkjcre1p: unable to spawn jobq slave process
日志示J001 进程死掉,数据库不能创建JOBQ 的从属进程(Slave Process )。由于Job
书名书名书名书名书名书名书名书名书名书名书名书名书名书名
进程是动态创建的,如果数据库的进程数量超过,就可能出现 JOB 进程无法创建的问题。检
查相关的TRACE 文件,可以发现如下错误信息:
Died during process startup with error 20 (seq=14510)
OPIRIP: Uncaught error 20. Error stack:
ORA-00020: maximum number of processes (500) exceeded
数据库的示是,最大数量的进程数量 500 超过,数据库不再允许更多的进程连接,此
时新的连接请求都会收到错误示,甚至DBA 也无法登陆数据库。除了重启数据库之外,可
以通过Kill 掉部分进程,然后通过DBA 身份连接到数据库,诊断分析并解决具体问题。
但是由于processes 参数是静态参数,修改该参数后需要重新启动数据库才能生效。在数
据库启动时,会预先为Processes 分配内存地址空间,并向Shared Pool 注册,所以该参数无法
动态修改。缺省的每个进程会在共享池中分配4 Bytes 的注册空间:
SQL select name,value from v$parameter where name =processes;
NAME VALUE
processes 150
SQL select * from v$sgastat where name=processes;
POOL NAME BYTES
shared pool processes 600
文档评论(0)