◆尹 濤 戴昭穎 閆 冬
數(shù)據(jù)庫升級的風(fēng)險與對策研究
◆尹 濤 戴昭穎 閆 冬
(首鋼京唐鋼鐵聯(lián)合有限責(zé)任公司 河北 063200)
數(shù)據(jù)庫支撐整個業(yè)務(wù)系統(tǒng)的穩(wěn)定運行,隨著業(yè)務(wù)系統(tǒng)功能的不斷增加,使得用戶對于系統(tǒng)的依賴程度逐漸增加,系統(tǒng)的穩(wěn)定直接影響到生產(chǎn)運行,對系統(tǒng)響應(yīng)效率、系統(tǒng)穩(wěn)定性的要求也在逐漸增加。隨著Oracle 11G數(shù)據(jù)庫的出現(xiàn)與成熟,新的數(shù)據(jù)庫版本能夠更好地對應(yīng)用系統(tǒng)進行兼容,保證系統(tǒng)的穩(wěn)定性。通過這次筆者公司應(yīng)用系統(tǒng)數(shù)據(jù)庫的全面升級,針對升級中面臨的風(fēng)險問題進行集中分析和研究,采用Oracle Goldengate的容災(zāi)技術(shù),加速打補丁等相應(yīng)的應(yīng)對策略,實現(xiàn)了數(shù)據(jù)庫的線下升級,減少了業(yè)務(wù)停機時間,有效降低了風(fēng)險。通過制定詳細的升級計劃及步驟,風(fēng)險應(yīng)急預(yù)案,順利地完成信息系統(tǒng)的數(shù)據(jù)庫升級。
Oracle 10G;Oracle 11G;Goldengate的容災(zāi)技術(shù);加速打補丁
數(shù)據(jù)庫作為整個信息化系統(tǒng)的核心,組織、存儲和管理著所有業(yè)務(wù)系統(tǒng)的數(shù)據(jù),隨著Oracle 11G版本的推出,新的版本在原有版本的基礎(chǔ)上,更全面地提高用戶服務(wù)水平、減少宕機時間以及更加有效地利用 IT資源,同時還增強全天候業(yè)務(wù)應(yīng)用程序的性能、可伸縮性和安全性,利用真正應(yīng)用測試(RAT)盡量降低更改的風(fēng)險。利用管理自動化提高 DBA 效率,致力于顯著簡化和完全自動化 DBA 任務(wù)。此外,Oracle 11G還提供了大量顯著的 Oracle Data Guard增強,包括可以在物理備用系統(tǒng)上運行實時查詢用于報表和其他目的、可以通過將物理備用系統(tǒng)暫時轉(zhuǎn)換為邏輯備用系統(tǒng)執(zhí)行聯(lián)機的、滾動的數(shù)據(jù)庫升級,Oracle 11G的 OLTP表壓縮通過更加高效地使用內(nèi)存來緩存數(shù)據(jù)以及減少表掃描的 I/O提高了數(shù)據(jù)庫性能利用 OLTP表壓縮,可以利用最小的處理開銷達到2到3倍的壓縮比。
目前筆者公司從現(xiàn)有的Oracle 10G數(shù)據(jù)庫升級到Oracle 11G數(shù)據(jù)庫的整個過程,找出整個升級過程中的風(fēng)險點及對策,可以解決數(shù)據(jù)庫表內(nèi)存溢出、操作系統(tǒng)升級、DP備份工具升級、應(yīng)用系統(tǒng)頻繁更新等帶來的問題,這些問題都會導(dǎo)致業(yè)務(wù)系統(tǒng)的不穩(wěn)定性。從原先的Oracle10G升級到Oracle 11G,可以保證數(shù)據(jù)的安全性和系統(tǒng)的穩(wěn)定性,可以更好地支撐業(yè)務(wù)系統(tǒng),保證生產(chǎn)業(yè)務(wù)有序進行。
針對公司這次信息化系統(tǒng)數(shù)據(jù)庫的整體升級的過程,涉及到相關(guān)Oracle數(shù)據(jù)庫的應(yīng)用系統(tǒng)為39套核心業(yè)務(wù)系統(tǒng),其中三級包含鐵前、煉鋼、熱軋、冷軋、LIMS、倉儲、計量、能源的開發(fā)、測試、生產(chǎn)等23套系統(tǒng)的數(shù)據(jù)庫;四級包含ERP、BW、XI的開發(fā)、測試、生產(chǎn)等9套系統(tǒng)的數(shù)據(jù)庫;二三級 integration中間件的7套系統(tǒng)的數(shù)據(jù)庫。這些系統(tǒng)包含公司生產(chǎn)經(jīng)營的各個方面,因此在升級前要對可能出現(xiàn)的情況進行分析,給出應(yīng)對方案。升級過程中會存在數(shù)據(jù)丟失、業(yè)務(wù)操作不連續(xù)、停機時間較長導(dǎo)致對生產(chǎn)業(yè)務(wù)造成影響,造成生產(chǎn)工序、業(yè)務(wù)不能正常操作的風(fēng)險,需要針對這些風(fēng)險制定相應(yīng)的風(fēng)險應(yīng)急預(yù)案,一旦升級出現(xiàn)問題,要提前啟動應(yīng)急預(yù)案,通知用戶對部分業(yè)務(wù)進行系統(tǒng)外操作,后續(xù)補錄等工作,保證對生產(chǎn)影響最小。
針對升級過程中出現(xiàn)的數(shù)據(jù)丟失、業(yè)務(wù)操作不連續(xù)的風(fēng)險,生產(chǎn)相關(guān)的數(shù)據(jù)庫分別對應(yīng)增加Standby備用數(shù)據(jù)庫,并采用先進的Goldengate同步技術(shù)進行主備數(shù)據(jù)同步,保證二者數(shù)據(jù)的高度一致,實現(xiàn)主備數(shù)據(jù)的無縫切換,同時備用數(shù)據(jù)庫日常承擔(dān)報表數(shù)據(jù)響應(yīng)功能。GoldenGate是一種基于日志的數(shù)據(jù)復(fù)制軟件技術(shù),它通過解析源數(shù)據(jù)庫的日志獲得對象的增刪改增量變化,再將這些改變以事務(wù)為單元應(yīng)用到目標數(shù)據(jù)庫??蓪崿F(xiàn)亞秒級數(shù)據(jù)傳輸,同時采用數(shù)據(jù)庫的內(nèi)部機制有效保證事務(wù)的完整性。
Goldengate 數(shù)據(jù)同步技術(shù)能夠在活動的生產(chǎn)端及備份端進行數(shù)據(jù)復(fù)制,秒一級的數(shù)據(jù)延遲,大交易量的數(shù)據(jù)復(fù)制,能在很大程度上確保主備兩端數(shù)據(jù)的同步性及一致性,實現(xiàn)雙機熱備。在對其中一臺數(shù)據(jù)庫服務(wù)器進行升級時,系統(tǒng)5分鐘內(nèi)自動切換到備用系統(tǒng),且系統(tǒng)運行穩(wěn)定,不會對生產(chǎn)造成任何影響。如圖1。
圖1 GoldenGate數(shù)據(jù)同步原理
針對BW、ERP和XI系統(tǒng)用戶操作量大,數(shù)據(jù)要求實時性高的問題,數(shù)據(jù)庫升級對實際的業(yè)務(wù)操作影響非常大,經(jīng)過和各部門溝通,明確單次停機窗口不能大于10小時的要求。在保證數(shù)據(jù)安全的前提下,經(jīng)過在沙箱系統(tǒng)、開發(fā)系統(tǒng)和測試系統(tǒng)的演練,按照傳統(tǒng)升級方案制定了初步的升級計劃。該計劃經(jīng)過多次優(yōu)化和壓縮,都難以將整個升級過程控制在16個小時以內(nèi),不能滿足各專業(yè)正常生產(chǎn)的要求。
為縮短升級期間的停機窗口,提升關(guān)鍵業(yè)務(wù)應(yīng)用的持續(xù)可用性,經(jīng)過多次測試,提出了對傳統(tǒng)停機方案的優(yōu)化方案。針對應(yīng)用系統(tǒng)和操作系統(tǒng)信息,分析數(shù)據(jù)庫的內(nèi)部表結(jié)構(gòu),了解數(shù)據(jù)的分布情況。將與業(yè)務(wù)無關(guān)的數(shù)據(jù)清除,或者轉(zhuǎn)儲到文件系統(tǒng),盡量的減少遷移過程中的數(shù)據(jù)量。同時,考慮數(shù)據(jù)庫升級操作前需要打很多預(yù)先具備的補丁,升級至最新版本的話,可能需要打上幾GB大小的補丁包。因此,加速打補丁是減少升級停機時間技術(shù)中很關(guān)鍵的一環(huán)。在這個步驟中,使用類似整體升級過程中所使用的方法,首先我們試著使必須執(zhí)行的任務(wù)的數(shù)量和開銷最小化,然后在試著加速那些剩余的必須執(zhí)行的任務(wù)。如圖2。
圖2 合并補丁包原理
遵循升級過程中數(shù)據(jù)安全原則,保證業(yè)務(wù)數(shù)據(jù)在實施過程中的安全與完整,升級的每一步過程中都要做好復(fù)制和備份,避免數(shù)據(jù)丟失的風(fēng)險,對業(yè)務(wù)造成不可估計的損失。
升級的過程中要保證生產(chǎn)不間斷,遵循業(yè)務(wù)連續(xù)性的原則,在經(jīng)過充分測試和培訓(xùn)的前提下,進行項目的相關(guān)操作,保證業(yè)務(wù)平穩(wěn)運行。
系統(tǒng)必須停機的過程,必須反復(fù)討論確認停機時間點,遵循生產(chǎn)系統(tǒng)最小停機時間原則,對業(yè)務(wù)運轉(zhuǎn)的影響減少到最低,同時通過對項目計劃的合理安排,減少開發(fā)需求的凍結(jié)時間。
數(shù)據(jù)庫升級11G之前需要制定詳細而周密的升級和測試計劃,反復(fù)驗證和測試11G數(shù)據(jù)庫的各個階段,保證不影響生產(chǎn)運行的前提下進行數(shù)據(jù)庫升級。首先,為了確保測試和演練的嚴密性,實施前期需要分別搭建各個系統(tǒng)數(shù)據(jù)庫升級測試的沙箱系統(tǒng),需要搭建與生產(chǎn)環(huán)境一致的演練環(huán)境,保證硬件、操作系統(tǒng)、應(yīng)用軟件、數(shù)據(jù)以及周邊結(jié)構(gòu)保持與生產(chǎn)一致。在沙箱測試系統(tǒng)中進行升級演練,接口配合,完成后組織各模塊相關(guān)業(yè)務(wù)功能測試。其次,進行測試和演練工作,主要包括幾個方面內(nèi)容:業(yè)務(wù)功能測試、系統(tǒng)集成測試、性能測試、容量與負載壓力測試、升級前后對比測試、周全的數(shù)據(jù)備份方案、升級步驟測試、oracle11G數(shù)據(jù)庫能力測試。最后,升級前檢查軟硬件環(huán)境,下載相應(yīng)介質(zhì),進行相關(guān)補丁的檢查及安裝,做好操作系統(tǒng)備份和數(shù)據(jù)備份,數(shù)據(jù)文件的轉(zhuǎn)移。升級方案先在系統(tǒng)開發(fā)系統(tǒng)實施、實施沒有問題后在測試系統(tǒng)進行,在對生產(chǎn)系統(tǒng)進行升級之前,需要完成開發(fā)系統(tǒng)和測試系統(tǒng)進行升級操作。ERP系統(tǒng)涉及各個模塊的業(yè)務(wù),需要制定詳細的測試計劃,對數(shù)據(jù)庫升級以后的測試系統(tǒng)進行標準事務(wù)碼、自開發(fā)程序及報表測試、跨模塊之間的集成測試,在系統(tǒng)內(nèi)模擬月結(jié)測試,系統(tǒng)配置及請求傳輸測試和BW系統(tǒng)抽數(shù)測試,進行三四級之間集成測試和數(shù)據(jù)歸檔測試。只有將系統(tǒng)所有功能充分進行測試,才能確保在生產(chǎn)系統(tǒng)上進行升級操作,考慮到ERP系統(tǒng)對業(yè)務(wù)的重要影響,停機時間選在月度中旬,分兩段時間停機保證每次停機時間對相關(guān)的業(yè)務(wù)工作影響最小。
在升級過程中,技術(shù)人員要結(jié)合業(yè)務(wù)人員開會進行開會討論,對升級過程中停機節(jié)點和重點業(yè)務(wù)時間進行核對,需要與業(yè)務(wù)人員確定最終的停機點及停機時間。升級方案討論完善確定后,由專業(yè)人員對方案進行評審,提出相關(guān)意見,并在沙箱測試系統(tǒng)中進行升級演練,接口配合,完成后組織各模塊相關(guān)業(yè)務(wù)功能測試。由于四級系統(tǒng)數(shù)據(jù)傳輸及一致性要求,盡量縮短開發(fā)凍結(jié)周期,開發(fā)測試系統(tǒng)的升級在較短周期內(nèi)完成,并按照測試、開發(fā)、生產(chǎn)系統(tǒng)的實施順序進行,保證升級過程的嚴謹和充分驗證。
本文主要是對信息化系統(tǒng)數(shù)據(jù)庫升級的風(fēng)險進行分析,并針對這些風(fēng)險提出了基于GoldenGate、加速打補丁等相應(yīng)應(yīng)對策略。對于升級風(fēng)險過程中的預(yù)估和評定,并針對問題提出相應(yīng)對策,不僅有效解決了在升級過程中的各種風(fēng)險,還為后續(xù)的數(shù)據(jù)庫升級過程積累了豐富的實施經(jīng)驗。完成數(shù)據(jù)庫版本升級,使得主要業(yè)務(wù)系統(tǒng)版本運行在目前主流的系統(tǒng)平臺上,提高了公司業(yè)務(wù)的穩(wěn)定運行能力。用戶操作信息化系統(tǒng)時更方便快捷,提高了各業(yè)務(wù)部門對信息系統(tǒng)的認可度,進而提升生產(chǎn)效率。綜合質(zhì)量和生產(chǎn)環(huán)節(jié),在確保生產(chǎn)能力的同時,節(jié)約人工成本,提升質(zhì)量保證,最終提升公司整體市場競爭力。
公司信息化系統(tǒng)數(shù)據(jù)庫升級歷時7個月,截止目前,系統(tǒng)數(shù)據(jù)庫已經(jīng)穩(wěn)定運行12個月,創(chuàng)造的直接經(jīng)濟效益達到820.2萬元。并且提升公司信息化水平,讓信息化系統(tǒng)與業(yè)務(wù)有效地結(jié)合起來,也鍛煉公司的信息化隊伍,提升信息化及運維人員的技術(shù)能力,在升級過程中形成的風(fēng)險應(yīng)急預(yù)案及操作手冊也將成為企業(yè)的無形資產(chǎn),對未來數(shù)據(jù)庫升級和維護工作積累寶貴的經(jīng)驗。
[1]Edward Whalen,Jim, Czuprynski著;許向東,林緒嘉,劉炳林譯.Oracle數(shù)據(jù)庫升級、遷移和轉(zhuǎn)換最佳實踐[M].出版社:清華大學(xué)出版社,2017.
[2]張成.淺談煉化企業(yè)MES系統(tǒng)Oracle數(shù)據(jù)庫備份[J].電腦知識與技術(shù),2011.
[3]蓋國強.循序漸進Oracle-數(shù)據(jù)庫管理、優(yōu)化與備份恢復(fù)[M];北京:人民郵電出版社,2007.
[4]張自輝.Oracle數(shù)據(jù)庫的備份方法和策略[J].吉首大學(xué)學(xué)報,2009.