故障現(xiàn)象
某銀行總行 ATM 系統(tǒng)承載著全國 ATM 機渠道的 7×24 的聯(lián)機交易。在應(yīng)用升級新版本后,數(shù)據(jù)庫開始并持續(xù)出現(xiàn)大量"enq:HW –contention" 即高水位的競爭,繼而導(dǎo)致交易響應(yīng)時間從 20 毫秒漲至 300 毫秒, 交易出現(xiàn)大量阻塞,引起交易超時,影響范圍較大,屬于重大故障。
故障分析
中亦科技數(shù)據(jù)庫專家通過現(xiàn)場分析,發(fā)現(xiàn)由于應(yīng)用報文長度發(fā)生較大改變,導(dǎo)致 Lob 字段從塊內(nèi)存儲轉(zhuǎn)到塊外存儲,是產(chǎn)生問題的根本原因。
由于該變化,應(yīng)用對Lob字段的修改,已從原來的undo表空間存儲前鏡像變?yōu)樵贚ob Segment 所在表空間來存儲前鏡像。即 undo 機制發(fā)生了變化,lob字段的修改將會使 LobSegment 所在表空間的空間的分配和回收異常頻繁,因此出現(xiàn)大量“enq:HW –contention”競爭,從而導(dǎo)致交易響應(yīng)時間大幅增加。
解決方案
在短期無法修改應(yīng)用程序的情況下,中亦科技數(shù)據(jù)庫專家基于對數(shù)據(jù)庫原理的深刻理解,提出將非分區(qū)表改造為 hash 分區(qū)表這樣大膽的解決方案,這樣原來的核心業(yè)務(wù)表將從一個 segment 改為多個 segment, 因此 enqueue 的個數(shù)從 1 個變?yōu)槎鄠€,從而消除競爭。
核心表從非分區(qū)改造為 hash 分區(qū)可使用在線重定義技術(shù)在線進行,從而達(dá)到不停機的目的。
客戶收益
在客戶接受并采用了在線重定義技術(shù)對相關(guān)核心表進行 hash 分區(qū)改造后,交易響應(yīng)時間從 300 毫秒恢復(fù)至 20 毫秒,ATM 相關(guān)交易恢復(fù)正常,圓滿解決了這次重大故障。