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