书名书名书名书名书名书名书名书名书名书名书名书名书名书名
·2·
进程是动态创建的,如果数据库的进程数量超过,就可能出现 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
通常在创建数据库时,建议将该参数修改为 500:
SQL> alter system set processes=500 scope=spfile;
System altered.
重启之后可以看到数据库进程内存分配的变化:
SQL> select name,value from v$parameter where name ='processes';
NAME VALUE
------------------------------ ------------------------------
processes 500
SQL> select * from v$sgastat where name='processes';
POOL NAME BYTES
------------------------ ------------------------------ ----------
shared pool processes 2000
3.2.2 操作系统依赖参数
某些参数的有效值或者取值范围依赖或者受限于操作系统,比如 db_cache_size 参数,设
置 Oracle 使用的 Buffer Cache 内存大小,该参数的最大值就要受限于物理内存。这一类参数
通常被称为操作系统依赖参数。
3.2.3 可变参数
评论