mysql資料遷移雙寫 資料遷移類測試策略

2021-10-18 22:33:51 字數 1694 閱讀 4812

二、遷移類測試策略

1、概述

隨著業務需求或資料量增長到一定程度,往往需要進行資料庫切換,這裡就伴隨這資料遷移。

關鍵字: 全量資料遷移,增量資料遷移,分庫分表,資料雙寫,oracle、mysql、hbase…,新老資料相容,資料訂正

2、發布方案(遷移方案)

兩大類:正常發布、停機發布

正常發布:可以實現線上業務無縫切換,不影響使用者使用,需要保證新老資料相容,發布過程中的資料寫入等。

停機發布 : 優點在於可以避免發布過程中的新資料寫入,缺點是發布過程中,不能正常提供服務。

發布方案的制定是根據具體業務情況制定發布方案,對業務無影響的情況下較常採用停機發布,方便簡單。

介紹一種無縫對接的正常發布方案

a庫歷史庫 mysql分庫分表 到 b庫新庫hbase

步驟1、全量dump1:a庫資料全量遷移至b庫

步驟2、開啟雙寫:同時寫入到a庫歷史庫和b庫新庫

步驟3、全量dump2:開啟雙寫前的所有差集,將差集灌回b資料庫,這裡是補充全量dump1期間和開啟雙寫前只寫入到a的資料。保證了a、b資料庫資料的完全一致,同時已經開啟了雙寫。

步驟3』、測試介入,可對a、b庫取某一時間段前所有資料進行資料驗證。

步驟4、停止對a庫的寫入,發布前端應用,切換至b庫新庫

注意點:

1、雙寫時,b庫不存在被寫源資料或b庫資料狀態異常等情況,需要從業務上考慮,是否直接從a庫中獲取資料並覆蓋至b庫

2、以上步驟中的多次dump和雙寫有多個寫入b庫的場景,需要以保證b庫和a庫一致為原則,如b庫的重複寫入等情況的處理。

3、測試策略

在進行資料遷移測試前,需確認的checklist

checklist

1、 哪些表需要遷、哪些表不需要遷;需要遷移的錶老庫和新庫的對應關係是怎樣的

2、 明確表的關聯關係,關聯表是否需要遷移,不遷移怎麼處理

3、 遷移的表中,哪些欄位要遷移,哪些不遷移,對應關係是怎樣的

4、 新錶中的字段,老表是不是一定有,如果不一定,怎麼處理可能為空的情況,尤其是必填欄位的處理

5、 遷移前,新錶是否為空,不為空是否可能存在資料重複的情況,怎麼處理

6、 新老表中的字段型別、長度的定義是否一致,可否正確轉換

7、 需遷移的表資料量為多少

8、 開發做了哪些資料遷移正確性的保障

針對不同的業務場景需要測試人員設計不同的測試方案,主要都是兩個層面的驗證,資料層面的資料驗證和功能層面的功能驗證

1、資料驗證:使用工具或設計對賬程式全量驗證

a、全量資料驗證

b、增量資料驗證

c、抽樣資料驗證

根據業務情況判斷需要進行哪一項或幾項資料驗證

工具使用:可以選用目前較成熟的遷移工具:愚公移山, 兼全量資料驗證和增量資料驗證功能

驗證方式:若遷移場景不在愚公的適用範圍內,全量驗證和增量資料驗證需要另外設計適用於該場景下的資料驗證方案

可採用的一些驗證方式:考慮根據不同資料的儲存方式,資料量的大小

a、關聯式資料庫,直接新老資料庫中jdbc方式獲取資料,一條條進行對比,新老資料存在規則轉換的情況需要在對賬程式中同時進行規則判斷。

b、全量或抽樣dump歷史庫和新庫兩份檔案進行對比,資料庫非常大的時候推薦使用hadoop

32/3<123>

資料遷移 雙寫調研

注 沒有實踐過,完全是為了學習 目的 將a庫中n張表中的資料遷移到b庫的m張表中,在b庫中做分表操作。在遷移過程中要求不停服。方案 雙寫 具體流程 在b庫中建表,在 中實現雙寫的開關以及功能 讀老庫,增刪改老庫和新庫 雙寫執行一段時間後,對比新老庫資料,要求新老庫對應主鍵的資料一致 若雙寫沒問題,則...

mysql資料遷移框架 mysql資料遷移

本文總結各種場景下的資料複製 遷移 轉換。1 匯入 匯出 資料匯出 mysqldump uroot p dbname dbname.sql 包含表結構和表資料 資料匯入 mysql uroot p dbname dbname.sql 注意 匯出的sql檔案包含舊表資訊,請修改其中的create ta...

mysql資料遷移 Mysql資料遷移方法

mysql遷移通常使用的有三種方法 1 資料庫直接匯出,拷貝檔案到新伺服器,在新伺服器上匯入。2 使用第三方遷移工具。3 資料檔案和庫表結構檔案直接拷貝到新伺服器,掛載到同樣配置的mysql服務下。第一種方案的優點 會重建資料檔案,減少資料檔案的占用空間,相容性最好,匯出匯入很少發生問題,需求靈活。...