mysql 百亿数据_从SQL Server到MySQL,近百亿数据量迁移实战
滬江成立于 2001 年,作為較早期的教育學習網站,當時技術選型范圍并不大:Java 的版本是 1.2,C# 尚未誕生,MySQL 還沒有被 Sun 收購,版本號是 3.23。工程師們選擇了當時最合適的微軟體系,并在日后的歲月里,逐步從 ASP 過度到 .net,數據庫也跟隨 SQL Server 進行版本升級。
十幾年過去了,技術社區已經發生了天翻地覆的變化。滬江部分業務還基本在 .net 體系上,這給業務持續發展帶來了一些限制,在人才招聘、社區生態、架構優化、成本風險方面都面臨挑戰。集團經過慎重考慮,發起了大規模的去 Windows 化項目。這其中包含兩個重點子項目:開發語言從 C# 遷移到 Java,數據庫從 SQL Server 遷移到 MySQL。
本文主要向大家介紹,從 SQL Server 遷移到 MySQL 所面臨的問題和我們的解決方案。
遷移方案的基本流程
設計遷移方案需要考量以下幾個指標:
遷移前后的數據一致性;
業務停機時間;
遷移項目是否對業務代碼有侵入;
需要提供額外的功能:表結構重構、字段調整。
經過仔細調研,在平衡復雜性和業務方需求后,遷移方案設計為兩種:停機數據遷移和在線數據遷移。如果業務場景允許數小時的停機,那么使用停機遷移方案,復雜度低,數據損失風險低。如果業務場景不允許長時間停機,或者遷移數據量過大,無法在幾個小時內遷移完成,那么就需要使用在線遷移方案了。
數據庫停機遷移的流程:
停機遷移邏輯比較簡單,使用 ETL(Extract Translate Load) 工具從 Source 寫入 Target,然后進行一致性校驗,最后確認應用運行 OK,將 Source 表名改掉進行備份。
總結
以上是生活随笔為你收集整理的mysql 百亿数据_从SQL Server到MySQL,近百亿数据量迁移实战的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 积分兑换选什么礼品,值得企业去思考!
- 下一篇: 数据库完整性(实体完整性,参照完整性,用