早上遇到一套环境数据库突然不能连接,应用也无法连接,查询alert_PROD.log发现连接数超过最高200,于是最快的方式是增加process连接数。先关闭应用,此时去关闭的时候已经提示不能连上数据库,于是通过ps -fu applprod,把相应的进程都kill掉。然后连上数据库的服务器,sqlplus方式连接去关闭数据库。其实这个时候关闭后会将大部分的进程释放掉,这个时候去启动应用应该可以正常启动,但是考虑到200的process数太小,还是决定增大。于是按照下面方式进行:
遇到在增加ebs Oracle process数据的时候错误,解决方式:
1、show parameter spfile;
2、create parameter pfile;
3、shutdown immediate;
4、startup;
5、alter system set processes=800 scope=spfile;
6、shutdown immediate;
7、重启数据库、重启应用。
参考:
调整数据库SGA区的大小
默认安装完毕后,数据库的SGA的大小是1G。根据电脑内存大小和下面的表格作适当的调整。
数据库初始化参数建议值
Parameter Name
Development or Test Instance
11-100 Users
101-500 Users
501-1000 Users
1001-2000 Users
processes
200
200
800
1200
2500
sessions
400
400
1600
2400
5000
sga_target
1G
1G
2G
3G
14G
shared_pool_size (csp)
N/A
N/A
N/A
1800M
3000M
shared_pool_reserved_size(csp)
N/A
N/A
N/A
180M
300M
shared_pool_size (no csp)
400M
600M
800M
1000M
2000M
shared_pool_reserved_size(no csp)
40M
60M
80M
100M
100M
pga_aggregate_target
1G
2G
4G
10G
20G
Total Memory Required
~ 2 GB
~ 3 GB
~ 6 GB
~ 13 GB
~ 34 GB
以数据库用户oraprod登录,修改Oracle数据库的初始化文件
/u01/oracle/PROD/db/tech_st/11.1.0/dbs/initPROD.ora
备份文件initPROD.ora
cd /u01/oracle/PROD/db/tech_st/11.1.0/dbs/
cp initPROD.ora initPROD.ora.bak_
vi initPROD.ora
修改如下内容
processes = 800 ###默认值200
sessions = 1600 ###默认值400
sga_target = 2G ###默认值1G
shared_pool_size = 800M ###默认值400M
shared_pool_reserved_size = 80M ###默认值40M
pga_aggregate_target = 4G ###默认值 1G
因为我的内存有64G,所以把这两个参数扩大了点。根据实际情况,如果你只有1G内存的话,建议你把这两个参数都调整成512M或更小。
1、关应用;
2、关数据库;
3、数据库用户:
cd $ORACLE_HOME/dbs
cp initPROD.ora initPROD.ora.bak20190703
vi initPROD.ora
找到具体指标:
processes = 800 ###默认值200
sessions = 1600 ###默认值400
sga_target = 2G ###默认值1G
shared_pool_size = 800M ###默认值400M
shared_pool_reserved_size = 80M ###默认值40M
pga_aggregate_target = 4G ###默认值 1G
保存后。
4、启动数据库;
5、启动应用。