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

資訊專欄INFORMATION COLUMN

weblogic填坑一記

IT那活兒 / 1502人閱讀
weblogic填坑一記
前戲:
 為響應某公司安全部門要求,針對該公司使用了weblogic中間件的系統進行2019年10月發布的最新PSU補丁進行更打,以修復對應的安全漏洞。

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

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

 2、數據庫側核實,對應的一體機Oracle19C庫沒有異常,且近期沒更新。

3、中間件側運維人員核實昨晚針對故障系統抽取了部分主機進行了weblogic補丁更打!“部分主機”與報錯現象對上了,懷疑故障可能與補丁升級相關。

4、搜集了相關故障信息后,針對weblogic升級進行了回滾,應用重啟后,問題得到解決。

故障原因分析:
后續針對故障時刻搜集的相關信息進行排查,未發現任何異常信息,僅有的信息只有業務日志“ORA-01461”報錯。我們在測試環境進行了weblogic補丁升級準備復現問題,然而問題并未復現。

接著,我們針對能夠引發“ORA-01461”報錯的可能原因,做了深一步的梳理:
1)插入到字符串長度大于4000字節;

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

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

程序未做變更、數據庫未做變更,相關業務sql肯定沒問題,我們首先排除了1、2兩點的可能。針對第三點,我們優先進行了進一步排查。

歷史日志記錄應用啟動加載的JDBC驅動版本為12.1.0.2.0:


當晚補丁更新后,應用啟動日志記錄使用的JDBC驅動驅動版本為11.2.0.3.0 :


繼續核實發現測試環境補丁更新后應用啟動加載的JDBC驅動為12.1.0.2.0:


為何同樣是補丁更新,卻出現了不一樣的結果?

我們對當晚補丁升級操作過程進行了復核,發現當晚操作人員補丁升級是采用拷貝安裝的形式,直接從其他完成weblogic補丁更打的主機直接拷貝了一份安裝到目標系統主機上。

恰巧,故障系統在項目初期,針對weblogic下jdbc驅動包ojdbc6.jar做了定制修改,修改后驅動為12.1.0.2.0版本:


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

后續我們在測試環境驗證,將weblogic產品下驅動包替換后,果然問題復現。引發故障的原因也就此解開。
  
五、剖析總結
綜上分析過程,我們很容易看出存在以下幾點問題的:
1) 升級當晚缺少業務驗證,或者說業務驗證不充分 ;
2) 補丁更新拷貝安裝的方式欠妥,未按照規范敲命令升級;
3) 廠商在項目上線初期,針對weblogic基礎軟件的JDBC驅動包做了調整。
第一點非本次故障本質原因,在此不做闡述。

第二點,需要我們再次強調運維操作的規范性,以及不折不扣的執行的重要性,否則你不踩坑誰踩坑!

但是單就weblogic補丁升級這件事來說,運維人員也確有他的難處。

運維人員經常面臨的是一晚上幾十臺、幾百臺,一輪補丁升級涉及服務器甚至上千計數,而一臺服務器按照規范升級,卸載補丁、更打補丁最快可能也要40分鐘左右,按照規范升級顯然很難完成升級任務。

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

冤不冤?不冤,你沒按規范來啊。冤不冤?冤!鬼知道開發廠商在系統上線初期針對weblogic的JDBC驅動包做了改造啊,完全不知情,甚至是項目開發人員都不知曉或遺忘。

這就要引申出我們的第三點。

第三點,拋開這次問題不講,以后的weblogic補丁如果針對JDBC驅動做了更新,運維人員按照規范升級,同樣會掉坑里!廠商對weblogic默認JDBC驅動做了改造,還有什么地方被改了沒人知曉。

牽扯到后續,如果系統遷移呢?咱們可以拷貝安裝遷移啊,但是目標主機操作系統都換了呢,顯然拷貝安裝是不成立的。

這等于埋了一個大坑在這,誰踩誰軟。該故障的本質是缺少了對基礎軟件安裝管理規范,以及運維交接規范,進一步思考是缺少依托平臺軟件流轉內部入網上線標準化規范化執行落地意識。畢竟,人是最可靠,但也是最不可靠的。




文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/130240.html

相關文章

  • SpringBoot 2.X Kotlin系列之AOP統一打印日志

    showImg(https://segmentfault.com/img/remote/1460000018819338?w=1024&h=500); 在開發項目中,我們經常會需要打印日志,這樣方便開發人員了解接口調用情況及定位錯誤問題,很多時候對于Controller或者是Service的入參和出參需要打印日志,但是我們又不想重復的在每個方法里去使用logger打印,這個時候希望有一個管理者統一...

    Nino 評論0 收藏0
  • weblogic 腳本創建Managed Server (受管服務器)

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

    shinezejian 評論0 收藏0

發表評論

0條評論

IT那活兒

|高級講師

TA的文章

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