早上遇到一套环境数据库突然不能连接,应用也无法连接,查询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、启动应用。