從 Oracle 到 TiDB,全鏈路資料遷移平臺核心能力和杭州銀行遷移實踐

PingCAP發表於2023-12-01

作者:邵健 杭州銀行資料庫專家 王輝 PingCAP

杭州銀行在 TMS beta 階段就進行了深度的測試體驗,在過程中提供了大量的寶貴建議,幫助 TMS 進行了快速的最佳化和迭代。近期杭州銀行藉助 TMS 進行了多次 Oracle 生產資料庫的遷移實踐,以下內容由杭州銀行資料庫專家邵健撰寫。

導讀

平凱資料庫(TiDB 企業版) 全鏈路資料遷移平臺 TMS 為企業提供了從 Oracle 到 TiDB 的全流程資料遷移解決方案,包括物件結構遷移、資料全量遷移、資料校驗等,大幅降低了遷移風險和成本。

本文介紹了 TMS 的核心功能,及其在 杭州銀行的實踐應用。透過與杭州銀行的共創和打磨,TMS 在功能和操作體驗方面得到了迅速的最佳化,最終成功幫助杭州銀行實現了多套業務系統的平穩遷移,驗證了其在實際生產環境中的高效可靠性。


分散式、雲原生為代表的新技術的出現,為資料庫技術實現彎道超車做好了鋪墊。 伴隨著資料使用場景的多元化,對於海量資料增長迅速、高併發讀寫、實時分析需求高的業務系統,傳統經典商業資料庫已經無法支撐,從敏捷開發迭代、技術自主掌控、業務連續性等角度進行評估,金融機構傾向選擇國產分散式資料庫實現架構的躍遷,從而在基礎架構層面開闢自主創新的道路。

中國市場越來越多的企業級使用者正在計劃或者已經在把 Oracle 上的業務遷移到 TiDB,這個時候遷移方案、遷移步驟、遷移成本以及遷移過程中的風險成關注焦點。平凱星辰基於架構師和專業服務團隊在企業級客戶中遷移 Oralce 到 TiDB 的專案積累及實踐沉澱,自主研發了全鏈路資料遷移平臺(TiDB Migration Service,簡稱 TMS),從資料庫的物件,到 SQL 的相容分析,到遷移前後 SQL 執行效能的對比,再到存量資料的遷移,提供一套全流程的遷移工具和解決方案,幫助企業使用者最大化降低遷移風險和成本。

TMS 簡介

TMS(TiDB Migration Service) 是平凱資料庫( TiDB 企業版)提供的全鏈路資料遷移平臺,適用於從 Oracle 資料庫遷移到 TiDB 的場景。TMS 主要包括應用物件相容性評估、物件結構遷移、資料全量遷移、資料校驗、應用 SQL 相容性評估等核心模組,幫助企業使用者低風險、低成本、高效率地完成從 Oracle 到 TiDB 的遷移。

TMS Web 控制檯 :TMS 以 Web 控制檯方式與使用者互動,平臺展示、功能服務管理、規則管理、任務引數、任務模板等都可以在 Web 端配置和啟停,可檢視日誌/進度、檢視執行結果、修復異常等。


圖 1:TMS Web 控制檯

TMS 功能架構 :TMS 的功能架構如下圖所示,除了視覺化控制檯,還包括任務管理和遷移通道兩層功能模組,用於解決資料庫遷移中的任務管理需求和技術實現。

圖 2:TMS 功能架構圖

TMS 核心能力

多通道多工管理 :TMS 設計目標是提供多種型別異構資料庫的同時遷移,每個遷移專案內部支援併發多個任務,每個任務均支援按需配置,儘可能減少使用者的二次開發工作,具備靈活的擴充套件能力,使用者可根據實際情況勾選配置,建立遷移專案。

圖 3:遷移資料來源管理

圖 4:遷移專案管理

物件遷移服務 :將源端資料庫 (Oracle/MySQL) 中表型別、欄位型別、預設值、索引、主鍵等物件透過使用 TMS 配置源資料庫與目標資料庫的物件及語法對映規則、欄位型別對映關係、欄位預設值對映關係、跨不同 schema 對映等自動轉為 TiDB 的 DDL 語法,輸出 DDL 指令碼或者透過 TMS 批次自動在目標端 (TiDB) 端建立對應的表和物件等。

圖 5:物件遷移任務管理

圖 6:物件遷移任務彙總資訊

資料遷移服務 :將源端資料庫 (Oracle/MySQL) 中的資料遷移到 TiDB 中,遷移過程全程具備進度跟蹤能力、斷點繼續、跨字符集、按需遷移部分資料、跨不同 schema 對映等能力。由於增量遷移技術門檻較高,當前版本支援靜態全量遷移,從 (Oracle/MySQL) 到 TiDB 的增量遷移計劃與第三方廠商合作完成。資料遷移根據資料量的大小和實際使用者提供的伺服器數量支援普通版和叢集版兩個版本,叢集版基於分散式框架,以叢集方式執行,可以排程和管理叢集中所有伺服器併發完成資料遷移的工作。

普通版本適用於百 G 級別資料量和硬體配置不高場景的資料遷移,叢集版適用於 T 級別的資料量和硬體配置較高場景的資料遷移。

圖 7:普通模式遷移任務管理

圖 8:普通模式資料遷移服務任務詳情

資料校驗服務:高效地對比源端資料庫 (Oracle/MySQL) 和 TiDB 目標端,兩端每行的資料是否一致,在實際使用場景中,該任務模組的對比結論直接影響專案進度關鍵節點的決策,不僅要求效能高,而且結果要準確。因此,TMS 功能設計上同時支援以行方式資料對比和按業務邏輯方式對比兩種方式,使用者可以根據實際情況選擇。

圖 9:資料校驗任務任務管理

圖 10:資料校驗任務詳情

物件相容性 服務 :對於 Oracle/MySQL 遷移到 TiDB 的專案,在專案前期,透過 TMS 對源資料庫進行物件相容性評估,識別出支援與不支援的物件型別及個數、Oracle/MySQL 與 TiDB 的產品功能差異等,輸出形式為 HTML 網頁格式,以此為基礎來輔助應用開發評估 Oracle/MySQL 資料庫遷移到 TiDB 的物件相容性、改造工作量、系統複雜程度、TiDB 適配難度等,為專案可行性評估、專案立項、專案成本評估等決策提供參考依據。


圖 11:遷移物件相容性評估報告

SQL  相容性 服務 :對於 Oracle/MySQL 遷移到 TiDB 的專案,透過 TMS 獲取應用程式側在 Oracle 生產環境實際執行過的應用 SQL 語句(包括 SQL 文字、BIND 變數值、執行計劃、平均耗時等),並將這些 SQL 文字在 TiDB 測試環境回放,評估資料庫物件遷移的完整性、業務 SQL 語法相容性、執行計劃效能等。

○ 識別出在 TiDB 執行不相容的 SQL 語句列表,並區分環境問題或是語法相容性問題。

○ 識別在 TiDB 執行成功的 SQL 語句,並分析執行效率相關的指標。


圖 12:應用 SQL 語句相容性分析報告

TMS 誕生於 Oracle/MySQL 等經典資料庫向 TiDB 遷移的場景實踐,從 TiDB 技術服務團隊自用的遷移工具,到經過頭部銀行等幾十個 TiDB 企業級使用者的場景打磨,在功能演進過程中得到了眾多使用者在生產環境的深入反饋,TMS 是 TiDB 技術團隊和使用者共創的成果,成為企業使用者從經典資料庫向 TiDB 升級的必備工具。作為平凱資料庫( TiDB 企業版)的重要模組,TMS 將持續進行功能最佳化,幫助企業使用者更快、更穩地實現資料架構的躍遷。

TMS 在杭州銀行的實踐與聯合探索

在當前國產化資料庫替換背景下,杭州銀行很多系統開始嘗試使用國產資料庫是大勢所趨,用好國產資料庫的前提是可以高效且準確地把上游異構資料庫平滑地遷移到下游國產資料庫。隨著杭州銀行對 TiDB 資料庫應用的逐步加深,如何將異構資料庫的資料和物件高效、準確地遷移至 TiDB 叢集,已經成為行內重點關注的課題。異構環境的資料庫遷移缺少成熟的工具體系,遷移複雜度較高。

TMS 產生第一個 beta 版本後,杭州銀行成為 TMS 最早的試用使用者,啟動了相關測試驗證工作。在使用初期遇到一些問題,如字符集轉換、運維操作便捷性等方面, 反饋給 TMS 研發團隊後,這些功能都實現了快速的迭代。在測試過程中,TMS 研發團隊也始終跟杭州銀行技術團隊保持著密切的溝通互動,多次到現場進行調研分析,問題反饋評審最密集的時候 TMS 一週迭代兩到三個版本,而且每個版本在功能和操作體驗方面都得到了改善。

杭州銀行對 TMS 資料遷移的主要功能模組都進行了深度的測試。物件相容性評估可以從整體評估源端物件到 TiDB 的相容性,從而得出改造的工作量、複雜度、相容度、以及可行性風險。SQL 相容性評估可以回放從源庫捕獲的 SQL 進行效能和相容性評估。物件遷移根據源與目標物件之間的物件型別對映關係進行物件、表結構、索引等的遷移,遷移過程中可以按需自定義不同欄位型別的對映關係。全量資料遷移提供靜態全量資料遷移,後續還支援增量資料遷移,CSV 格式的匯入、自定義源端和目標端字符集、源端與目標端重新命名遷移等新功能,整個遷移過程具備可觀測性,支援人為介入和斷點續傳。資料比對功能可以對源端和目標端進行資料比對,對於不一致資料會提供手動和自動修復的能力。

2023 年 7 月初,TMS 相對比較完善,試用過程中已經沒有明顯的功能性問題,杭州銀行開始使用 TMS 承擔一般業務系統的 Oracle 到 TiDB 的遷移割接。目前,杭州銀行已經藉助 TMS 在 8 套業務系統中完成了從 Oracle 到 TiDB 的遷移,近期外圍系統的一次遷移涉及 300 多張表,約 50GB 資料量,且目標的 TiDB 庫是線上業務庫。鑑於目標的 TiDB 庫線上承載了生產業務,DBA 設定了較低的併發確保遷移不影響目標庫的線上業務,約 1 小時完成遷移工作,整個遷移過程 TiDB 叢集原有的生產業務執行平穩,沒有產生效能抖動。

我們在實踐中總結了幾個 TMS 的使用技巧,希望可以幫助更多的同行用好 TMS。在透過建立的時候,TMS 支援 schema 名稱對映。在資料遷移的時候,選擇遷移物件支援 CSV 匯入,遷移物件支援引用不同任務的遷移物件,可以快速配置相似任務。需要注意源端和目標端的字符集配置,避免亂碼。在遷移過程中的資料比對,支援加 where 條件過濾上游資料,可以有選擇性的進行資料遷移處理。

使用 TMS 將 Oracle 遷移到 TiDB 替代了原先手工加多種工具組合的遷移方式,整個遷移過程實現了白屏化,大幅度降低了使用門檻,提升了遷移效率,保障了遷移的可靠性。感謝 TMS 研發團隊,他們能夠深入客戶現場調研使用者需求和關注使用體驗,對產品進行快速迭代,短短的幾個月時間,從 0 到 1 完成了 TMS 的研發和打磨,大幅度提升了資料遷移效率和可靠性。在此,我們也對 TMS 後續的迭代提幾個建議:第一,希望提供持續增量複製遷移能力;第二,從風險角度考慮,提供系統回退遷移的能力;第三,不斷完善支援更多的異構資料庫,例如 DB2 等。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69994146/viewspace-2998516/,如需轉載,請註明出處,否則將追究法律責任。

相關文章