顧學賽 王梓名

摘 ?要:隨著醫院業務量的迅速增加以及新院區數據中心硬件設施的建成,原有數據中心整體遷移到新院區勢在必行,Oracle作為目前最常用的商用數據庫管理系統,有多種數據遷移技術方法,其中DataGuard技術,能在保證數據安全性的前提下,縮短遷移時間,完成業務系統的災備建設,本文介紹四川大學華西第二醫院數據中心由老院區整體遷移到新院區的相關經驗,探討Oracle的DataGuard技術在醫院數據遷移中的應用。
關鍵詞:Oracle;Dataguard;數據遷移
中圖分類號:TP309.3;TP399-C8 ? ? 文獻標識碼:A 文章編號:2096-4706(2019)13-0162-03
Application of Oracle Data Guard Technology in Hospital Data Migration
GU Xuesai,WANG Ziming
(West China Second University Hospital,Sichuan University,Chengdu ?610041,China)
Abstract:With the rapid development of hospital business and the construction of hardware facilities of data center in new hospital area,it is imperative for the original data center to migrate to the new hospital area as a whole. As the most commonly used commercial database management system,Oracle has a variety of data migration technologies and methods. Among them,DataGuard technology can shorten the migration time and complete business on the premise of ensuring data security. This paper introduces the experience of the data center of West China Second Hospital of Sichuan University migrating from the old hospital to the new hospital,and discusses the application of Oracle’s DataGuard technology in hospital data migration.
Keywords:Oracle;Dataguard;data migration
0 ?引 ?言
隨著醫院的發展和新院區的成立,原有的數據中心機房基礎設施方面空間有限,機房已經接近最大承載量,舊的服務器、存儲等設備老化,性能不足,存在較多風險點[1,2],無法同時承載兩個院區的業務,也無法支持更多的外聯業務,如醫聯體、互聯網醫院等,現有的核心業務系統不管在硬件還是軟件方面都越來越難以支撐日益增長的業務量和數據流,因此新的數據中心建設和數據遷移工作勢在必行[3]。基于以上情況,在新院區數據中心建設之初,就考慮到未來5至8年的使用規劃,新數據中心投入使用前,如何實現數據的遷移和業務系統的平穩過渡將是一個很大的挑戰,本文主要介紹醫院數據遷移相關經驗,探討Oracle的DG技術在醫院數據遷移中的應用。
1 ?項目背景及確定方案
隨著醫院的發展,現有的信息系統積累了海量的歷史數據,新院區數據中心的建立,將業務系統如何平穩過渡的問題提上日程。目前醫院7*24小時的核心業務系統LIS和PACS使用了Oracle數據庫,在數據遷移規劃中,不可避免需要中斷數據庫業務,醫院的特殊性要求盡量把業務中斷時間縮至最短[4],這就對我們把數據遷移至新院區數據中心提出了更高的要求。
最初擬定了兩種數據遷移方案,一是提前做數據庫的rm全備,通過兩個院區中間的千兆專線,把全備拷貝至數據中心的新環境中,然后恢復全備,再使用增備來追平數據。這種方案操作簡便,對系統架構要求不高,但是業務中斷時間比較長,初步評估業務中斷要1個小時以上。二是利用我們現有的Oracle集群(RAC)搭建DataGuard環境,將當前業務系統作為Primary Database,新院區數據中心數據庫作為Standby Database,兩邊通過網絡傳遞聯機日志和歸檔日志,來實現數據同步。這種方案業務系統中斷時間短,通過兩個庫的角色互換,即刻完成數據遷移,評估業務中斷時間可控制在半個小時以內,而且不容易造成數據丟失,遷移完成后,原有的舊設備可以直接轉為災備設備,提高老舊設備的利用率,同時完成異地災備建設。缺點是系統架構復雜,操作難度大,需要經過多次測試和驗證。
考慮到需要將對醫院醫療業務的影響降至最低,技術方面的復雜性問題,可以通過多次演練測試、固化每次操作步驟解決,而且可以最大程度地保證系統的穩定性、數據庫的安全性和數據的一致性等,醫院最終選擇了第二套方案。
2 ?Oracle的DG技術用于數據遷移的設計和實現
DataGuard是一種數據庫級別的高可用方案,最主要功能是容災、數據保護、故障恢復等[5],它是在主節點與備用節點間通過日志同步來保證數據同步,可以實現數據庫快速切換與災難恢復[6]。涉及到Oracle數據庫的系統數據遷移都使用了同樣的技術,本文以LIS系統來講解操作方案。
2.1 ?前期準備。
老院區的LIS系統搭在Linux平臺Oracle 11g的RAC環境下,版本11.3.0.2,是兩臺x86服務器,兩個院區之前通過千兆光纖專線連通,新院區數據中心采用新采購的4路機架式服務器兩臺,作為Oracle集群節點服務器。遷移之前在新院區數據中心搭建同樣的數據庫環境,配置相同的IP地址,在兩個集群之間通過DG專用的Vlan實現日志同步。
由于新老院區數據中心內部應用系統均使用相同IP地址,為了防止出現數據穿透,需要在網絡上進行策略限制,保證新院區只能通過部分網段的Vlan訪問老院區,老院區終端無法訪問新院區數據庫。
為進一步加強數據安全保障,在做DG同步前,基于存儲的rm全備和增備做了快照,同時又創建多個數據還原點。為了防止遷移當天服務器存儲網絡等突發故障,遷移前一周安排了硬件的每日巡檢,同時密切關注Oracle數據庫狀態,分析AWR日志,每天安排Oracle健康檢查,現場除了遷移的具體指揮和操作人員,安排了技術力量強大的團隊來應對突發情況,并對數據遷移回退方案也進行了一次模擬演練。
2.2 ?遷移演練
在正式遷移前,準備至少3次模擬演練,來確保正式遷移的平滑過渡,同時準備回退方案,保證數據的安全。因為新院區數據中心在演練前準備了和生產環境相同的網絡環境,為了防止出現數據穿透,真實操作只在新院區環境中進行演練,不做停止、變更當前生產環境的任何操作。
具體演練流程如下:
(1)準備操作工位、網絡和終端,打印切換流程圖和分時計劃。
(2)各操作相關人員依據執行步驟,按照指揮人員的指示進行切換演練操作,及時反饋完成的狀態,指揮人員在切換流程圖上進行狀態更新。
(3)演練總結,相關人員匯報演練過程中遇到的問題,并且進行相應的整改,對一些流程進行優化調整。
演練過程中,及時記錄發現的問題以及各個操作的時間節點,通過不斷的總結和討論,消除各種不利因素,通過PDCA循環,保證每次演練效果更好。第三次演練時,重要步驟操作時間誤差可有效地控制在兩分鐘之內。通過充分演練,解決了遷移過程中的問題,對可能出現的突發情況制定了詳細的應對措施,為正式遷移打好了堅實的基礎。
2.3 ?正式遷移
醫院信息系統遷移涉及多個業務系統,使用Oracle的DG遷移的系統只是其中一部分,系統整體遷移流程如圖1所示。
遷移之前老院區數據庫在DG中的角色為Primary Database,在新院區將基礎環境搭建好后,通過Oracle的rm恢復還原數據庫,將新院區的數據庫作為Standby Database,Standby數據庫是Primary數據庫的復制,業務上是一致的。一旦搭建完成,DG通過應用Primary數據庫的Redo自動維護Standby數據庫,同步數據過程中也不會占用過高的網絡帶寬資源,即使是主庫業務高峰期,對其影響也非常小,因此能夠保證遷移前生產庫的安全穩定。選擇業務低峰期的時候進行數據遷移,盡量把停機對業務造成的影響降到最低,可以將實際上的遷移過程理解為Primary Database和Standby Database的角色互換。在最大保護模式或最高可用模式下,Failover可以保障數據無丟失。具體遷移步驟如下:
(1)遷移前需要認真檢查主備數據庫運行狀態,檢查數據庫同步情況,確認主庫日志序列和備庫Standby日志序列號一致。
(2)修改老院區主庫歸檔路徑為同步模式,同時對數據進行標記,主要用于遷移后兩邊數據的一致性比對,確保數據無丟失。
(3)創建數據還原點,用于遷移的回退方案,防止遷移過程中出現故障造成數據丟失。
(4)Failover:在數據遷移過程中通過模擬老院區主庫,即Primary數據庫出現故障,調用Failover將Standby數據庫轉換為新的Primary數據庫。
(5)重新啟動數據庫,然后進行業務數據驗證核對。
3 ?問題與討論
在歷經6個月準備和3次演練后,本次數據中心整體遷移獲得圓滿的成功,為新院區整體業務開展提供了強有力的支持,筆者認為成功的關鍵因素在于以下幾個方面:首先,前期做了充足準備,如項目立項、系統調研、硬件設施準備、遷移測試演練等,如果沒有做好系統全功能測試、連通性測試、壓力測試等,會直接影響遷移后系統使用的穩定性;其次,選對時間節點,我們選擇醫院業務最低峰的時段00:00-03:00,盡可能地降低對業務造成的影響;最后,現場人員指揮和操作,有完整的指揮組織架構[7],同時明確每個人的職責,關鍵操作人都有指定的操作工位和電腦,服務器的登錄都是通過堡壘機,每一步操作都能記錄,防止出現誤操作以及應急情況原因核查。但是在遷移過程中我們依然發現不盡完善的地方,比如在現有的條件下為了保證醫療業務進行,防止出現數據穿透,無法對新老院區數據中心的網絡切換進行模擬演練,網絡切換的操作都是一次性完成的,存在較大的風險。
數據中心整體遷移,需要在前期做充足準備,特別要做好技術驗證和測試,針對服務器、存儲、網絡等可能出現的故障都要有相應的應急處理方案。通過3次桌面演練可以把切換操作的每個步驟精確到分鐘,這樣業務中斷時間就能控制在非常小的范圍內。正式切換時選擇在業務低峰期即凌晨進行,數據量本身很小,通過DG數據同步就不會花太多時間,中斷時間在可接受范圍之內,因此可以將對醫療業務的影響降到最小。遷移完成后,老院區舊的系統架構承載數據庫的Standby Database功能,實時同步新院區主庫產生的數據,這樣就完成了業務系統的異地災備建設和設備的利舊,實現機房資源的節約。
4 ?結 ?論
醫院業務量的迅速發展以及監管要求的提高,對支撐業務系統IT系統容量和體系架構的要求達到一個新的高度,在此次遷移同時進行優化調整,即可滿足當前業務需求,同時又需要為未來發展打下良好的基礎。信息化時代,醫療業務對信息系統依賴越來越嚴重,醫院作為一個特殊的機構,需要穩定可靠的系統,因此要求數據遷移和系統停機時間盡可能短,針對Oracle數據庫的遷移,采用Oracle的DataGuard這種比較成熟的技術,在保證數據安全性的前提下,能大大縮短遷移時間,完成業務系統的災備建設,是醫院在系統升級或數據遷移中一種穩定高效的選擇方案。
參考文獻:
[1] 陳青,熊曉峰.基于大數據的醫院數據中心建設思考 [J].科技資訊,2016,14(20):8+10.
[2] 查曉陽.論數字化醫院信息系統的安全問題 [J].信息通信,2019(2):78-80.
[3] 李強.醫院信息系統數據遷移設計與實現 [J].福建電腦,2016,32(9):110+121.
[4] 賈強.醫院數據遷移項目風險機制探析 [J].醫學信息學雜志,2013,34(8):46-48.
[5] 陳意.基于Dataguard技術的數據容災實現方式 [A].天津市電子學會、天津市儀器儀表學會.第三十二屆中國(天津)2018’IT、網絡、信息技術、電子、儀器儀表創新學術會議論文集 [C].天津:天津市電子學會、天津市儀器儀表學會:天津市電子學會,2018:68-70.
[6] 劉玥.基于Oracle DataGuard技術的CNMS災備系統設計與實現 [D].成都電子科技大學,2017.
[7] 王梓名,張怡琳.數據遷移在醫院多院區建設中的實踐 [J].科技風,2018(31):80.
作者簡介:顧學賽(1988-),男,漢族,江蘇徐州人,初級工程師,本科,研究方向:數據庫、醫院信息管理;通訊作者:王梓名(1987-),男,漢族,四川成都人,中級工程師,碩士研究生,研究方向:云計算、醫院信息管理、網絡安全。