詹溫棋


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