java帳戶登錄_java.sql.SQLException: ORA-28000: 帐户已被锁定

java.sql.SQLException: ORA-28000: 帐户已被锁定

然后按照以前的办法找到了解锁的方法,想到可能是某个同事登录失败次数过多。因为oracle

默认的策略是oracle11g中默认在default概要文件中设置了

“FAILED_LOGIN_ATTEMPTS=10次”,当输入密码错误次数达到设置值将导致此,该用户会自动锁住。

解决方法

[oracle@developserver ~]$ sqlplus / as sysdba

SQL>select * from dba_profiles where

RESOURCE_NAME='FAILED_LOGIN_ATTEMPTS';

SQL> ALTER USER 用户名 ACCOUNT UNLOCK;

SQL>alter profile default limit failed_login_attempts

unlimited;--不限制连接数

SQL> alter profile DEFAULT limit FAILED_LOGIN_ATTEMPTS 1000;

--设定用户连接失败数超过1000次之后自动锁住

可以查看profiles的一些其他内容

SQL>select * from dba_profiles where

RESOURCE_NAME='FAILED_LOGIN_ATTEMPTS';

PROFILE RESOURCE_NAME RESOURCE LIMIT

------------------------------

--------------------------------

-------- --------

MONITORING_PROFILE FAILED_LOGIN_ATTEMPTS PASSWORD UNLIMITED

可是开发人员的电脑上,还是报被锁了

后面刚好看到小黄在学jdbc-oracle。然后就实验了一下连接开发人员的账户。发现也可以。

突然想到他们的实例名不一样,会不会是我这边修改的策略不影响到另外个实例。

想到一个定义:oracle实例是表空间的集合。实例是老大

然后实验登录用sqlplus登录到不同的实例中修改。

[oracle@developserver ~]$ sqlplus / as sysdba@另外一个实例名

然后执行上面的步骤,就可以了。如果用另外一个实例名登录不成功有可能是tnsname.ora文件的设置的问题,可以如下添加

tnsname.ora增加:

另外一个实例名=

(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST =

127.0.0.1)(PORT = 1521))

(CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME =另外一个实例名) )

)

经验:操作之前一定要分清楚操作的是那个实例,记住每个实例都是独立的,不影响到别的实例

=============================

1.

Sql代码

1.select count(*) from

v$process select count(*) from v$process --当前的数据库连接数

2.

Sql代码

1.select value from v$parameter where name =

'processes' select value from v$parameter where name =

'processes'--数据库允许的最大连接数

3.

Sql代码

1.alter system set processes = 300 scope =

spfile; alter system set processes = 300 scope = spfile;--修改最大连接数:

4.

Sql代码

1.shutdown

immediate; 2.startup; shutdown immediate;

startup;--重启数据库

5.

Sql代码

1.SELECT osuser, a.username,cpu_time/executions/1000000||'s',

b.sql_text,machine 2.from v$session a, v$sqlarea

b 3.where a.sql_address =b.address order by cpu_time/executions

desc; SELECT osuser, a.username,cpu_time/executions/1000000||'s',

b.sql_text,machine

from v$session a, v$sqlarea b

where a.sql_address =b.address order by cpu_time/executions

desc;

--查看当前有哪些用户正在使用数据

6.

Sql代码

1.select count(*) from

v$session select count(*) from

v$session --当前的session连接数

7.

Sql代码

1.select count(*) from v$session where

status='ACTIVE' select count(*) from v$session where status='ACTIVE' --并发连接数

8.

Sql代码

1.show parameter

processes show parameter

processes --最大连接

9.

Sql代码

1.alter system set processes = value scope =

spfile;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值