最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

DTCC 2023專家解讀丨GaussDB技術(shù)解讀系列之?dāng)?shù)據(jù)庫遷移創(chuàng)新實(shí)踐

2023-09-05 18:38 作者:Gauss松鼠會  | 我要投稿

近日,以“數(shù)智賦能 共筑未來”為主題的第14屆中國數(shù)據(jù)庫技術(shù)大會(DTCC 2023)在北京舉行,在GaussDB“五高兩易”核心技術(shù),給世界一個更優(yōu)選擇的專場,華為云數(shù)據(jù)庫生態(tài)工具研發(fā)總監(jiān)竇德明分享了GaussDB數(shù)據(jù)庫的遷移創(chuàng)新實(shí)踐。

以下為演講實(shí)錄:

各位同仁,我是華為云數(shù)據(jù)庫生態(tài)工具研發(fā)總監(jiān)竇德明,我分享的是GaussDB數(shù)據(jù)庫遷移的創(chuàng)新實(shí)踐。

易遷移能力是企業(yè)數(shù)據(jù)庫

替換選型的關(guān)鍵考量

數(shù)據(jù)庫的選型除了要看數(shù)據(jù)庫本身的能力外,能否很平滑地從其他數(shù)據(jù)庫遷移到GaussDB,也是很多企業(yè)考量的關(guān)鍵因素。而數(shù)據(jù)庫能否平滑遷移有兩個非常核心的要素,一個是數(shù)據(jù)庫本身,比如能否很好地兼容主流數(shù)據(jù)庫的語法,讓應(yīng)用少改或者不改;另外一個是在數(shù)據(jù)庫外圍能否提供一些好用、易用的遷移工具,把應(yīng)用中內(nèi)嵌的SQL、數(shù)據(jù)庫中的對象以及全量和增量數(shù)據(jù),在業(yè)務(wù)近乎零停機(jī)的情況下從其他數(shù)據(jù)庫平滑地遷移過來。這兩點(diǎn)是企業(yè)做數(shù)據(jù)庫選型時考量的兩個遷移關(guān)鍵要素。


結(jié)構(gòu)(UGO)+數(shù)據(jù)(DRS)

一站式遷移解決方案


在2021年的DTCC大會上,我們發(fā)布了華為云結(jié)構(gòu)+數(shù)據(jù)一站式遷移解決方案,其中有兩個核心工具。一個工具是UGO,主要做結(jié)構(gòu)和應(yīng)用的語法兼容性評估和轉(zhuǎn)換,比如將數(shù)據(jù)庫上層應(yīng)用中內(nèi)嵌的SQL捕獲出來進(jìn)行評估,對數(shù)據(jù)庫內(nèi)部對象的DDL進(jìn)行評估,并輸出一個報告,清晰地展示哪些是數(shù)據(jù)庫本身兼容的、哪些是通過UGO轉(zhuǎn)換可以兼容的、哪些不能轉(zhuǎn)換需要人工介入進(jìn)行改造等。另外一個工具是DRS,大家都知道,異構(gòu)數(shù)據(jù)庫替換過程中的數(shù)據(jù)遷移問題非常非常多,DRS要解決的就是怎么在業(yè)務(wù)近乎不停機(jī)的情況下快速把客戶的存量數(shù)據(jù)和增量數(shù)據(jù)遷移過來,并保證數(shù)據(jù)在任何情況下不丟、不錯、不亂,同時提供靈活、多樣的數(shù)據(jù)比對和修復(fù)能力。


UGO+DRS一體化解決方案

在實(shí)際項目中得到驗證


UGO+DRS一站式遷移解決方案近兩年在很多項目中都得到了驗證和應(yīng)用,這里舉幾個實(shí)際的例子。第一個是我們公司自己內(nèi)部的MetaERP項目,使用UGO自動轉(zhuǎn)換了近7億行的O數(shù)據(jù)庫SQL腳本,轉(zhuǎn)換成功率接近100%,同時GaussDB實(shí)現(xiàn)了并行邏輯解碼,性能高達(dá)近300MB/秒,可以讓DRS輕松應(yīng)對MetaERP在月結(jié)、季結(jié)和年結(jié)時10~20倍的流量洪峰,保證數(shù)據(jù)同步<5s的低時延。

第二個是某銀行的數(shù)據(jù)庫替換,這個項目遷移復(fù)雜度比較高,面臨應(yīng)用多、數(shù)據(jù)庫對象多、存儲過程和package深度依賴等困難,截至目前通過我們的一站式遷移解決方案,完成了近1.3億行SQL腳本(包含近8000萬存儲過程)的UGO自動轉(zhuǎn)換,轉(zhuǎn)換成功率超過96%,采用DRS遷移了近300套左右的O數(shù)據(jù)庫實(shí)例,實(shí)現(xiàn)了O數(shù)據(jù)庫與GaussDB數(shù)據(jù)庫的長時間并機(jī)穩(wěn)定運(yùn)行,正反向低時延數(shù)據(jù)同步。


項目實(shí)施過程中遇到新的困難與挑戰(zhàn)


在大量的項目實(shí)施過程中,我們UGO+DRS一站式遷移解決方案也遇到了一些新的困難和挑戰(zhàn),這些挑戰(zhàn)相信大家也都會遇到,在此給大家做個分享。


挑戰(zhàn)一

在做異構(gòu)數(shù)據(jù)庫替換時,如何快速識別異構(gòu)數(shù)據(jù)庫語法不兼容點(diǎn),識別數(shù)據(jù)相同的情況下相同SQL在不同數(shù)據(jù)庫中執(zhí)行的性能差異,以及低版本向高版本升級時是否會存在不兼容或性能劣化,再有就是如何模擬業(yè)務(wù)流量洪峰時的數(shù)據(jù)庫行為表現(xiàn)。

挑戰(zhàn)二

當(dāng)前很多企業(yè)的開發(fā)人員和DBA對GaussDB熟悉程度還不高,SQL編寫水平參差不齊,而且在做應(yīng)用開發(fā)時缺乏統(tǒng)一的SQL編程規(guī)范和有效的SQL審核機(jī)制,很多爛SQL都流入了生產(chǎn)環(huán)境,進(jìn)而引發(fā)大量的應(yīng)用性能問題,影響生產(chǎn)業(yè)務(wù)和客戶體驗。


挑戰(zhàn)三

很多數(shù)據(jù)庫當(dāng)前的字符集在標(biāo)準(zhǔn)字符集的基礎(chǔ)上做了很多擴(kuò)展或者定制,導(dǎo)致數(shù)據(jù)遷移時相同字符集的不兼容,或者就沒有對等的字符集,更有甚者,歷史數(shù)據(jù)里已經(jīng)存在了各種各樣的亂碼數(shù)據(jù),這些特殊場景都會影響遷移的平滑性。

當(dāng)然,困難和挑戰(zhàn)還有很多,但這三個是會阻塞或拖慢數(shù)據(jù)庫遷移進(jìn)程的,那么針對這三個挑戰(zhàn),我們都做了哪些探索和創(chuàng)新呢?再給大家分享一下。


應(yīng)對挑戰(zhàn)一:孵化數(shù)據(jù)庫流量錄制與回放能力

流量錄制與回放的概念相信大家都不陌生,在數(shù)據(jù)庫領(lǐng)域,有些數(shù)據(jù)庫廠商也提供了相應(yīng)的工具,GaussDB面臨的業(yè)務(wù)場景比較多,所以需要的技術(shù)也因場景而異。如果源數(shù)據(jù)庫是公有云服務(wù),而且提供了全量SQL,那么直接獲取全量SQL并進(jìn)行回放即可;如果源數(shù)據(jù)庫開啟了審計日志,也可以直接下載并解析審計日志,當(dāng)然開啟審計日志會對數(shù)據(jù)庫的性能有一定的影響;如果源端是自建數(shù)據(jù)庫,而且未開啟審計日志,那就需要部署一個agent,通過捕獲網(wǎng)絡(luò)數(shù)據(jù)包,結(jié)合數(shù)據(jù)庫本身的通信協(xié)議來解析出應(yīng)用下發(fā)的所有SQL。基本上這三種方案可以涵蓋所有的場景,這里面還要注意幾個點(diǎn),首先是要研究透不同數(shù)據(jù)庫的通信協(xié)議,其次是實(shí)現(xiàn)異構(gòu)數(shù)據(jù)庫替換場景下的SQL自動轉(zhuǎn)換,另外是要具備SQL回放的流量控制能力,能加速或者放慢等,當(dāng)然在解析、回放等出現(xiàn)異常的情況下,要做好記錄。

接下來就是在源數(shù)據(jù)庫的鏡像庫和GaussDB數(shù)據(jù)庫同時進(jìn)行流量回放,而且保證鏡像庫和目標(biāo)數(shù)據(jù)庫的數(shù)據(jù)完全一致,回放的SQL也完全一樣,最終輸出一個分析報告,比對每一條SQL的執(zhí)行耗時、資源消耗、甚至是執(zhí)行結(jié)果,很容易看出來哪些SQL的性能GaussDB比源數(shù)據(jù)庫好、哪些出現(xiàn)了劣化、哪些是基本持平的。

我們正在和某銀行進(jìn)行數(shù)據(jù)庫流量錄制與回放的聯(lián)合創(chuàng)新,從實(shí)際應(yīng)用效果來看,通過agent方式捕獲流量包,SQL抓取成功率可以做到97%以上,解析成功率和回放成功率可以達(dá)到95%,在此過程中,還可以識別到語法不兼容、語義不兼容的異常情況。


應(yīng)對挑戰(zhàn)二:孵化GaussDB數(shù)據(jù)庫SQL審核能力

SQL審核大家更為熟悉,很多大的企業(yè)都會進(jìn)行探索和實(shí)踐,但對于GaussDB來說,由于是純自主創(chuàng)新的分布式數(shù)據(jù)庫,很多企業(yè)的開發(fā)人員和DBA還不熟悉GaussDB的SQL語法,也沒有制定較為完善的SQL編程規(guī)范,很多第三方SQL審核工具也沒有針對GaussDB的審核能力,這種情況下,我們結(jié)合UGO成熟的SQL解析器,以及多個項目中的SQL調(diào)優(yōu)實(shí)踐,孵化出了GaussDB數(shù)據(jù)庫的SQL審核能力。

我們SQL審核的輸入可以有多種類型,可以是代碼倉,也可以是一個SQL文件,還可以是通過流量錄制獲取的動態(tài)SQL等等,可以審核直接獲取到的原生SQL,也可以審核通過UGO轉(zhuǎn)換后的SQL。

截至目前,我們已經(jīng)沉淀了81條審核規(guī)則,并在公司內(nèi)部的兩個項目以及外部的多個銀行進(jìn)行了應(yīng)用,效果超出預(yù)期。


應(yīng)對挑戰(zhàn)三:孵化字符集兼容性分析評估能力

針對數(shù)據(jù)遷移,大家最擔(dān)心的莫過于正式割接時出現(xiàn)各種各樣的問題導(dǎo)致割接失敗,除了遷移工具本身的功能之外,最常見的可能就是字符集不兼容、數(shù)據(jù)亂碼、生僻字等等。舉個例子,O數(shù)據(jù)庫對GBK字符集做了擴(kuò)充,可以存儲UTF-8字符,而GaussDB數(shù)據(jù)庫的GBK字符集非常規(guī)范,從O數(shù)據(jù)庫向GaussDB遷移數(shù)據(jù)時,這些UTF-8字符根本無法寫入,遷移必然失敗。更有甚者,很多客戶的海量歷史數(shù)據(jù)中有大量的亂碼數(shù)據(jù),無法確定這些數(shù)據(jù)是什么時候?qū)懭氲?,哪些?yīng)用寫入的,或者后續(xù)會不會再用到,但客戶要求必須遷移過來。那么,面對這些挑戰(zhàn),我們嘗試通過孵化字符集兼容性分析評估工具來提前識別。

這個工具的原理很簡單,首先是建立一個可以分析的字符集基線,比如GB系、Unicode系列等,其次是獲取源數(shù)據(jù)庫的元數(shù)據(jù),包括字符集、索引信息、表結(jié)構(gòu)信息(列類型、列長度)等,然后基于源數(shù)據(jù)庫和目標(biāo)數(shù)據(jù)庫的字符集做好映射,最后再對數(shù)據(jù)庫進(jìn)行數(shù)據(jù)掃描和分析,輸出多維度的分析評估報告。目前這個工具正在和某銀行進(jìn)行聯(lián)創(chuàng),從前期的試用效果來看,確實(shí)能發(fā)現(xiàn)很多問題,比如ZHS16GBK和AL32UTF8兩種字符集混編、直接寫入二進(jìn)制格式導(dǎo)致數(shù)據(jù)亂碼、ZHS16GBK字符集使用了大量生僻字等。

對UGO+DRS一站式遷移解決方案

的演進(jìn)思考


以上是我們在使用UGO+DRS一站式遷移解決方案過程中遇到的三個大的挑戰(zhàn),以及應(yīng)對這三個挑戰(zhàn)做的一些創(chuàng)新實(shí)踐?,F(xiàn)在GaussDB的遷移場景越來越多,也越來越復(fù)雜,所以我們會不斷地進(jìn)行探索和創(chuàng)新,讓我們的方案更完善,遷移過程更平滑,比如流量回放、SQL審核、字符集兼容性評估會支持更多的數(shù)據(jù)庫,推出非常詳細(xì)和全面的應(yīng)用、結(jié)構(gòu)、數(shù)據(jù)遷移可行性分析報告,實(shí)現(xiàn)SQL捕獲、轉(zhuǎn)換、審核、優(yōu)化全流程一體化管理等等,也希望能和客戶、伙伴以及各位同行進(jìn)行合作。



以上是我分享的GaussDB數(shù)據(jù)庫在遷移方面的一些創(chuàng)新實(shí)踐,謝謝大家。


DTCC 2023專家解讀丨GaussDB技術(shù)解讀系列之?dāng)?shù)據(jù)庫遷移創(chuàng)新實(shí)踐的評論 (共 條)

分享到微博請遵守國家法律
孝义市| 册亨县| 鸡西市| 巴塘县| 北宁市| 金沙县| 昌黎县| 泗阳县| 辽源市| 获嘉县| 河西区| 云霄县| 福建省| 定安县| 西平县| 江阴市| 海城市| 淳安县| 浦城县| 南开区| 长汀县| 天等县| 高雄县| 林周县| 个旧市| 马龙县| 锦屏县| 米林县| 丽江市| 营山县| 凤凰县| 东乌珠穆沁旗| 阿拉善盟| 乌审旗| 皮山县| 莱阳市| 临潭县| 双辽市| 霍林郭勒市| 泊头市| 五大连池市|