2.0 解析系列 | OceanBase的重要基礎設施——DBReplay

OB君:9月21日,OceanBase 2.0 在雲棲大會上重磅發佈。咱們將在接下來的時間裏爲你們持續推出 「 OceanBase 2.0 技術解析系列」 文章,分別從 可運維性、分佈式架構、數據可用性、性價比及兼容性 五個方面對OceanBase 2.0的產品新特性及其背後的技術原理進行深刻的解析。
今天咱們就從可運維性中一個很重要的功能DBReplay聊起,更多內容歡迎持續關注本系列!

本文做者:沈煉數據庫

現任螞蟻金服OceanBase DBA團隊高級技術專家,2014年加入阿里巴巴,從事領域涉及螞蟻核心業務上OB、數據流基礎設施運維體系建設等,目前主要負責OceanBase的高可用體系建設工做。架構

背景介紹

傳統數據庫如何平滑遷移至OceanBase,遷移到OceanBase後如何平滑升級,如何保障穩定性,這是架構師們不得不考慮的問題。今天咱們將重點介紹一個專門爲這些場景而生的利器 —— DBReplay。負載均衡

DBReplay是從生產庫截取的真實流量,而後再在測試庫回放用於測試數據庫系統的功能和性能的工具。它不只回放讀流量,也回放寫流量,保證在整個回放過程當中的數據和真實線上的數據是一致的,全部查詢基於的快照點和真實線上也是一致的,而且保證SQL執行過程當中的數據集與生產庫徹底一致,從而在測試庫覆蓋生產庫的每個功能場景和性能場景。運維

總體架構介紹

DBReplay的總體架構圖如上圖所示:tcp

  • 經過備份恢復功能,使用在線庫的數據恢復出一個測試庫,恢復到具體某一個點,稱爲回放點
  • 截取在線庫回放點之後全部的流量生成流量文件,流量文件的結束點稱爲截止點
  • 經過一個離線處理的程序分析全部的流量文件,生成真正用於回放的回放文件。這個過程主要解決事務間的依賴關係
  • 主控機讀取流量回放文件控制多個客戶端回放截取流量到測試庫,回放期間,咱們能夠進行各項測試工做,例如業務功能驗證,數據庫升級驗證,外部系統功能驗證
  • 採集流量回放期間測試庫的各項指標,與在線庫進行比對,分析功能差別,性能差別,數據差別
  • 經過備份恢復功能,使用在線庫的數據恢復出一個比對庫,恢復到截止點,與測試庫的數據進行全量比對,判斷數據是否徹底一致

應用場景介紹

1. 傳統數據庫平滑遷移OceanBase分佈式

傳統數據庫遷移OceanBase的過程當中,最大的難點就是如何驗證OceanBase的兼容性。業務系統很是複雜,例如訂單型業務、狀態型業務、契約型業務、分析型業務,這些業務的流量特色和使用數據庫的方式各不相同,大量專門設計的測試驗證方案不但成本昂貴,並且很難徹底覆蓋真實場景。DBReplay正是爲這一場景而生,咱們以MySQL遷移OB爲例,其架構圖以下:工具

因爲目標庫是MySQL數據庫,爲了不對業務系統的侵入,咱們採起了tcpdump的方式去抓取流量,這是一個通用的方案,避免各類環境下的權限問題。抓取的流量分別在MySQL測試環境和OB測試環境進行回放,並作功能比對、性能比對和數據比對,並生成報表。性能

結合OceanBase的MySQL兼容性和Oracle兼容性,最終作到傳統數據庫到OceanBase的平滑遷移。基於該方案,咱們支持了螞蟻內部的MySQL/Oracle上的業務向OceanBase的平滑遷移。測試

2.OceanBase平滑升級設計

業務系統運行在OceanBase之後,OceanBase須要給這些業務系統在響應時間,吞吐量,高可用,可擴展性等方面提供服務級別的保證。對OceanBase的任何變動(例如OceanBase升級),都須要進行全方面的測試和驗證,而後才能發佈到生產環境。大量的測試驗證方案很難徹底覆蓋真實場景,DBReplay解決了以上挑戰。咱們能夠在流量回放階段進行OceanBase升級,並驗證升級過程當中的穩定性及升級後的執行計劃變化,對於不正確的執行計劃進行提早綁定。

3.功能驗證

DBReplay還提供了加速回放功能,能夠用來模擬大促等業務流量暴增的場景;能夠搭建迴歸環境,經過DBReplay回放業務流量,從而進行功能驗證,例如咱們在螞蟻內部搭建了一個高可用體系迴歸環境,進行7*24的故障注入,驗證高可用體系的覆蓋率和正確性。

結語

閱讀《文明之光》有所感,印刷術是人類歷史上最重要的發明之一,其傳承人類的文明,讓人類得以快速發展。歷史上,有兩我的獨立發明了印刷術,一個是中國宋代的畢昇(雕版印刷術),一個是德國人古騰堡(活字印刷術)。

畢昇的發明比古騰堡早了400年,但在發明以後,基本上沒有實際應用。活字印刷術在中國的普及,是在古騰堡解決了好幾個畢昇沒有觸及的關鍵性技術問題後(古騰堡字幕庫,手搖印刷機,排字、校對、裝版一整套印刷工藝流程),才使得活字印刷術最終取代了雕版印刷。

活字印刷術相比雕版印刷術而言可謂是顛覆式的創新。可是,這種創新僅僅靠一項關鍵性技術遠遠不夠,還必須解決和它相關聯和配套的技術,才能讓它成爲改變世界、開創歷史的殺手鐗。

OceanBase相比於傳統數據庫已經進行了顛覆式的創新,融合了關係數據庫與分佈式系統的優點,這種融合使得OceanBase能夠跨機房、跨地域、甚至跨洲際部署實現較高的金融級可用性和事務的強一致性。OceanBase基於低成本通用硬件,具有在線水平擴展能力,創造了4200萬次/秒處理峯值的世界紀錄。

一樣,僅僅依靠單獨突破是遠遠不夠的,咱們須要解決「配套」設施的問題,才能讓OceanBase真正的發揮出威力。DBReplay正是這樣的一個重要的基礎設施,解決了傳統數據庫遷移OceanBase過程當中的一些列問題,以及遷移到OceanBase後的穩定性保障問題。

下期預告
本文是「OceanBase 2.0 技術解析系列」文章的第三篇,下一篇將爲你帶來 《OceanBase負載均衡的魅力》。敬請期待!

2.0解析系列文章

相關文章
相關標籤/搜索