今天测试那边让给恢一个库,1个小小dmp包,就2个用户,贼简单,
BUT!前台有进程一直在试图登陆,而测试应用人员消失了。感觉整个过程傻呵呵的,也想不出更好的方法
1.drop user CORPOR_USER cascade;报错ORA-01940: cannot drop a user that is currently connected
如果这个用户里没啥东西就不导了吧,查看下对象个数,
SQL> select count(*) from dba_objects where owner='CORPOR_USER';
COUNT(*)
----------
432
哦,有这么多,那还是得导
2. 查查有哪些进程连着它.
SQL> Select username,sid,serial# from v$session where username='CORPOR_USER';
有10行,依次干掉。
alter system kill session '14,50865';
alter system kill session '15,11105';
alter system kill session '16,39167';
alter system kill session '69,61309';
alter system kill session '71,43915';
alter system kill session '73,28089';
alter system kill session '135,8759';
alter system kill session '142,30689';
alter system kill session '202,2003';
alter system kill session '206,32017';
kill完了立刻又全连上,woca。。什么诡异进程@@ 忙活了半天忘记停监听了,lsnrctl stop顿时。。白茫茫一片真干净
3.导完之后用CORPOR_USER登录,
$ sqlplus CORPOR_USER/CORPOR_USER
SQL*Plus: Release 11.2.0.3.0 Production on Thu Dec 5 23:35:30 2013
Copyright (c) 1982, 2011, Oracle. All rights reserved.
ERROR:
ORA-28000: the account is locked
Enter user-name:
解锁
SQL> ALTER USER CORPOR_USER ACCOUNT UNLOCK;
User altered.
SQL> SELECT ACCOUNT_STATUS FROM DBA_USERS WHERE USERNAME='CORPOR_USER';
ACCOUNT_STATUS
--------------------------------
OPEN
再次登陆又锁了。woca!!!
4.查到用户用的PROFILE: DEFAULT
查查几次密码错会锁-----
SQL> select PROFILE,resource_name,limit from dba_profiles where resource_name='FAILED_LOGIN_ATTEMPTS' where PROFILE='DEFAULT';
PROFILE RESOURCE_NAME LIMIT
--------------------------------------------------------------------------------------------
DEFAULT FAILED_LOGIN_ATTEMPTS 10
嗯!一定有应用一直在用这个用户试图登陆,而我导完之后改了密码,所以不停的被锁,好吧
5.临时改成无限制,我登上去看看再说
SQL> alter profile default limit failed_login_attempts unlimited;
6.登陆验证无误,再改回来。
SQL> alter profile default limit failed_login_attempts 10;
7.交给测试,并给他们改密码和解锁的命令,自己折腾去吧。。over
BUT!前台有进程一直在试图登陆,而测试应用人员消失了。感觉整个过程傻呵呵的,也想不出更好的方法
1.drop user CORPOR_USER cascade;报错ORA-01940: cannot drop a user that is currently connected
如果这个用户里没啥东西就不导了吧,查看下对象个数,
SQL> select count(*) from dba_objects where owner='CORPOR_USER';
COUNT(*)
----------
432
哦,有这么多,那还是得导
2. 查查有哪些进程连着它.
SQL> Select username,sid,serial# from v$session where username='CORPOR_USER';
有10行,依次干掉。
alter system kill session '14,50865';
alter system kill session '15,11105';
alter system kill session '16,39167';
alter system kill session '69,61309';
alter system kill session '71,43915';
alter system kill session '73,28089';
alter system kill session '135,8759';
alter system kill session '142,30689';
alter system kill session '202,2003';
alter system kill session '206,32017';
kill完了立刻又全连上,woca。。什么诡异进程@@ 忙活了半天忘记停监听了,lsnrctl stop顿时。。白茫茫一片真干净
3.导完之后用CORPOR_USER登录,
$ sqlplus CORPOR_USER/CORPOR_USER
SQL*Plus: Release 11.2.0.3.0 Production on Thu Dec 5 23:35:30 2013
Copyright (c) 1982, 2011, Oracle. All rights reserved.
ERROR:
ORA-28000: the account is locked
Enter user-name:
解锁
SQL> ALTER USER CORPOR_USER ACCOUNT UNLOCK;
User altered.
SQL> SELECT ACCOUNT_STATUS FROM DBA_USERS WHERE USERNAME='CORPOR_USER';
ACCOUNT_STATUS
--------------------------------
OPEN
再次登陆又锁了。woca!!!
4.查到用户用的PROFILE: DEFAULT
查查几次密码错会锁-----
SQL> select PROFILE,resource_name,limit from dba_profiles where resource_name='FAILED_LOGIN_ATTEMPTS' where PROFILE='DEFAULT';
PROFILE RESOURCE_NAME LIMIT
--------------------------------------------------------------------------------------------
DEFAULT FAILED_LOGIN_ATTEMPTS 10
嗯!一定有应用一直在用这个用户试图登陆,而我导完之后改了密码,所以不停的被锁,好吧
5.临时改成无限制,我登上去看看再说
SQL> alter profile default limit failed_login_attempts unlimited;
6.登陆验证无误,再改回来。
SQL> alter profile default limit failed_login_attempts 10;
7.交给测试,并给他们改密码和解锁的命令,自己折腾去吧。。over
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7590112/viewspace-1062434/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/7590112/viewspace-1062434/
本文详细描述了解决Oracle数据库中一个用户频繁连接并导致账户锁定的问题,包括排查连接进程、导出数据库对象、修改密码限制等步骤。
8121

被折叠的 条评论
为什么被折叠?



