国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Oracle Listener連接風暴的分析

IT那活兒 / 855人閱讀
Oracle Listener連接風暴的分析

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





研究背景



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





測試環(huán)境




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


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


3. 架構(gòu):






測試過程



1. 查看當前數(shù)據(jù)庫參數(shù)

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

編寫conn連接腳本:
$vi conn.sh
sqlplus sys/system@192.168.10.130:1521/orcl as sysdba
select * from v$version;
exit;

$vi conn1.sh
sqlplus sys/system@192.168.10.130:1521/orcl1 as sysdba
select * from v$version;
exit;

$vi conn2.sh
sqlplus sys/system@192.168.10.130:1521/orcl2 as sysdba
select * from v$version;
exit;
編寫后臺并發(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
接下來通過服務名登錄數(shù)據(jù)庫。
這時連接報錯,已經(jīng)復現(xiàn)出ORA-12514報錯:
4. 通過監(jiān)聽日志分析是哪個服務名批量連接導致
將監(jiān)聽日志內(nèi)容導入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
建表并導入txt內(nèi)容:
  • --a1 日期;

  • --a2 時間;

  • --a3 服務名;

  • --a4 客戶端ip。

Create table t_tab( a1 varchar2(50),a2  varchar2(50),a3  varchar2(50),a4  varchar2(50));
@/home/oracle/insert.sql
按分鐘進行統(tǒng)計個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這個service的連接異常導致本次問題的發(fā)生。





測試總結(jié)



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


本文作者:余家豪

本文來源:IT那活兒(上海新炬王翦團隊)

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

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/129601.html

相關文章

發(fā)表評論

0條評論

IT那活兒

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<