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

資訊專欄INFORMATION COLUMN

weblogic填坑一記

IT那活兒 / 1514人閱讀
weblogic填坑一記
前戲:
 為響應(yīng)某公司安全部門要求,針對(duì)該公司使用了weblogic中間件的系統(tǒng)進(jìn)行2019年10月發(fā)布的最新PSU補(bǔ)丁進(jìn)行更打,以修復(fù)對(duì)應(yīng)的安全漏洞。

而本文要講的故障案例,就是由本次補(bǔ)丁更打而引發(fā)的,而通過這個(gè)案例,我們能得到了哪些啟發(fā)?且看下文道來。

故障概述    
2019/11/19某公司營業(yè)系統(tǒng)訂單相關(guān)業(yè)務(wù)辦理時(shí),相同的業(yè)務(wù)請(qǐng)求間歇性的出現(xiàn)“ORA-01461: 僅能綁定要插入 LONG 列的 LONG 值”報(bào)錯(cuò)。
故障處理過程:
1、系統(tǒng)維護(hù)人員發(fā)現(xiàn)報(bào)錯(cuò)“ORA-01461: 僅能綁定要插入 LONG 列的 LONG 值”,第一反應(yīng)是程序有問題,向ORACLE數(shù)據(jù)庫中插入或更新數(shù)據(jù)時(shí)插入的字符串長度越界?但是相同的請(qǐng)求數(shù)據(jù)時(shí)而成功,時(shí)而報(bào)錯(cuò)。
核實(shí)發(fā)現(xiàn)代碼近期沒做過變更上線,相關(guān)業(yè)務(wù)也早就存在,代碼問題的可能性較小。

 2、數(shù)據(jù)庫側(cè)核實(shí),對(duì)應(yīng)的一體機(jī)Oracle19C庫沒有異常,且近期沒更新。

3、中間件側(cè)運(yùn)維人員核實(shí)昨晚針對(duì)故障系統(tǒng)抽取了部分主機(jī)進(jìn)行了weblogic補(bǔ)丁更打!“部分主機(jī)”與報(bào)錯(cuò)現(xiàn)象對(duì)上了,懷疑故障可能與補(bǔ)丁升級(jí)相關(guān)。

4、搜集了相關(guān)故障信息后,針對(duì)weblogic升級(jí)進(jìn)行了回滾,應(yīng)用重啟后,問題得到解決。

故障原因分析:
后續(xù)針對(duì)故障時(shí)刻搜集的相關(guān)信息進(jìn)行排查,未發(fā)現(xiàn)任何異常信息,僅有的信息只有業(yè)務(wù)日志“ORA-01461”報(bào)錯(cuò)。我們在測試環(huán)境進(jìn)行了weblogic補(bǔ)丁升級(jí)準(zhǔn)備復(fù)現(xiàn)問題,然而問題并未復(fù)現(xiàn)。

接著,我們針對(duì)能夠引發(fā)“ORA-01461”報(bào)錯(cuò)的可能原因,做了深一步的梳理:
1)插入到字符串長度大于4000字節(jié);

2)插入到表中的記錄的某個(gè)字段數(shù)據(jù)的實(shí)際長度大于2000個(gè)字節(jié)(如果是UTF-8,則是1333個(gè)字節(jié));或者是插入的記錄中有兩個(gè)或兩個(gè)以上長度大于2000字節(jié)的字符串。

3)數(shù)據(jù)庫與客戶端的JDBC驅(qū)動(dòng)不匹配。對(duì)于UTF-8或歐洲的某些字符集,oracle在存儲(chǔ)時(shí),對(duì)于一個(gè)字符需要2個(gè)或3個(gè)字節(jié)的存儲(chǔ)空間,雖然表定義中為varchar2(4000),但是其實(shí)該字段的data_length為其2倍或3倍長。這種情況下oracle會(huì)把data_length長度超過4000的當(dāng)做LONG型處理。

程序未做變更、數(shù)據(jù)庫未做變更,相關(guān)業(yè)務(wù)sql肯定沒問題,我們首先排除了1、2兩點(diǎn)的可能。針對(duì)第三點(diǎn),我們優(yōu)先進(jìn)行了進(jìn)一步排查。

歷史日志記錄應(yīng)用啟動(dòng)加載的JDBC驅(qū)動(dòng)版本為12.1.0.2.0:


當(dāng)晚補(bǔ)丁更新后,應(yīng)用啟動(dòng)日志記錄使用的JDBC驅(qū)動(dòng)驅(qū)動(dòng)版本為11.2.0.3.0 :


繼續(xù)核實(shí)發(fā)現(xiàn)測試環(huán)境補(bǔ)丁更新后應(yīng)用啟動(dòng)加載的JDBC驅(qū)動(dòng)為12.1.0.2.0:


為何同樣是補(bǔ)丁更新,卻出現(xiàn)了不一樣的結(jié)果?

我們對(duì)當(dāng)晚補(bǔ)丁升級(jí)操作過程進(jìn)行了復(fù)核,發(fā)現(xiàn)當(dāng)晚操作人員補(bǔ)丁升級(jí)是采用拷貝安裝的形式,直接從其他完成weblogic補(bǔ)丁更打的主機(jī)直接拷貝了一份安裝到目標(biāo)系統(tǒng)主機(jī)上。

恰巧,故障系統(tǒng)在項(xiàng)目初期,針對(duì)weblogic下jdbc驅(qū)動(dòng)包ojdbc6.jar做了定制修改,修改后驅(qū)動(dòng)為12.1.0.2.0版本:


而當(dāng)晚的拷貝安裝相當(dāng)于將修改后的ojdbc6.jar驅(qū)動(dòng)包還原了,因此驅(qū)動(dòng)版本變成了11.2.0.3.0。

后續(xù)我們在測試環(huán)境驗(yàn)證,將weblogic產(chǎn)品下驅(qū)動(dòng)包替換后,果然問題復(fù)現(xiàn)。引發(fā)故障的原因也就此解開。
  
五、剖析總結(jié)
綜上分析過程,我們很容易看出存在以下幾點(diǎn)問題的:
1) 升級(jí)當(dāng)晚缺少業(yè)務(wù)驗(yàn)證,或者說業(yè)務(wù)驗(yàn)證不充分 ;
2) 補(bǔ)丁更新拷貝安裝的方式欠妥,未按照規(guī)范敲命令升級(jí);
3) 廠商在項(xiàng)目上線初期,針對(duì)weblogic基礎(chǔ)軟件的JDBC驅(qū)動(dòng)包做了調(diào)整。
第一點(diǎn)非本次故障本質(zhì)原因,在此不做闡述。

第二點(diǎn),需要我們再次強(qiáng)調(diào)運(yùn)維操作的規(guī)范性,以及不折不扣的執(zhí)行的重要性,否則你不踩坑誰踩坑!

但是單就weblogic補(bǔ)丁升級(jí)這件事來說,運(yùn)維人員也確有他的難處。

運(yùn)維人員經(jīng)常面臨的是一晚上幾十臺(tái)、幾百臺(tái),一輪補(bǔ)丁升級(jí)涉及服務(wù)器甚至上千計(jì)數(shù),而一臺(tái)服務(wù)器按照規(guī)范升級(jí),卸載補(bǔ)丁、更打補(bǔ)丁最快可能也要40分鐘左右,按照規(guī)范升級(jí)顯然很難完成升級(jí)任務(wù)。

而針對(duì)weblogic在同操作系統(tǒng),版本差異不大的情況下,拷貝安裝是常被采納的方案,這就是為何操作人員使用拷貝安裝的原因。

冤不冤?不冤,你沒按規(guī)范來啊。冤不冤?冤!鬼知道開發(fā)廠商在系統(tǒng)上線初期針對(duì)weblogic的JDBC驅(qū)動(dòng)包做了改造啊,完全不知情,甚至是項(xiàng)目開發(fā)人員都不知曉或遺忘。

這就要引申出我們的第三點(diǎn)。

第三點(diǎn),拋開這次問題不講,以后的weblogic補(bǔ)丁如果針對(duì)JDBC驅(qū)動(dòng)做了更新,運(yùn)維人員按照規(guī)范升級(jí),同樣會(huì)掉坑里!廠商對(duì)weblogic默認(rèn)JDBC驅(qū)動(dòng)做了改造,還有什么地方被改了沒人知曉。

牽扯到后續(xù),如果系統(tǒng)遷移呢?咱們可以拷貝安裝遷移啊,但是目標(biāo)主機(jī)操作系統(tǒng)都換了呢,顯然拷貝安裝是不成立的。

這等于埋了一個(gè)大坑在這,誰踩誰軟。該故障的本質(zhì)是缺少了對(duì)基礎(chǔ)軟件安裝管理規(guī)范,以及運(yùn)維交接規(guī)范,進(jìn)一步思考是缺少依托平臺(tái)軟件流轉(zhuǎn)內(nèi)部入網(wǎng)上線標(biāo)準(zhǔn)化規(guī)范化執(zhí)行落地意識(shí)。畢竟,人是最可靠,但也是最不可靠的。




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

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

相關(guān)文章

  • SpringBoot 2.X Kotlin系列之AOP統(tǒng)一打印日志

    showImg(https://segmentfault.com/img/remote/1460000018819338?w=1024&h=500); 在開發(fā)項(xiàng)目中,我們經(jīng)常會(huì)需要打印日志,這樣方便開發(fā)人員了解接口調(diào)用情況及定位錯(cuò)誤問題,很多時(shí)候?qū)τ贑ontroller或者是Service的入?yún)⒑统鰠⑿枰蛴∪罩?,但是我們又不想重?fù)的在每個(gè)方法里去使用logger打印,這個(gè)時(shí)候希望有一個(gè)管理者統(tǒng)一...

    Nino 評(píng)論0 收藏0
  • weblogic 腳本創(chuàng)建Managed Server (受管服務(wù)器)

    摘要:直接執(zhí)行該腳本即可運(yùn)行工具。有離線和在線兩種模式,通過命令可以從進(jìn)入,按照目錄形式對(duì)資源進(jìn)行管理,甚至連操作的命令都和高度相似,比如是切換到指定資源路徑下,是列出該目錄下所有資源。 說明 weblogic安裝目錄下有一個(gè)創(chuàng)建Managed Server的腳本,腳本位于/u01/app/Oracle/Middleware/oracle_common/common/bin/config.s...

    shinezejian 評(píng)論0 收藏0

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

0條評(píng)論

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