摘 要 隨著業務系統的這幾年的不斷建設與發展,業務系統數量與數據量不斷增加,與此同時系統間的關系愈加復雜。幾年前搭建的業務系統漸漸無法承載目前的業務量,并且硬件性能與軟件性能出現瓶頸為系統穩定運行帶來較大風險。因此面臨著將業務系統遷移至新系統的強烈需求。
關鍵詞 DB2;遷移;升級;備份恢復;CDC
1遷移原則
銀行系統的遷移面臨著設備種類和數量眾多、網絡線路和訪問關系復雜、應用系統在線運行等現實情況,遷移難度大、風險高、時間緊。為確保遷移工作的順利完成,應該最大限度地降低正常業務運行的影響,在遷移過程中應該遵循以下原則:①安全性原則。在遷移過程中優先考慮安全性原則,最大限度保障遷移工作安全可控,減少停機時間。②節約型原則。在遷移過程中應該考慮節約型原則,充分利用現有設備和資源。③前瞻性原則。在遷移過程中適當考慮前瞻性原則,根據業務系統的實際需求及未來發展的情況,開展遷移工作。
銀行業務系統的遷移工作可以分為:應用系統遷移與數據庫遷移,前者與數據庫遷移密不可分。遷移的具體變化為:硬件系統改變、應用程序改變、中間件軟件版本改變、數據庫軟件版本改變。在進行數據庫遷移前一定在測試環境下對新環境下的各個方面進行全覆蓋的測試,避免出現遷移完成后出現不可控的故障。
2數據庫遷移方案
銀行系統錯綜復雜,在遷移前需要充分了解業務系統特點,通常可按照交易類型的區別分為:聯機事務處理(OLTP)和聯機分析處理(OLAP)兩大類。不同類型的系統對容量、性能、可用性、安全有著不同的要求。OLTP系統:典型OLTP系統面向大量并發用戶,支持日常業務處理,每個事務通常只涉及少量記錄;系統要求響應時間盡量短,在高并發情況下要求一定的事務處理吞吐能力;OLAP系統:OLAP系統數據來源于OLTP系統,通過抽取、裝載、轉換的處理過程按不同主題重新組織數據,系統支持復雜查詢,在SQL運行時涉及大量數據,數據庫保留歷史數據。根據業務系統的特點及數據量選擇合適的數據庫遷移方案。
2.1 CDC同步
InfoSphere Data Replication(CDC)是一個跨不同數據庫的實時數據負責解決方案,用于捕獲正在發生的數據庫更改,并經過適當的轉換將數據復制到數據目標中。CDC是通過讀取數據庫的日志來獲取變化的數據,對源數據庫造成的影響很低。使用CDC同步方案可以平滑的轉移數據,可以跨DB2版本同步而且停機時間少;CDC的軟件版本對DB2的版本支持情況有限制,對于DB2的V8.2、V9.1的舊版本不支持;CDC同步的效率對于網絡質量要求較高,同步過程容易出現網絡引發的異常;對于表中的外鍵約束及序列值,CDC無法同步。因此在CDC同步的方案中可能要混合著導入導出的方案共同完成。
2.2 導入導出、
數據庫的導入導出方案,是使用EXPORT導出實用程序及IMPORT或者LOAD實用程序對數據庫表進行導出、導入的過程。EXPORT導出實用程序是使用SQL SELECT語句或者XQuery語句抽取數據,并將數據存放到文件中。IMPORT導入實用程序會使用SQL INSERT語句向表、類型表或視圖填充數據。LOAD實用程序能夠高效地將大量數據移到數據表中,由于LOAD實用程序直接將格式化的頁吸入數據庫,不記錄數據庫日志,因此LOAD實用程序比IMPORT實用程序快。
對于數據庫導入導出方案來說,對數據庫遷移前后的版本無要求,可以從V8.2將數據遷移至V11.1;可以在導入導出過程中轉換字符集編碼,并且清理歷史數據(即根據WHERE子句過濾導出的數據);支持大字段的導入導出;但是只能在業務系統停機后才能進行導出操作,否則數據會不一致;如果對于大數據量的庫來說導入導出方案的耗時偏長。
2.3 備份恢復
備份恢復方案按照備份方式可以分為:聯機備份恢復、脫機備份恢復。聯機備份方案需要在相同版本下進行恢復并前滾活動日志。脫機備份方案需業務停機后備份,可以跨版本進行恢復。數據庫備份的概念與其他任何數據備份的概念一樣:即,復制一份數據,然后將它存儲在另一介質上,以防原始介質發生故障或毀壞。數據庫的重新創建稱為恢復。版本恢復指的是使用備份操作期間創建的映像來復原數據庫的先前版本。前滾恢復是指復原了數據庫或表空間備份映像后,重新應用記錄在數據庫日志文件中的事務。
根據業務系統具體數據量、停機時間以及數據傳輸耗時去選擇是聯機備份恢復還是脫機備份恢復。然而無法避免的是從低版本到高版本無法直接進行恢復(比如:DB2 V9.1遷移到V11.1),因此某些時候無法適用于該方案。對于數據量小,備份時間快的數據庫系統來說,脫機備份后在新環境下恢復是個不錯的選擇。值得一提的是V9.7的脫機備份可以直接在V11.1上進行恢復,恢復完成后使用UPGRADE命令升級數據庫即可。對于數據庫備份耗時長、數據庫恢復耗時長、業務停機時間窗口少、備份文件集傳輸耗時長且每日活動日志較多的業務系統來說脫機備份恢復無法滿足遷移需求,因此比較適合的是聯機備份恢復方案。即在業務正常運行期間進行數據庫備份,將備份產生的文件集傳輸到遷移目標系統,進行數據庫的重定向恢復,在業務運行期間定期傳輸數據庫活動日志用于新環境的前滾操作,等待停機時間窗口、業務正常停止后,前滾活動日志到結束點,此時數據庫應是正常可激活狀態,此后在考慮在新環境上升級數據庫版本、數據庫實例等操作。
3數據庫遷移后的驗證
數據庫遷移后的數據驗證尤為重要,如果數據在未經過驗證的情況下進行上線,那么將會造成非常嚴重的后果。我們首先應該驗證數據庫每個表的數據量及遷移過程中的記錄信息,其次驗證數據庫對象的數量(如:索引、約束、序列、存儲過程等)以及是否有無效包,最后在遷移完成后觀察數據庫的運行。
作者簡介
朱京瑞(1989-),男,山東臨沂市人;學歷:大專,工程師,現就職單位:山東省農村信用社聯合社,研究方向:數據庫性能優化與實踐。