資料遷移 雙寫調研

2021-10-19 08:33:30 字數 1000 閱讀 6171

注:沒有實踐過,完全是為了學習

目的:將a庫中n張表中的資料遷移到b庫的m張表中,在b庫中做分表操作。在遷移過程中要求不停服。

方案:雙寫

具體流程

在b庫中建表,在**中實現雙寫的開關以及功能(讀老庫,增刪改老庫和新庫)

雙寫執行一段時間後,對比新老庫資料,要求新老庫對應主鍵的資料一致

若雙寫沒問題,則可以開始搬遷歷史資料至新庫

多次批量遷移和對比完成後,新老庫的資料應該一致

切讀:從讀舊庫到讀新庫。此階段:讀新,寫舊,寫信

清理舊資料,舊**邏輯

大致流程圖:

詳細流程

update_time欄位通常是on update current_timestamp,如果庫ab的機器時間不一致,或者網路時延導致同一操作update_time欄位不一致如何解決

答:機器時間提前校準

先寫a後寫b,b的資料update_time可能大於a,如果乙個邏輯:寫a,時間戳為1,寫b時間戳4;又來乙個邏輯,寫a時間戳2,寫b失敗,那麼b的資料將按照時間戳後與a,此時恰好歷史資料搬遷則會出問題?

答:雙寫是否需要分布式事務保證?手動補償?

如果存在外來鍵約束,新增資料可能失敗

答:一般生產環境不允許存在外來鍵,如果存在外來鍵,寫失敗也無妨,遷移歷史資料時,按照依賴拓撲圖遷移?

遷移前後資料結構不一致問題

答:在dao層,做轉換,統一檢視,遷移前後的資料庫不一致,例如從mysql遷移至hbase,同資料來源不影響上層使用

mysql是否存在搬遷老資料的工具?存在,例如mysqldump等,可以直接讓dba遷移

如何快速配置、回滾到各個階段?

答:使用策略模式,配置中心

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

二 遷移類測試策略 1 概述 隨著業務需求或資料量增長到一定程度,往往需要進行資料庫切換,這裡就伴隨這資料遷移。關鍵字 全量資料遷移,增量資料遷移,分庫分表,資料雙寫,oracle mysql hbase 新老資料相容,資料訂正 2 發布方案 遷移方案 兩大類 正常發布 停機發布 正常發布 可以實現...

別人寫的雙鏈表

寫了個雙向鍊錶 include template struct nodetype template class doublelist template const doublelist doublelist operator const doublelist otherlist if this ot...

資料現狀調研提綱

資料現狀調研提綱 1.目前主要有幾類資料?從什麼平台產生?分別是什麼儲存介質?各類資料的資料量級?2.基礎資料的現狀 對於跨業務系統的基礎資料 人員資訊 產品資訊等 是否有主資料系統進行管理 or 分散在不同的業務系統各自維護?3.是否有管理資料的部門或團隊?資料管理的模式?有部門統一管理還是分散在...