三問三答:細數GaussDB遷移的核心技術

来源:https://www.cnblogs.com/huaweiyun/archive/2023/07/11/17544591.html
-Advertisement-
Play Games

摘要:本文從客戶視角的三個疑問出發,一起瞭解華為雲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資料庫致力於通過技術,給客戶提供一套安心、放心、省心的遷移解決方案。

 

點擊關註,第一時間瞭解華為雲新鮮技術~


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • # Unity OnOpenAsset 在Unity中,OnOpenAsset是一個非常有用的回調函數,它可以在用戶雙擊資源文件時自動打開一個編輯器視窗。這個回調函數可以用於自定義資源編輯,提高工作效率。本文將介紹OnOpenAsset的使用方法,並提供三個使用例子。 ## OnOpenAsset的 ...
  • # shell腳本-批量主機執行命令(expect) ## 準備 > 上次連接多台伺服器使用ssh-keygen,24機器去連接22、25,所以存在.ssh/authorized_keys > > 1.如果有.ssh/authorized_keys該文件則先刪除 > > ``` > rm -rf.s ...
  • # shell腳本-監控多台伺服器磁碟利用率 ## 介紹 > 第一步:實現免密登錄伺服器 ,為後續腳本免密登錄做好準備。 > > 第二步:把要監控伺服器的ip地址 root用戶 埠port 寫入host.info文件中以便後續腳本從這個文件讀取伺服器信息。 > > 第三步:寫shell腳本,先從h ...
  • # 一、Python學習兩大道具 ## 1. dir()工具 - 作用:支持打開package,看到裡面的工具函數 - 示例: (1) 輸出torch庫包含的函數 ```python dir(torch) ``` (2) 輸出torch.AVG函數中的參數 ```python dir(torch.A ...
  • # 不小心刪除服務[null]後,git bash出現錯誤,如何解決? # 錯誤描述:打開 git bash、msys2都會出現錯誤「bash: /dev/null: No such device or address」 # 問題定位: 1.使用搜索引擎搜索「bash: /dev/null: No ...
  • ![](https://img2023.cnblogs.com/blog/3076680/202307/3076680-20230711143234011-1452662689.png) # 1. 兩個日期之間相差的月份和年份 ## 1.1. DB2 ## 1.2. MySQL ## 1.3. sq ...
  • 博客推行版本更新,成果積累制度,已經寫過的博客還會再次更新,不斷地琢磨,高質量高數量都是要追求的,工匠精神是學習必不可少的精神。因此,大家有何建議歡迎在評論區踴躍發言,你們的支持是我最大的動力,你們敢投,我就敢肝 ...
  • ## 問題 在執行數據插入時,postgresql 提示*more than one owned sequence found*錯誤。這個和之前文章中寫的[序列編號錯亂](https://www.cnblogs.com/podolski/p/17349217.html)不同,是由數據表的一個列生成了 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...