oracle数据库账户密码重置并修改最大连接数

问题描述:

今天在跟踪dataX配置d额数据流程时,发现定时流程执行失败,日志显示的是数据库连接错误,然后我就去看数据源,发现本来已经通了的数据源,再次测试连接的时候,显示连接失败,TNS:listener could not find available handler with matching protocol stack的错误,经过反复找错,发现可能的原因是,每天晚上定时抽取任务时,开启的数据库连接数较大,超出了数据库配置的连接数目,导致部分流程显示数据库连接失败。

这时候我们想要去修改最大连接数,若想要修改最大连接数,需要一个dba账户才能操作,但是dba账户的密码忘了。。。。。。。。很无语!!

解决思路:

经过同事的点拨,发现可以先登录上数据库服务器对dba账号进行密码重置,然后再修改oracle的最大连接数

具体解决过程:

第一步:在忘记Oracle用户密码的情况下,可以在Oracle服务器端执行以下操作,对密码进行修改。

C:/Documents and Settings/Administrator>sqlplus /nolog

SQL*Plus: Release 10.1.0.2.0 - Production on 星期六 6月 26 11:08:34 2010

Copyright (c) 1982, 2004, Oracle.  All rights reserved.

SQL> conn /as sysdba

Connected.

SQL> alter user sys identified by "123456";

User altered.

SQL> exit

第二步:

1、首先通过sqlplus登陆数据库,

su - oracle   

sqlplus / as sysdba

2、查看当前数据库进程的连接数 select count(*) from v$process;

 3、查询数据库当前会话的连接数 select count(*) from v$session;

4、查看数据库设置的最大连接数和最大session数量,show parameter processes命令查看的是汇总的信息,也可以直接select value from v$parameter where name ='processes';  语句查看,最大进程连接数为4000.

 5、当数据库连接数需要调整时,可以用alter system set processes = 3000 scope = spfile;修改连接数。(修改3000只是示范,大多时候是连接数不够,数值修改的更大)

 

 6、修改processes和sessions值必须重启oracle服务器才能生效

shutdown immediate;关闭实例

startup启动

7、步骤重启后再次查看,已经生效 

8、可以用如下命令查看数据库连接的消耗情况:select  b.MACHINE, b.PROGRAM, b.USERNAME, count(*) from v$process a, v$session b where a.ADDR = b.PADDR and  b.USERNAME is not null  group by  b.MACHINE, b.PROGRAM, b.USERNAME order by count(*) desc 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值