DBA福音 | 如何無視資料量快速搭建測試資料庫

沃趣科技發表於2019-03-11

眾所周知,出於產品的開發需求,搭建測試資料庫是DBA一項日常工作,不同的行業頻度可能差異很大。例如我接觸到的保險行業客戶,搭建測試資料庫的繁重程度簡直令人瞠目結舌,某DBA向我吐槽這項日常工作的血淚史:

上述場景有搞笑的成分在,覺得和自己工作場景不符的同學權且當段子看。不過這個段子來源於真實的場景,日復一日的搭建測試庫給DBA同學帶來極大的工作負荷,以及重複無意義的操作。

今天我們就來探討如何降低這項工作的耗時,將原本一天的工作量降低為5分鐘。

什麼是快照和克隆

首先,在傳統的資料庫+硬碟之間,需要加入一層儲存池,由儲存池來統一管理所有的硬碟,並根據實際需要劃分邏輯卷供資料庫使用。 

資料庫向邏輯卷寫入的資料最終仍落到硬碟上,邏輯卷其實只是一些指標的集合,如圖1。


第二步,建立快照。快照仍然是指標的集合,指向當前邏輯卷同樣的資料塊,所以並沒有額外消耗空間,如圖2。

隨著時間推移,資料庫在不斷修改資料,例如將資料“5”修改為“6”,因資料“5”被快照佔用,無法直接修改,因此使用新的資料塊來儲存“6”,並修改邏輯卷的指標,使其指向“6”,此時快照僅佔用資料“5”一個資料塊,因此空間消耗為“差異資料”,就是ROW(Redirect-On-Write),如圖3。 

第三步,建立克隆卷。為了保證資料完整性,快照一般是不建議寫入的,因此我們需要建立一份“資料副本”,即克隆卷。在快照的基礎上建立一份可寫的卷,修改的資料以新資料塊儲存並修改克隆卷的指標,從而達到不影響邏輯卷,快照的內容的前提要求,如圖4。

此時克隆卷可以用於做測試用途,由於建立一份克隆卷本質上僅僅是根據快照建立了一份指標的集合,因此無需資料拷貝,且與資料總量無關,無論GB級還是TB級,均可以在秒級建立出克隆卷以供測試,極大降低搭建測試資料庫的耗時。

引入合適的工具

沃趣科技QBackup容災備份雲平臺,目前支援Oracle、MySQL、SQL sever等主流資料庫的備份,可同時對多套資料庫做集中式備份管理,並對備份進行持續校驗以確保資料的可恢復性。 產品整合儲存池、快照、克隆等特性,並且引入虛擬化將資料庫所依賴的OS、軟體環境製作成為模板,可以基於模板快速生成多套資料庫環境;測試庫之間相互隔離,修改系統時間等操作完全不影響其他測試庫,解決了傳統方案需要多臺物理機的問題,降低整體成本;基於快照+克隆可以省去資料拷貝環節,極大節省搭建時間,降低網路頻寬及IO佔用等。

使用QBackup來建立測試資料庫,僅需要在頁面上點選,即得到一個完整的測試資料庫環境,將DBA原本一天的工作量縮短到幾分鐘,大大減輕DBA的工作負擔。

儘量使用工具降低工作中的重複、無意義勞動,才能真正迴歸到業務的本質去推進更有價值的工作,畢竟人生苦短,省下這些時間多學點新技術才是正道!

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

相關文章