成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Oracle Listener連接風(fēng)暴的分析

IT那活兒 / 889人閱讀
Oracle Listener連接風(fēng)暴的分析

點(diǎn)擊上方“IT那活兒”,關(guān)注后了解更多內(nèi)容,不管IT什么活兒,干就完了?。?!





研究背景



如果客戶應(yīng)用程序存在大量短連接,這會(huì)導(dǎo)致數(shù)據(jù)庫(kù)、服務(wù)器資源飆升,并且會(huì)導(dǎo)致監(jiān)聽無(wú)法響應(yīng)更多請(qǐng)求。
本次在測(cè)試環(huán)境上通過(guò)腳本模擬批量連接數(shù)據(jù)庫(kù),復(fù)現(xiàn)因連接風(fēng)暴導(dǎo)致連接數(shù)據(jù)庫(kù)報(bào)錯(cuò)ORA-12514:  TNS:listener does not currently know of service requested in connect的場(chǎng)景并分析出導(dǎo)致連接風(fēng)暴的應(yīng)用服務(wù)名。





測(cè)試環(huán)境




1. 操作系統(tǒng)redhat7


2. 數(shù)據(jù)庫(kù)版19.3.0


3. 架構(gòu):機(jī)






測(cè)試過(guò)程



1. 查看當(dāng)前數(shù)據(jù)庫(kù)參數(shù)

2. 編寫腳本模擬批量連接-并發(fā)執(zhí)行

編寫conn連接腳本:
$vi conn.sh
sqlplus sys/[email protected]:1521/orcl as sysdba
select * from v$version;
exit;

$vi conn1.sh
sqlplus sys/[email protected]:1521/orcl1 as sysdba
select * from v$version;
exit;

$vi conn2.sh
sqlplus sys/[email protected]:1521/orcl2 as sysdba
select * from v$version;
exit;
編寫后臺(tái)并發(fā)執(zhí)行腳本(connect.sh先執(zhí)行5分鐘,然后再執(zhí)行connect1.sh):
$vi connect.sh
for i in {1..200000}
do
for j in {1..40}
do
sh /home/oracle/conn.sh
done
done
EOF

$vi connect1.sh
for i in {1.. 200000}
do
for j in {1. .40}
do
sh /home/oracle/conn1.sh
done
done
EOF

$vi connect2.sh
for i in {1.. 200000}
do
for j in {1. .40}
do
sh /home/oracle/conn2.sh
done
done
EOF
3. 執(zhí)行腳本并觀察listener.log
執(zhí)行腳本:
nohup sh connect.sh > /dev/null 2>&1&
nohup sh connect1.sh > /dev/null 2>&1&
nohup sh connect2.sh > /dev/null 2>&1&
觀察listener.log。
出現(xiàn)大量ORA告警:
[oracle@orcl:/u01/app/oracle/diag/tnslsnr/orcl/listener/trace]$ tail -20f listener.log
接下來(lái)通過(guò)服務(wù)名登錄數(shù)據(jù)庫(kù)。
這時(shí)連接報(bào)錯(cuò),已經(jīng)復(fù)現(xiàn)出ORA-12514報(bào)錯(cuò):
4. 通過(guò)監(jiān)聽日志分析是哪個(gè)服務(wù)名批量連接導(dǎo)致
將監(jiān)聽日志內(nèi)容導(dǎo)入txt:
$grep 18-FEB-2022  listener.log | sed s/*.*SERVICE_NAME=/ /g;s/).*HOST=/ /g;s/).*$//g   | awk 
{if(NF==4){print "insert into t_tab
values(
"$1","$2","$3","$4");"}}   >
/home/oracle/insert.sql
建表并導(dǎo)入txt內(nèi)容:
  • --a1 日期;

  • --a2 時(shí)間;

  • --a3 服務(wù)名;

  • --a4 客戶端ip。

Create table t_tab( a1 varchar2(50),a2  varchar2(50),a3  varchar2(50),a4  varchar2(50));
@/home/oracle/insert.sql
按分鐘進(jìn)行統(tǒng)計(jì)個(gè)service發(fā)起的連接數(shù):
select  a1,substr(a2,1,5),a3,count(1) from t_tab where a3 in (orcl,orcl1,orcl2) group by a1,substr(a2,1,5),a3 order by count(1) desc;
顯然,orcl2這個(gè)service的連接異常導(dǎo)致本次問(wèn)題的發(fā)生。





測(cè)試總結(jié)



本次模擬的重點(diǎn)在于通過(guò)3.4的方法將監(jiān)聽日志通過(guò)grep篩選數(shù)據(jù)并導(dǎo)入表,查詢連接數(shù)據(jù)庫(kù)報(bào)錯(cuò)的時(shí)間段去分析導(dǎo)致連接風(fēng)暴的服務(wù)名稱。
日常維護(hù)中通過(guò)tail -20f listener.log 觀察,如持續(xù)性快速刷屏則可能已經(jīng)出現(xiàn)連接風(fēng)暴,因短連接持續(xù)性發(fā)起連接耗盡監(jiān)聽ip 1521端口資源,導(dǎo)致監(jiān)聽無(wú)法正常處理連接請(qǐng)求。超過(guò)每秒50次連接則需要關(guān)注。


本文作者:余家豪

本文來(lái)源:IT那活兒(上海新炬王翦團(tuán)隊(duì))

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/129601.html

相關(guān)文章

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<