詹溫棋
摘要
本文結(jié)合公司現(xiàn)狀,探討災(zāi)備方案的選擇,實(shí)施,實(shí)現(xiàn)生產(chǎn)數(shù)據(jù)的容災(zāi),讀寫分離,提高系統(tǒng)整體的業(yè)務(wù)處理能力。
【關(guān)鍵詞】容災(zāi)系統(tǒng)備份 讀寫分離 數(shù)據(jù)整合
隨著公司信息化建設(shè)推進(jìn),自動(dòng)化制造執(zhí)行系統(tǒng)數(shù)據(jù)的可靠性和業(yè)務(wù)連續(xù)性變得日益重要。然而這些數(shù)據(jù)由于來(lái)源分散,分布于不同單位,不同存儲(chǔ),不同系統(tǒng),缺少邏輯關(guān)聯(lián)。如何保證數(shù)據(jù)資源的安全可靠和統(tǒng)一管理是一個(gè)迫切需要解決的問(wèn)題。依據(jù)公司實(shí)際,本文制定容災(zāi)備用以及數(shù)據(jù)整合的完整解決方案,取得了比較好的應(yīng)用效果。
1 現(xiàn)狀分析
公司自動(dòng)化執(zhí)行系統(tǒng)不斷建設(shè),存在一鋼,二鋼,鋼后等眾多數(shù)據(jù)庫(kù),業(yè)務(wù)關(guān)系復(fù)雜,各數(shù)據(jù)庫(kù)分布在不同存儲(chǔ),安裝在不同操作系統(tǒng)上。大量報(bào)表,作業(yè)通過(guò)DBLINK相互鏈接?,F(xiàn)場(chǎng)工業(yè)實(shí)時(shí)數(shù)據(jù)寫入十分頻繁,并發(fā)量很大,寫入與訪問(wèn)時(shí)常發(fā)生沖突,實(shí)際的讀寫過(guò)程并沒有分離。各系統(tǒng)不同開發(fā)人員開發(fā),編寫SQL語(yǔ)句水平不一,由于缺乏性能設(shè)計(jì)和優(yōu)化,時(shí)常會(huì)發(fā)生占用過(guò)多的資源,降低數(shù)據(jù)庫(kù)整體性能的問(wèn)題,最終影響其他用戶的訪問(wèn)效率。各部門不斷提出各種報(bào)表需求,跨廠,跨產(chǎn)線,希望擁有一個(gè)綜合數(shù)據(jù)庫(kù),能夠易用免維護(hù),同時(shí)確保數(shù)據(jù)一致性。
自動(dòng)化制造執(zhí)行系統(tǒng)不斷擴(kuò)展,與公司生產(chǎn)經(jīng)營(yíng)結(jié)合越來(lái)越緊密,系統(tǒng)故障將影響生產(chǎn)運(yùn)行,客戶運(yùn)輸進(jìn)出廠,數(shù)據(jù)丟失尤其是財(cái)務(wù)數(shù)據(jù)的將產(chǎn)生災(zāi)難性的影響,需要采取措施降低風(fēng)險(xiǎn),保證數(shù)據(jù)的實(shí)時(shí)性,完整性和一致性。
制造執(zhí)行系統(tǒng)維護(hù)、配件更換、系統(tǒng)遷移、軟件升級(jí)等情況下需要保證能夠提供不間斷服務(wù),確保業(yè)務(wù)連續(xù)性,提高數(shù)據(jù)中心的可用性和靈活性。
為解決以上問(wèn)題,需要進(jìn)行災(zāi)難備份恢復(fù)系統(tǒng)的建設(shè)。
2 容災(zāi)技術(shù)選擇與架構(gòu)
2.1 容災(zāi)技術(shù)選擇
根據(jù)操作系統(tǒng)的讀寫操作路徑以及復(fù)制對(duì)象將容災(zāi)技術(shù)分為四類:基于磁盤陣列、基于邏輯卷層、基于文件層、基于應(yīng)用層的復(fù)制技術(shù)。基于磁盤陣列復(fù)制技術(shù)硬件綁定,公司數(shù)據(jù)庫(kù)存儲(chǔ)類型多樣,采用該方案成本高昂,實(shí)施復(fù)雜?;谶壿嬀韺雍臀募訌?fù)制技術(shù)目標(biāo)數(shù)據(jù)庫(kù)處于離線狀態(tài),不能完全保障數(shù)據(jù)一致性,數(shù)據(jù)庫(kù)有可能不能正常啟動(dòng),不適于大型數(shù)據(jù)庫(kù)的容災(zāi)。基于應(yīng)用層事務(wù)的復(fù)制方案,將應(yīng)用事務(wù)復(fù)制到目標(biāo)數(shù)據(jù)庫(kù),能夠保證數(shù)據(jù)庫(kù)的一致性,并且目標(biāo)數(shù)據(jù)庫(kù)處于在線運(yùn)行狀態(tài),當(dāng)源數(shù)據(jù)庫(kù)出現(xiàn)故障時(shí),可以直接切換到目標(biāo)數(shù)據(jù)庫(kù)恢復(fù)業(yè)務(wù)。因此采用基于應(yīng)用層事務(wù)的復(fù)制方案。
由于公司核心數(shù)據(jù)庫(kù)基本是Oracle,基于Oracle應(yīng)用層事務(wù)復(fù)制又有dataguard方式和goldengate方式以及第三方軟件。第三方軟件存在維護(hù)升級(jí),及部分對(duì)象如虛擬列不支持等問(wèn)題,一般用于簡(jiǎn)單的純表數(shù)據(jù)庫(kù)。數(shù)據(jù)庫(kù)dataguard方式,數(shù)據(jù)庫(kù)不支持異構(gòu)且必須單對(duì)單,投入巨大。選用goldengate方式,數(shù)據(jù)庫(kù)能夠多對(duì)一且通信中斷幾個(gè)小時(shí)后能自動(dòng)恢復(fù),投入小。
基于以上所述,公司容災(zāi)系統(tǒng)采用Goldengate技術(shù),將各數(shù)據(jù)庫(kù)同步到一個(gè)數(shù)據(jù)庫(kù)。
2.2 Oracle Goldengate技術(shù)復(fù)制原理
Goldengate的原理如圖一。
Goldengate對(duì)源數(shù)據(jù)庫(kù)和目標(biāo)數(shù)據(jù)庫(kù)是非侵入式的,無(wú)觸發(fā)器、無(wú)中間表、無(wú)時(shí)間戳、不查原庫(kù),因此對(duì)運(yùn)行系統(tǒng)影響輕微,以事務(wù)為單位復(fù)制,保證了數(shù)據(jù)的一致性。
自動(dòng)化制造執(zhí)行系統(tǒng)容災(zāi)建設(shè)選擇采用Goldengate技術(shù)。
2.3 容災(zāi)復(fù)制總體架構(gòu)
如圖2所示,在生產(chǎn)端源數(shù)據(jù)庫(kù)服務(wù)器如一鋼集群數(shù)據(jù)庫(kù)、二鋼集群數(shù)據(jù)庫(kù)、鋼后數(shù)據(jù)庫(kù)上安裝Goldengate軟件,通過(guò)goldengate實(shí)時(shí)提取數(shù)據(jù)并轉(zhuǎn)換傳輸?shù)桨惭b有g(shù)oldengate的災(zāi)備服務(wù)器,在災(zāi)備數(shù)據(jù)庫(kù)依照用戶順序執(zhí)行所有事務(wù)。
3 實(shí)施
(1)異地服務(wù)器存儲(chǔ)部署在綜合樓安裝部署災(zāi)備服務(wù)器,存儲(chǔ)陣列。安裝Linux系統(tǒng),oraclellg數(shù)據(jù)庫(kù)。
(2)Goldengate安裝配置在源數(shù)據(jù)庫(kù)及目標(biāo)數(shù)據(jù)庫(kù)部署goldengate。
1.配置manager和checkpoint表(兩邊節(jié)點(diǎn));
2.配置Extract抓取進(jìn)程(源數(shù)據(jù)庫(kù));
其中源數(shù)據(jù)庫(kù)為集群時(shí):
add extract extxs,tranlog,threads 2,begin
now
源數(shù)據(jù)庫(kù)為單實(shí)例時(shí):
add extract exttq,tranlog,begin now
3.配置Pump投遞進(jìn)程(源數(shù)據(jù)庫(kù));
4.配置rep接收進(jìn)程(目標(biāo)數(shù)據(jù)庫(kù))。
(3)目標(biāo)數(shù)據(jù)庫(kù)數(shù)據(jù)初始化。
在源數(shù)據(jù)庫(kù)查詢sen并以scn導(dǎo)出數(shù)據(jù)
select dbms_flashback.get_system change_number from dual;
expdp system/pasworddumpfile=sourcedb.dmp directory=expdpflashback_scn
傳送到目標(biāo)數(shù)據(jù)庫(kù)并導(dǎo)入
Impdp system/pasworddumpfile=sourcedb.dmp directory=expdp
初始化完畢禁用目標(biāo)端觸發(fā)器,禁用外鍵,禁用JOB。
(4)開啟目標(biāo)端數(shù)據(jù)OGG接收服務(wù)。
start repxs,aftercsnsourcddbscn
4 項(xiàng)目實(shí)施后取得的效果
(1)災(zāi)備系統(tǒng)投入運(yùn)行后進(jìn)行異構(gòu)存儲(chǔ)設(shè)備間的整合,提高存儲(chǔ)資源利用率。
(2)對(duì)多臺(tái)異構(gòu)設(shè)備進(jìn)行統(tǒng)一災(zāi)備,不需要構(gòu)建多套災(zāi)備系統(tǒng),降低TCO(總體擁有成本)。
(3)災(zāi)備系統(tǒng)直接讀取數(shù)據(jù)庫(kù)日志,對(duì)生產(chǎn)系統(tǒng)資源消耗小,在低帶寬環(huán)境下實(shí)現(xiàn)數(shù)據(jù)復(fù)制,通信中斷后可自動(dòng)恢復(fù)。
(4)保證了數(shù)據(jù)完整性、一致性,在同步模式下可實(shí)現(xiàn)數(shù)據(jù)零丟失。
(5)在源數(shù)據(jù)庫(kù)出現(xiàn)故障,火災(zāi)等災(zāi)難的情況下可快速切換到災(zāi)備數(shù)據(jù)庫(kù)。
(6)可將多個(gè)數(shù)據(jù)庫(kù)同步到一個(gè)災(zāi)備數(shù)據(jù)庫(kù),減少跨庫(kù)DBLINK,提高了報(bào)表性能,實(shí)現(xiàn)了讀寫分離。且不中斷業(yè)務(wù)部署簡(jiǎn)單,不需停機(jī),可實(shí)現(xiàn)數(shù)據(jù)遷移,容災(zāi)備份同時(shí)進(jìn)行。
容災(zāi)系統(tǒng)中運(yùn)行中存在的一些問(wèn)題:
(1)Goldengate適用于開發(fā)完成系統(tǒng)。MES系統(tǒng)處于不斷建設(shè)擴(kuò)展中,變更數(shù)據(jù)庫(kù)對(duì)象操作,易引起Goldengate復(fù)制中斷。
(2)網(wǎng)絡(luò)帶寬需要升級(jí),穩(wěn)定性有待提高。
(3)由于災(zāi)備系統(tǒng)與生產(chǎn)數(shù)據(jù)庫(kù)實(shí)時(shí)同步,一旦生產(chǎn)數(shù)據(jù)庫(kù)數(shù)據(jù)被人為誤刪除,災(zāi)備數(shù)據(jù)庫(kù)數(shù)據(jù)也將被刪除,故仍然需要進(jìn)行數(shù)據(jù)庫(kù)備份。
(4)多個(gè)源數(shù)據(jù)庫(kù)整合到一個(gè)數(shù)據(jù)庫(kù)實(shí)現(xiàn)數(shù)據(jù)整合,提升性能,及數(shù)據(jù)庫(kù)災(zāi)難備份,但是恢復(fù)時(shí)需要重新建庫(kù)修改SID,可以進(jìn)一步實(shí)施將源數(shù)據(jù)庫(kù)同步兩份,一份單對(duì)單,使災(zāi)難時(shí)快速恢復(fù),一份集成到一個(gè)綜合數(shù)據(jù)庫(kù),實(shí)現(xiàn)報(bào)表查詢。
5 結(jié)束語(yǔ)
容災(zāi)系統(tǒng)的建設(shè)和運(yùn)行消除大量跨數(shù)據(jù)庫(kù)鏈接,實(shí)現(xiàn)了數(shù)據(jù)整合,提升服務(wù)器性能,實(shí)現(xiàn)自動(dòng)化制造執(zhí)行系統(tǒng)的應(yīng)用級(jí)災(zāi)備,保證了自動(dòng)化執(zhí)行系統(tǒng)的數(shù)據(jù)安全,提升了系統(tǒng)抗災(zāi)難能力,為自動(dòng)化系統(tǒng)數(shù)據(jù)的深入應(yīng)用奠定堅(jiān)實(shí)的基礎(chǔ)。
參考文獻(xiàn)
[1]宋滸.災(zāi)備端數(shù)據(jù)庫(kù)讀寫技術(shù)分離研究[J].信息技術(shù),2017,01:26.
[2]羅偉.湖南省電力公司容災(zāi)系統(tǒng)研究與建設(shè)[C].2012電力行業(yè)信息化論文集,2012:260.