本文章和大家探討一下老系統升級到新系統的方案,本方案是基於我接到了一個客戶的需求是系統遷移。方案從以下幾個方面闡述的。
一、系統切換工作流程
二、系統遷移需求分析
前期調研是數據轉換中很重要的一個步驟,也是至關重要的一部分。在進行數據轉換工作前,我們需要先認真閱讀系統的相關文檔,如《數據字典》、《系統概要設計報告》等,來熟悉原有的系統。當然在閱讀文檔的過程中肯定還會有理解不清晰的地方,這時還需要熟悉原有系統的工程師的幫助。
- 對於先用的系統的需求以及功能點的梳理分析;
- 對於現有系統功能點的畫出業務流程圖,和Costa業務部門確認業務流程的正確性;
- 現有系統的系統架構、實現語言以及數據庫的版本;
- 現有系統的數據量級;
- 現有系統的數據字典;
- 現有系統架構與第三方的通信接口;
- 將所有數據表進行分類,如系統參數類、代碼類、綜合業務類、相關業務類等等。 對所有數據表的數據組成、數據來源、用途等進行描述;
- 並非所有的數據都是需要進行轉換的,在《數據字典分析報告》中要指出那些數據表是需要進行轉換的,那些是不需要進行轉換的,對於不需要轉換的表要說明不需要轉換的原因;
- 描述數據在各表中的流向,對於關鍵的或復雜的業務點要做詳細說明;
風險分析
由於老系統運行時間比較久,對於現有系統很難描述清楚現有系統的業務邏輯,尤其是細節,可能當初設計的人已經離職了;
三、遷移方案總體思路
1、保障業務中斷停機時間最小化
業務中斷對於用戶無論是運行環境還是測試環境均存在較大的恢復風險,這樣的風險特別對於時間敏感型數據和數據完整性業務都是不可以接受的。我們基於這樣的要求,考慮到如何將停機時間最小,能否實現0停機的建設目標?
- 梳理系統核心業務,拆分核心業務,保證業務的獨立性
- 遷移系統分主次,盡量避免統一遷移,而是逐步遷移
- 核心業務遷移保證兼容老系統業務
- 新系統本地留存數據,同時將數據同步到老系統以保證未遷移的系統可用性
下圖為會員注冊模塊的遷移流程圖
2、數據轉換設計
轉換設計階段主要是完成新舊數據字典的對照,同時明確各個表中具體數據字段的轉換方式。在轉換設計階段主要是編寫《數據字典對照報告》 《數據字典對照報告》主要描述新舊系統數據表間的對照關系以及代碼對照關系。以新系統為准,原系統作參照,將原系統的數據字典對應到相應的系統數據字典中。在對照過程中,需要遵循數據照搬原則,數據盡量不要作處理。 在數據字典對照表中需要進行轉換的數據字段應該一一對應,對新舊數據表中字段的名稱、類型、精度等都要有詳細的描述,同時還要明確數據的轉換方式。數據轉換方式主要有以下幾種
- 直接轉換。直接轉換方式是最常用的方式,就是將原表中對應字段的數據原封不動的搬到新表中來。按照“數據照搬”原則,我們應該應該盡量采用這種方法。
- 程序轉換。對那些需要進行計算才能進行轉換的數據將采用程序轉換方式進行。
- 代碼對照。某些代碼字段,往往新舊系統的編碼不相同,這時就需要參照代碼對照表進行代碼對照轉換。
- 類型轉換。少數數據可能需要對類型進行轉換,如就表以字符串‘YYYY-MM-DD’來存放日期,而新表中以DATE型來存放日期,這時就需要進行類型轉換。
- 常量轉換。新表中某些字段可能存在缺省值,這時將采用常量轉換方式,當舊表沒有對應字段或舊表對應字段數據為空時,將直接在新表中寫入缺省數據。
- 不轉換。對於舊表有但新表中沒有的字段將不作任何轉換。
新舊系統代碼對照列出了全部需要進行轉換的新舊系統數據表中存在的二級代碼間的對照關系,主要以二級代碼對照表的形式來反映。
3、數據遷移
數據整理策略
數據整理就是將原系統數據整理為系統轉換程序能夠識別的數據。數據整理大致分為兩個階段:第一階段就是將不同類型來源數據采集備份到統一的數據庫中;第二階段就是將原始數據進行整理,按照不同的要求分類進入不同的中間數據庫,為數據轉換提供中間數據。數據整理過程采用了以下方法:
1)確保原始數據的完整性
在進行數據整理之間,我們先需要對原始采集數據進行備份。備份的目的有兩個:一個是統一數據庫,便於數據轉換,另一個就是為以后數據追根溯源提供參考依據。
2)數據分級過濾策略
數據分級過濾就是把數據按照不同的數據級別進行分類整理進入不同的中間數據庫中。本系統中我們把數據分為三個級別:廢棄數據、待調整數據、可轉換數據。廢棄數據就是該部分數據的存在對系統資源造成浪費的數據,並且會影響以后系統的運行。待調整數據就是該部分數據嚴重影響新系統的運行,必須進行人工調整后,方可進行數據轉換。可轉換數據就是該部分數據不需做任何處理,基本滿足數據轉換的要求或者是該部分數據新系統建議調整,但是不影響系統的運行,可以等新系統運行后再調整,這樣可以為數據轉換工作節省很多時間。
3)借助數據整理相關工具
數據整理非常艱巨,涉及的數據量很大,通過人工檢查是不可能完成的,因此必須編寫相關的數據整理工具完成數據整理。包括數據整理工具和數據糾錯工具。數據整理工具負責將原始備份數據庫中的數據進行分類進入不同的中間數據庫;數據糾錯工具負責提供友好、方便的工具界面供用戶方相關人員完善和糾正錯誤數據。
4)利用API接口作為橋梁
由於原系統和新系統的數據庫結構可能不一樣,所以采用API接口作為銜接新舊系統數據的重要橋梁,對於建立新舊系統的對照關系很重要。一旦業務人員對新系統中某項轉換數據存在疑問的情況下,就可以通過API接口,順利找出原數據。
數據轉換
數據轉換就是將整理后的數據,依照對照表的要求進行轉換,並寫入到新系統。這個過程可以通過交換系統實現。
數據整理與轉換步驟
1)進行數據模擬移植
根據設計的數據移植方案,建立一個模擬的數據移植環境,它既能仿真實際環境又不影響實際數據,然后在數據模擬移植環境中測試數據移植的效果。 數據模擬移植前也應按備份策略備份模擬數據,以便數據移植后能按恢復策略進行恢復測試。
2)測試數據模擬移植
根據設計的數據移植測試方案測試數據模擬移植,也就是檢查數據模擬移植后數據和應用軟件是否正常,主要包括:數據一致性測試、應用軟件執行功能測試、性能測試、數據備份和恢復測試等。
3)准備實施數據移植
數據模擬移植測試成功后,在正式實施數據移植前還需要做好以下幾個方面工作:進行完全數據備份、確定數據移植方案、安裝和配置軟硬件等。
4)正式實施數據移植
按照確定的數據移植方案,正式實施數據移植。
4、數據整理和轉換的關鍵
對於多源異構數據庫之間的數據轉換,因為目標數據庫的格式和約束的限制嚴格,直接編寫轉換程序實現困難,可在原有數據庫系統中編寫轉換程序。
對於源數據庫、目標數據庫結構有差異的數據,建立API接口,API接口在原數據庫平台中建立。
非空處理:對於應該非空但實際為空的記錄制定處理規則。
取值約束處理:對於有取值范圍約束的字段進行規范化處理,即將轉換后的數據取值規范到該范圍內。
主鍵處理:重新對中間庫進行編號。
填寫外鍵:每個數據庫或多或少存在外鍵,外鍵越多,標明與其它庫關聯越多,這樣的庫應后處理;反之,外鍵越少的庫應該先處理。
唯一鍵處理:對要求唯一的數據項(主鍵、唯一鍵)進行唯一檢測,並對檢測出的不唯一的記錄,制定處理規則。
附加分散處理:對某些表中的某些字段進行數據規范化處理,即將不合規范的數據替換成規范的數據,幾個表之間的關聯處理,以及一些特殊處理等。
數據一致性處理:對於有多個數據源的數據進行一致性檢查, 制定處理規則。
新老系統並存的架構


