張海全 金貝貝 陳春樺 李赫然 李浩
(國電南瑞科技股份有限公司)
自中美貿易爭端以來,美國多次對中國企業進行制裁,對中國科技企業進行打壓、封鎖,以其科技霸權來遏制中國的發展。電力行業是能源領域的支柱行業,更是國家未來能源戰略的重中之重。因此在XC產業中,電力信息系統的XC改造更應該首當其沖地跟進產業浪潮發展,積極改造創新,完成國家戰略部署。電力信息系統間集成關系復雜,開發語言多樣、嚴重依賴國外數據庫產品,如Oracle、SQLserver、DB2等。數據庫作為底層數據存儲與管理的系統,是電力信息系統的核心,在電力信息系統的XC改造工作中,進行國產數據庫的適配測試與遷移具有重要意義。
數據庫作為信息化的基礎,是企業IT系統必不可少的核心技術,通過對數據的管理賦能上層應用。在XC實踐中,重點是在保障客戶關鍵數據資產的安全性的前提下,幫助用戶從原有的數據庫系統切換到國產數據庫系統,達到業務應用和數據順利地遷移,數據庫適配遷移及穩定性保障異常復雜與重要。
數據庫適配遷移就是從一個數據庫到另一個數據庫之間的數據移動,兩端的數據庫可能是PostgreSql、mysql、oracle、Sql Server、國產數據庫等。遷移過程是一個具有挑戰性的復雜過程,需要對數據庫的原理以及各自的特性了如指掌。
根據實際的適配遷移流程,可以分為前期評估,數據遷移,應用遷移,項目測試4個階段,具體如下:
(1)前期評估
根據應用程序功能模塊、數據庫中對象及類型對工作量進行評估,并設計數據遷移方案同時做相應的遷移準備工作。設計數據遷移方案主要包括以下幾個方面工作:研究與數據遷移相關的資料,評估和選擇數據遷移的軟硬件平臺、選擇數據遷移方法、選擇數據備份和恢復策略、設計數據遷移和測試方案等。遷移準備工作主要包括數據庫的檢查與準備工作,硬件環境的檢查與準備工作,相關人員的準備等。
(2)數據遷移
遷移數據庫對象包括應用系統所使用的數據庫基本對象和高級對象的遷移。基本對象包括數據庫、用戶/模式、表、約束、索引、視圖和數據等;高級對象包括序列、同義詞、數據庫鏈接、觸發器、函數、存儲過程和包等。
(3)應用遷移
在正式實施遷移后,開始進行應用的遷移,包括數據庫的連接,數據庫連接驅動的調整、外鏈接的調整、SQL語句的調整等。
(4)功能測試
調整完成后,測試應用連接目標國產數據庫是否還存在問題,如果沒有問題發生,表示應用遷移完成,如果還存在問題,及時調整數據庫中的一些設置等。
2.2.1 確定遷移對象,組建遷移團隊
應用系統的數據庫遷移,首先需要確定遷移對象。開始遷移前,首先根據實際需要和應用系統大小制定遷移目標,確定遷移對象。根據需要遷移的應用系統或功能模塊,確定要遷移的具體數據庫對象。組建一個健全、良好的應用系統遷移團隊是非常有必要的。有一個健全、良好的遷移團隊互相配合、支持,可以規避很多遷移風險。遷移團隊必須有對要遷移的應用系統架構和應用功能實現了解非常清楚的開發和測試人員,即必須有該應用系統的開發人員、測試人員參與。其次遷移的工作最好由開發人員去完成,這樣效率和準確性都會有所保證。
2.2.2 遷移評估
實施階段一般包括表結構遷移、數據的遷移、視圖的遷移、存儲過程和函數的遷移、應用程序的遷移等。根據適配遷移過程,項目不同,所用時間彈性較大的步驟在于實施階段中對存儲過程、函數、應用程序等的遷移。借助適配遷移工具實施遷移,可實現遷移周期最短化。
2.2.3 準備遷移環境
首先需要準備軟硬件環境。如果要遷移的源數據庫數據量較大,如大于10GB,那么建議源數據庫和目標國產數據庫分別部署在不同的物理機器上,并考慮源和目的服務器的硬件配置,CPU、內存、網絡環境盡量配置得好一些,以保證遷移速度。如果數據量較大,建議先對目標國產數據庫進行基本的優化,如增大共享內存分配、添加較大的日志文件,預先申請足夠的表空間數據庫文件等。
2.2.4 遷移基本對象和數據
首先遷移基本對象和數據,然后進行高級對象的遷移。做好準備工作,即可使用適配遷移工具遷移基本對象和數據,主要包括表、數據、約束(外鍵、缺省、檢查約束、唯一性約束)、索引、視圖和序列等。
2.2.5 遷移應用程序
遷移應用程序,主要是接口API和應用中涉及的數據庫交互SQL的遷移,目前國產數據庫在接口、SQL方面的標準兼容性做得比較好,所以,應用程序的遷移,一般也較容易完成。應用的遷移往往和應用系統功能測試同時進行,在功能測試的過程中,發現問題,及時修改。對于使用JDBC標準連接協議的應用程序,只需要替換為目標國產數據庫的jdbc接口驅動,在應用程序中修改數據庫連接字符串即可,根據JDK的版本選擇合適的驅動。
2.2.6 應用系統功能測試和排錯
任何一個成熟的應用系統有關鍵代碼的變動后,都應該進行全面細致的測試,更換后臺數據庫系統更需對遷移后的應用系統進行全面的功能測試和性能測試。功能測試即對該應用系統的每一個大小模塊、功能進行全面的系統回歸測試,以確保新的應用系統的各個功能都可以正常使用,且能保證數據的正確性。因此完成數據庫和應用程序遷移后,必須對應用系統進行全面的功能測試,對測試出來的問題,及時分析、排查和修改。對那些很難定位的問題,建議由測試、開發人員等一起共同追蹤、診斷解決。
針對適配遷移過程中可能出現的各種問題,制定相應的應急預案:
1)數據遷移測試中或正式遷移如果對業務系統性能產生影響,應該立即停止遷移操作,待數據庫壓力空閑時再進行。②如果在部署數據庫遷移過程中出現硬件故障或者操作失誤可以使用備份進行恢復。③如果在切換過程中發生數據異常,可以在不影響業務數據的情況下,對數據庫進行恢復。④如果切換完成之后發現數據異常,應立即停止應用對目標國產數據庫的連接,這時,如果應用系統需要處于運行狀態,可以把應用連接指向原來的數據庫。問題解決后,再把應用連接指向目標國產數據庫。⑤應用回退,如果應用系統已經從源數據庫切換到目標國產數據庫,并且目標國產數據庫相關的應用服務已經產生了部分的增量數據,這時出現了異常和故障,必須開始執行應用系統回退。這時由于源數據庫的系統環境仍然被保留,仍只需要將客戶端重新指向源數據庫就可以完成回退。目標國產數據庫由于接管業務所產生的增量數據,要根據應用的具體情況來進行考慮,用手工方式將數據最大程度地完整保留并導入到源數據庫中。
在國家XC產業的推進進程中,數據庫作為三大核心基礎軟件之一,也是國產替代的核心部分,雖然遷移適配過程困難且復雜,且在遷移適配工作中,有時還需要應用開發商的配合進行架構的優化、兼容性的支持和性能的提升等,必要時需要進行程序的調整及優化,但是通過專業的技術團隊加上專業的遷移工具,再經過專業的測試流程,在電力行業中是可以實現國產化替代的,后續希望多開展國產化替代項目,豐富電力行業數據庫遷移適配經驗的同時也加速國家XC產業在電力行業的推進工作。通過上述研究與實踐能夠幫助電力信息系統進行XC改造。