Home >Database >Mysql Tutorial >[oracle10g]dbca创建数据库时processes参数的最小取值

[oracle10g]dbca创建数据库时processes参数的最小取值

WBOY
WBOYOriginal
2016-06-07 15:33:081281browse

dbca新建数据库时processes这个参数的默认是150,一般没有会蛋疼关心其最小取,只是看到《2 day dba》和dbca中说最小乎是6,因为它包括了数据库实例的几个必须启动的后台进程,是5个,加上至少一个的用户进程,乎就是这么得出6的,但是根据上一博文,设为6是

dbca新建数据库时processes这个参数的默认值是150,一般没有会蛋疼关心其最小取值,只是看到《2 day dba》和dbca中说最小值似乎是6,因为它包括了数据库实例的几个必须启动的后台进程,是5个,加上至少一个的用户进程,似乎就是这么得出6的,但是根据上一博文,设为6是必然不行的,报错ora-03113,新建无法完成,那么这个实际的最小值是多少呢?可能不会有人关心这个,我也只是好奇。

动手验证,环境是windows下oracle10.2。首先试图通过重建数据库的方法指定尝试的processes值,做着做着想到我这是有多笨啊,为什么不用alter system set processes=int 去改,一开始发现这么改报错,提示无法修改参数,后来想到没有添加scope选项,试着加上scope=both,结果还是报错,这才明白这是个静态参数,只能使用scope=spfile来修改,且修改后重启有效。

于是就这么试了几个值,发现在processes的值在20或十几的时候无法打开数据库,只能到mount阶段,不过这个时候忘了关闭其他连接。值为30的时候可以正常打开数据库。这是想到通过不断增加客户端的连接来验证这个参数对连接的限制:使用SQL>select count(*) from v$process可以查看当前连接数,当这个数字到达29时,无法连接普通用户,然而这时候连接sysdba用户时,可以连接,但是上面的查询结果依然是29。在最新的验证中发现,sysdba连接后显示“连接到空闲例程”,且无法进行数据库操作。不管那么多,总之知道连接数到达指定值-1时,连接受限。

这时候想到可以关闭所有客户端,重启数据库,到nomount阶段,发现当前连接数15,到mount阶段依然15,再到open状态,是19,初步推断所需最小连接数是19,经过多次重启,依然是这个值,最后将processes的值修改为20,成功启动数据库,查看当前连接值还是19。最后将processes的值修改为19,重启数据库,就在我将要认为那个实际的最小值是19的时候,数据库竟然重启成功,当前连接数是18!继续将processes的值改为18,重启数据库,终于发现没有打开,提示ora-01092:oracle实例终止。这时修改processes到较大值,就可以正常打开了,打开后查看当前连接数发现时23。

总结一下,processes这个参数决定着oracle服务最大连接数,包括数据库后台进程和用户进程,服务器进程也可能包括。要让数据库正常启动(windows下10g企业版),这个参数的最小值在19附近。

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn