问题描述
Oracle的连接数默认是150。需要根据应用的并发用户数,应用数量,动态调整。
一旦连接数超出系统允许的最大数量就会导致数据库异常无法正常使用。本文记录了最大连接数的修改步骤。
注意事项
本文介绍的连接数修改步骤,必须通过命令行的方式重启才能维持。如果使用Windows服务的方式重启数据库,是会重置连接数配置的。如果有小伙伴知道永久的修改连接数方式,欢迎留言告知。
操作步骤
确定数据库是否以spfile启动,如果不是需要修改以spfile启动
-- 查看数据库是否以spfile启动.
show parameter spfile;
-- 看到value有值代表以spfile启动
NAME TYPE VALUE
------ ------ ----------------------------------------------------------------------
spfile string
#下面的脚本请在命令行中执行
#设置ORACLE_SID,如果服务器有多个实例才需要执行
C:\Users\Administrator>set ORACLE_SID=agile9
C:\Users\Administrator>sqlplus /nolog
SQL>conn sys as sysdba
# 创建spfile文件,也可以在数据库连接工具中执行
SQL>create spfile from pfile;
# 重启数据库,必须在命令行中执行.
SQL>shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL>startup;
SQL>show parameter spfile;
# 看到value有值代表以spfile启动
NAME TYPE VALUE
------ ------ ----------------------------------------------------------------------
spfile string D:\APP\ADMINISTRATOR\PRODUCT\12.1.0\DBHOME_1\DATABASE\SPFILEAGILE9.ORA
接着修改最大连接数
-- 查看当前的连接数
SQL>select count(*) from v$process;
-- 查看最大连接数
SQL>show parameter processes;
-- 修改最大连接数,要用sysdba执行,且必须以spfile启动
SQL>alter system set processes = 600 scope = both;
-- 上面的语句如果执行报错,就执行这句
SQL>alter system set processes = 600 scope = spfile;
-- 如果并发连接数修改超过1000,最好修改共享池大小,否则数据库启动会报错:
SQL>ALTER SYSTEM SET SHARED_POOL_SIZE = 400M;
-- 重启数据库让配置生效.需要在命令行中执行
SQL>shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL>startup;