oracle11g 修改密碼后登錄的TNS-12535: TNS:operation timed out問題
來源:程序員人生 發布時間:2016-08-24 08:19:04 閱讀次數:3357次
1,問題描寫
由于安全斟酌,所以oracle生產環境修改用戶密碼后,用新密碼登錄失敗,登錄卡死,1直處于登錄狀態,分析
1,事前已關閉了所有的連接oracle的利用,所以不存在是利用程序連接致使的。
2,利用程序重新啟動后已更新了密碼,也不多是新啟動的利用程序致使。
3,測試人員開發人員都已下班了,應當沒有人正在操作使用線上數據庫
所以應當不是我利用程序引發的。
2,去查看后臺alert告警日志,在后臺的alert_powerdes.log里面有以下報錯信息:
***********************************************************************
Fatal NI connect error 12170.
VERSION INFORMATION:
TNS for Linux: Version 11.2.0.1.0 - Production
Oracle Bequeath NT Protocol Adapter for Linux: Version 11.2.0.1.0 -Production
TCP/IP NT Protocol Adapter for Linux: Version 11.2.0.1.0 - Production
Time: 28-JUN⑵016 21:51:06
Tracing not turned on.
Tnserror struct:
ns main err code: 12535
TNS⑴2535: TNS:operation timed out
ns secondary err code: 12606
nt main err code: 0
nt secondary err code: 0
20160628 215106 logon denied from10.251.5.22 39028 with ?
nt OS err code: 0
Client address: (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.121.0)(PORT=59729))
WARNING: inbound connection timed out(ORA⑶136)
......
20160628 215049 logon denied from192.168.121.0 39032 with ?
Tue Jun 28 21:50:59 2016
20160628 215059 logon denied from192.168.121.0 39034 with ?
Tue Jun 28 21:51:06 2016
20160628 215106 logon denied from192.168.121.0 39030 with ?
Tue Jun 28 21:51:06 2016
有密碼登錄報錯信息,再通過過濾看下有多少ip地址的要求報密碼毛病:
[oracle@pldb1 ~]$ tail -fn 2000/oracle/app/oracle/diag/rdbms/powerdes/powerdes/trace/alert_powerdes.log |grep"Client address"
Client address: (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.121.0)(PORT=60355))
Client address: (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.121.0)(PORT=60351))
Client address: (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.121.0)(PORT=60354))
Client address: (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.121.0)(PORT=60353))
看到有192.168.121.0 的ip地址在不停的連接數據庫,報密碼毛病,由于密碼已更新了,所以這個連接失敗,而且1直在連接中。猜想多是這個緣由致使的。
看到這個ip地址是公司內部的ip地址,那末是誰呢?登錄dhcp服務器,查看到是信息部總監的電腦,然后打他電話打不通,找到他在辦公室的電腦,直接強行關機,再視察1段時間后,再也沒用報錯信息,然后用我們在本地或利用服務器上用新密碼登錄正常了。以后給信息部總監發email和短信,告知他強行關了他電腦的緣由。
3,摹擬測試正常
難道是oracle用戶連接用舊密碼1直連接,這個連接沒有釋放,我改了新密碼后,舊的連接1直試圖訪問致使這個用戶登錄阻塞?我做下測試
(1)我在本地oracle測試庫做了測試,新建1個帳號,然后使用sqlplus連接上去;
SQL> create user user_test1 identifiedby "query0418";
User created.
SQL>
SQL> grant create session ,dba touser_test1;
Grant succeeded.
SQL>
然后再使用新用戶登錄,操作數據庫:
[oracle@hch_test_pd_121_217 admin]$ rlwrapsqlplus user_test1/query0418@t1;
SQL*Plus: Release 11.2.0.1.0 Production onWed Jun 29 12:27:49 2016
Copyright (c) 1982, 2009,
Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise EditionRelease 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Miningand Real Application Testing options
SQL>
create table zz_bak (id number);
insert into zz_bak values(1);
Table created.
1 row created.
SQL> commit;
Commit complete.
SQL> select * from zz_bak;
ID
----------
1
SQL>
SQL> update zz_bak set id=2 where id=1;
1 row updated.
SQL>
(2)然后新開1個shell連接窗口,登錄上去修改
[oracle@hch_test_pd_121_217 admin]$ rlwrapsqlplus / as sysdba
SQL*Plus: Release 11.2.0.1.0 Production onWed Jun 29 12:29:16 2016
Copyright (c) 1982, 2009,
Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise EditionRelease 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Miningand Real Application Testing options
SQL> alter user user_test1 identified by"ys";
User altered.
SQL>
然后退出,再登錄
[oracle@hch_test_pd_121_217 admin]$ rlwrapsqlplus user_test1/ys@t1;
SQL*Plus: Release 11.2.0.1.0 Production onWed Jun 29 12:30:34 2016
Copyright (c) 1982, 2009,
Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise EditionRelease 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Miningand Real Application Testing options
SQL> select * from zz_bak;
ID
----------
1
SQL> insert into zz_bak(id) values(3);
1 row created.
SQL> commit;
Commit complete.
SQL> select * from zz_bak;
ID
----------
3
1
SQL>
(3)再去第1個sqlplus窗口履行操作(在修改密碼之前用舊密碼登錄sqlplus的窗口),看到可以操作
SQL> commit;
Commit complete.
SQL> update zz_bak set id=2 where id=1;
0 rows updated.
SQL> select * from zz_bak;
ID
----------
3
2
SQL>
(4)再去第2個sqlplus窗口,操作zz_bak表,數據也正常。
SQL> select * from zz_bak;
ID
----------
3
2
SQL>
4,場景復現
第2天等信息部總監過來的時候,問他的電腦上開了啥?
(1)他說他開了plsql,然后在plsql上面edit數據,沒有commit也沒用rollback,然后他下班了后也沒有關閉掉;
(2)他開了ecplise,用工程連接生產庫,沒有關閉。
我給他們的建議是:
(1) 下班以后,關閉電腦,關閉所有連接生產庫的連接。
(2) 不允許在本地電腦連接生產庫做測試debug。
不解之謎?
(1)是甚么緣由致使新用戶修改密碼后,登錄不進去呢?現象是由于有eclipse工程和plsql用舊的密碼在連接致使,但是我摹擬測試正常,情形沒法復現啊!
(2)現在即便我輸入毛病密碼嘗試登錄,也不會卡住,而是立即會提示密碼毛病,后臺alert日志不會有告警信息了。
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈