摘要:本文從客戶視角的三個疑問出發,一起瞭解華為雲GaussDB資料庫的遷移解決方案具有哪些核心技術,如何做到讓客戶遷移過程安心、放心、省心。 遷移是資料庫選型過程中客戶最為關心的話題之一,經過大量的溝通調研,我們總結客戶在資料庫遷移方面的主要期望:遷移不影響業務運行(安心)、遷移不能丟數據(放心) ...
摘要:本文從客戶視角的三個疑問出發,一起瞭解華為雲GaussDB資料庫的遷移解決方案具有哪些核心技術,如何做到讓客戶遷移過程安心、放心、省心。
遷移是資料庫選型過程中客戶最為關心的話題之一,經過大量的溝通調研,我們總結客戶在資料庫遷移方面的主要期望:遷移不影響業務運行(安心)、遷移不能丟數據(放心)、遷移實施起來簡單(省心)。
本文從客戶視角的三個疑問出發,一起瞭解華為雲GaussDB資料庫的遷移解決方案具有哪些核心技術,如何做到讓客戶遷移過程安心、放心、省心。
問題1:能不能搬?
每種資料庫都有自己的一些特定的“脾氣”,比如Oracle的語言直接在GaussDB上運行不一定能工作,這個就是所謂的“語言不通”,這種場景稱之為“異構資料庫的遷移”,“語言不通”是長期以來異構資料庫遷移替換的最大技術障礙。下麵我們從技術和效果兩方面來看。
技術方面,華為是怎麼解決的?
華為的遷移套件中有一款叫UGO的工具,它像“翻譯大師一樣”,把這個難題分成兩部分來看:
第一部分 讀懂Oracle語言:Oracle的語法對應一個個巨大的樹形結構,並由一些關鍵元素構成,比如一條Oracle建表語句,表名是什麼,有幾列,每列的名字是什麼等等。UGO具有專屬的語法分析器,能夠順著語法樹和枚舉探測出每條Oracle的語句元素構成,這樣最終理解了語義,讀懂了Oracle語言。
第二部分 根據知識庫“翻譯”成GaussDB的寫法:根據剛纔的描述,這個技術很像是做“翻譯”工作,生活經驗告訴我們,翻譯的水平高低取決於接觸的訓練場景和辭彙樣本是否足夠大,華為UGO依靠流程IT和工商銀行這兩個世界上最複雜的Oracle業務環境訓練,截止到現在,已經向UGO註入了幾千萬行級的代碼訓練量,這個是業界公佈的最高紀錄,同類產品沒有這方面的相關介紹。
那效果究竟如何?
“翻譯大師”UGO依托華為獨有的訓練場景,接入Oracle後,通常幾分鐘可以生成一份詳細的評估報告,讓遷移至GaussDB的可行性一目瞭然。在工行遷移攻堅戰的最高挑戰場景,千萬級的存儲過程遷移中,經過UGO的處理,Oracle 95%代碼轉化後可以在GaussDB直接運行,去O已經非常接近自動化。
問題2:怎麼遷移讓業務無感知?
資料庫一個非常繁忙的軟體,每一秒過去可能成千上萬的數據發生了變化,如何在數據高度變化的動態過程中將資料庫遷走,比較容易想到的做法是將業務停機來確保數據遷移不丟失,但這對於一個核心業務來說是無法接受的,這樣就提出了一個技術問題,有沒有一種辦法可以在業務運行過程中將資料庫遷移到GaussDB,也就是業界常說的熱遷移,或者說線上遷移。
技術方面,華為的遷移套件中有一款叫DRS的工具,它像“數據的複製機”一樣,能夠做到Oracle運行過程中遷移到GaussDB。DRS工具從技術上將這個問題分為了三部分:
第一部分 存量數據搬遷,DRS採用行級並行方式抽取數據,抽取性能最大可達100+MB/s,同時客戶可以在源端資源允許情況下設置遷移速度,做到按照想要的速度遷移,想快就快,想慢就慢;
第二部分 增量數據搬遷,資料庫有一個組件叫日誌,它用快速而有序的方式記錄了資料庫中每一個數據的變化,是資料庫停電不丟數據的關鍵技術,DRS採用技術手段可以將日誌記錄的事情重演一遍,這個過程就好像將Oracle數據變化錄製下來,將同樣的操作再在GaussDB上操作一遍,這個技術業界一般稱為CDC技術(change data capture),不僅如此,DRS還採用了技術手段將一條條數據的操作優化為並行運行,讓兩邊數據既能確保不丟失,又能大大提升同步速度,通常Oracle資料庫新產生的數據在1s內就可以在GaussDB看到,即使是一個非常龐大繁忙的Oracle系統(比如一天日誌量達到TB級別)也能做到秒級同步。
第三部分 動態數據對比,DRS內置了一套專利演算法,每隔x分鐘(可配置)識別增量日誌中變化的數據行,並根據數據行的主鍵值,查詢和對比源庫和目標庫的數據,從而階段性驗證Oracle和GaussDB的數據一致性,如此迴圈操作,持續刷新一致性比對結果,得到最終一致性結論。而不用停止Oracle資料庫的業務接入,進行長時間的數據校對。
效果如何?
“數據的複製機”DRS通過CDC技術實現線上遷移,做到Oracle在運行過程中將數據遷移至GaussDB,數據可對比零丟失,業務可自由選擇割接時間,並且搬遷過程中業務無感。總結下來就是,業務無感->安心,數據不丟失->放心,自動化數據同步->省心;
問題3:怎麼確保遷移後業務穩定運行?
上面解答了能不能遷移,怎麼遷移的問題,那麼遷移至GaussDB後能否平穩度過業務峰值的考驗,技術上有了上面UGO和DRS的基礎,我們能夠在Oracle資料庫上自動採集數據了。業務上的一個個請求是從應用程式發送至Oracle資料庫的,裡面有查詢請求,也有數據修改請求,這些請求的總和就是業務流量了,業務高峰期採集到業務流量後通過UGO進行語法轉化,結合通過DRS構建的真實生產環境數據,這樣可以形成了基於GaussDB資料庫的業務模擬壓測環境。
通過模擬壓測,客戶可以直接預測GaussDB能否穩定度過業務洪峰,並提前識別是否需要做規格的調整,對於業務本身,也支持細粒度切換的遷移,DRS可以讓數據進行雙向傳輸,可並線逐步切流,觀察GaussDB的業務承載能力,具備隨時可回退能力。
最後,再總結一下華為GaussDB的全套遷移方案, “翻譯大師”UGO解決語言不通語法轉化的問題,“數據的複製機”DRS解決業務不停機數據遷移的問題,同時DRS工具還提供模擬壓測、數據一致性對比等配套能力。通過這些能力華為在金融各大行項目中已經大量落地,同時華為雲資料庫遷移解決方案是信通院資料庫遷移評測中首個獲得最高級遷移能力的廠商,華為雲GaussDB資料庫致力於通過技術,給客戶提供一套安心、放心、省心的遷移解決方案。