这是一次本地压力测试,由于默认Oracle 10g的数据库最大连接数是150。但是要程序的压力测试要用到300。

于是我参考网上资料,执行下面两行命令,修改最大连接数后,重启oracle服务器,就发生了错误提示oracle无法登陆。

 

step 1: 修改最大连接数

# 查询 当前最大连接数
select value from v$parameter where name = 'processes'
# 修改 最大连接数
alter system set processes = 1000 scope = spfile

 一次Oracle修改最大连接数,导致oracle重启后无法登陆实例_Oracle

重启完电脑之后,原来oracle正常登陆的管理页面,提示错误恢复页面如下

一次Oracle修改最大连接数,导致oracle重启后无法登陆实例_Oracle_02

 

 

step 2: 重新检查和修复问题

通过oracle服务器上的安装目录的ora配置文件,修改相关参数

D:\oracle\product\10.1.0\admin\ORA10DBS01\pfile\init.ora.08201701227

主要修改的参数,主要如下

备注:

参数 processes = 最大连接数,和你的硬件性能有关。

参数 sessions = processes *1.1 +5 , 和上面参数processes一起设置,对数据库的并发处理能力有关。

参数 pga_aggregate_target = 发数量*4M,这里我们根据 参数sessions * 4M 计算得到1600M。

# Part 1
# processes=150
processes=300
sessions=335
# pga_aggregate_target=25165824
pga_aggregate_target=1600M

 

 

step 3: 重新启动数据库

当我们设置完Part 1的三个参数后,保存ora配置文件,并且用sqlplus命令行启动,如下命令

# 单击cmd窗口,输入
CMD >> sqlplus /nolog

# 用sydba身份连接
SQL > connect /as sysdba

# 启动oracle实例
SQL > startup 

# 检查提示错误信息
SQL > ORA-00371: not enough shared pool memory, should be atleast 132663296 bytes

 一次Oracle修改最大连接数,导致oracle重启后无法登陆实例_Oracle_03

 

 根据上面启动报错的提示,我们可知,还需要设置pool memery参数,如下

# Part 2
# large_pool_size=8388608
# shared_pool_size=83886080
large_pool_size=132663296
shared_pool_size=1326632960

 

 

step 4: 最后,成功启动数据

修改完上面ora文件中的part 1和part 2参数之后,第一次必须用sqlplus命令行重新启动数据库,操作如下

# 单击cmd窗口,输入
CMD >> sqlplus /nolog

# 用sydba身份连接
SQL > connect /as sysdba

# 下面init.ora文件来自你实际安装oracle实例的配置文件目录
SQL > startup pfile='D:\oracle\product\10.1.0\admin\ORA10DBS01\pfile\init.ora.08201701227'

# 检查数据库信息
SQL > show parameter process

 一次Oracle修改最大连接数,导致oracle重启后无法登陆实例_Oracle_04

 

 

step 5, 问题修复,成功登陆界面如下

http://ora10dbs01:5500/em

一次Oracle修改最大连接数,导致oracle重启后无法登陆实例_Oracle_05

 

一次Oracle修改最大连接数,导致oracle重启后无法登陆实例_Oracle_06

 一次Oracle修改最大连接数,导致oracle重启后无法登陆实例_Oracle_07