0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

GitHub底層數(shù)據(jù)庫(kù)無(wú)縫升級(jí)到MySQL 8.0的經(jīng)驗(yàn)

OSC開(kāi)源社區(qū) ? 來(lái)源:OSC開(kāi)源社區(qū) ? 2023-12-13 10:21 ? 次閱讀

GitHub 團(tuán)隊(duì)近日分享了他們將 GitHub.com 的底層數(shù)據(jù)庫(kù)無(wú)縫升級(jí)到 MySQL 8.0 的經(jīng)驗(yàn)。 據(jù)介紹,GitHub 使用 MySQL 來(lái)存儲(chǔ)大量關(guān)系數(shù)據(jù),因此在不影響網(wǎng)站服務(wù)級(jí)別目標(biāo) (SLO) 的情況下升級(jí)主機(jī)集群(1200 多臺(tái) MySQL 主機(jī))絕非易事。其團(tuán)隊(duì)表示,為了升級(jí)到 MySQL 8.0,他們規(guī)劃、測(cè)試和升級(jí)本身總共花費(fèi)了一年多的時(shí)間,并且需要 GitHub 內(nèi)部多個(gè)團(tuán)隊(duì)的協(xié)作。

fe8b663a-98e2-11ee-8b88-92fbcf53809c.png

GitHub 的 MySQL 基礎(chǔ)設(shè)施概覽:

由 1200 多臺(tái)主機(jī)組成,包括數(shù)據(jù)中心中的Azure 虛擬機(jī)和裸機(jī)主機(jī)

存儲(chǔ)超過(guò) 300 TB 的數(shù)據(jù),并在 50 多個(gè)數(shù)據(jù)庫(kù)集群中每秒處理 550 萬(wàn)次查詢(xún)

每個(gè)集群都配置為具有主副設(shè)置的高可用性

分區(qū)存儲(chǔ)數(shù)據(jù) —— 利用水平和垂直分片來(lái)擴(kuò)展 MySQL 集群,以及使用 MySQL 集群來(lái)存儲(chǔ)特定產(chǎn)品領(lǐng)域的數(shù)據(jù)。此外還為大結(jié)構(gòu)域 (large-domain) 提供了水平分片的 Vitess 集群,這些區(qū)域的增長(zhǎng)超出了單主 MySQL 集群的規(guī)模

龐大的工具生態(tài),包括 Percona Toolkit、gh-ost、orchestrator、freno 和用于操作主機(jī)集群的內(nèi)部自動(dòng)化工具

由于需要操作兩個(gè)版本的 MySQL,因此 GitHub 內(nèi)部使用的工具和自動(dòng)化設(shè)施需要能夠兼容處理混合版本,并了解 5.7 和 8.0 之間新的、不同的或已棄用的語(yǔ)法。 為了滿(mǎn)足可用性標(biāo)準(zhǔn),GitHub 團(tuán)隊(duì)采取了逐步升級(jí)策略,滿(mǎn)足在整個(gè)過(guò)程中進(jìn)行 checkpoint 和回滾的需求。下面是他們制定的升級(jí)計(jì)劃:

步驟 1:升級(jí)滾動(dòng)副本 (rolling replica)

fe9570b2-98e2-11ee-8b88-92fbcf53809c.png

步驟 2:升級(jí)備份拓?fù)?(replication topology)

fea5e000-98e2-11ee-8b88-92fbcf53809c.png

步驟 3:將 MySQL 8.0 主機(jī)提升為主集群

fea9b2ca-98e2-11ee-8b88-92fbcf53809c.png

步驟 4:升級(jí)面向內(nèi)部的實(shí)例類(lèi)型

步驟 5:清理,確認(rèn)集群不需要回滾并成功升級(jí)到 MySQL 8.0 后,刪除 5.7 服務(wù)器。驗(yàn)證工作會(huì)至少經(jīng)歷一個(gè)完整的 24 小時(shí)流量周期,以確保在高峰流量期間不會(huì)出現(xiàn)問(wèn)題。

至于為什么要升級(jí)到 MySQL 8.0,GitHub 團(tuán)隊(duì)表示主要是因?yàn)?MySQL 5.7 的生命周期即將結(jié)束。此外升級(jí)后可以獲得最新安全補(bǔ)丁、錯(cuò)誤修復(fù)和性能增強(qiáng)的 MySQL 版本。他們還希望測(cè)試 8.0 中的新功能并從中受益,包括即時(shí) DDL、隱形索引和壓縮的 bin 日志等。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 主機(jī)
    +關(guān)注

    關(guān)注

    0

    文章

    1024

    瀏覽量

    35601
  • 數(shù)據(jù)庫(kù)
    +關(guān)注

    關(guān)注

    7

    文章

    3870

    瀏覽量

    65224
  • MySQL
    +關(guān)注

    關(guān)注

    1

    文章

    838

    瀏覽量

    27093
  • GitHub
    +關(guān)注

    關(guān)注

    3

    文章

    477

    瀏覽量

    17079

原文標(biāo)題:GitHub.com跑了1200多臺(tái)MySQL主機(jī),如何無(wú)縫升級(jí)到8.0?

文章出處:【微信號(hào):OSC開(kāi)源社區(qū),微信公眾號(hào):OSC開(kāi)源社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 0人收藏

    評(píng)論

    相關(guān)推薦

    labview有調(diào)用mysql數(shù)據(jù)庫(kù)問(wèn)題????

    labview有調(diào)用mysql數(shù)據(jù)庫(kù),請(qǐng)問(wèn)labview打包成exe安裝檔,怎么把mysql數(shù)據(jù)庫(kù)打包進(jìn)來(lái),是mysql
    發(fā)表于 05-19 16:17

    ESP8266如何連接mysql數(shù)據(jù)庫(kù)

    ,按照示例想連接mysql數(shù)據(jù)庫(kù)時(shí)出現(xiàn)異常,exception(28),然后不斷重啟,不知道為什么,有誰(shuí)連接過(guò)嗎 ,能否分享一下經(jīng)驗(yàn),謝謝。
    發(fā)表于 01-12 09:22

    哪些華為手機(jī)可以升級(jí)到安卓8.0呢?

    在去年的8月份,安卓7.0正式推出,國(guó)內(nèi)的很多手機(jī)都已經(jīng)升級(jí)到了安卓7.0.首批升級(jí)安卓7.0的手機(jī)有華為mate9,mate9 pro和一加3T。據(jù)可靠消息得知,安卓8.0將于8月21號(hào)開(kāi)始推送了,那么安卓
    發(fā)表于 08-21 08:48 ?3w次閱讀

    MySQL數(shù)據(jù)庫(kù)如何安裝和使用說(shuō)明

    MySQL數(shù)據(jù)庫(kù)開(kāi)發(fā) 基礎(chǔ)概念 1.數(shù)據(jù):描述事物特征的符號(hào),屬性 2.數(shù)據(jù)庫(kù)的概念:管理計(jì)算機(jī)中的數(shù)據(jù)的倉(cāng)庫(kù) 2.
    的頭像 發(fā)表于 02-13 16:13 ?2916次閱讀

    騰訊云數(shù)據(jù)庫(kù)8.0的內(nèi)核為什么可以百分百完全兼容主流MySQL分支?

    作為目前全球最流行的開(kāi)源關(guān)系數(shù)據(jù)庫(kù),MySQL本身就具有分鐘級(jí)別的數(shù)據(jù)庫(kù)部署和彈性擴(kuò)展等完備的管控服務(wù),此次結(jié)合騰訊云MySQL 8.0的全
    發(fā)表于 07-09 11:23 ?761次閱讀

    Linux系統(tǒng)升級(jí)MySQL數(shù)據(jù)庫(kù)的步驟和難題

    對(duì)于商業(yè)數(shù)據(jù)庫(kù)而言,數(shù)據(jù)庫(kù)升級(jí)是一個(gè)優(yōu)先級(jí)很高的事情,有版本升級(jí)路線(xiàn)圖,有相應(yīng)的補(bǔ)丁,而且對(duì)于方案還有一系列的演練,陷入是一場(chǎng)硬仗。而在MySQL
    發(fā)表于 08-10 16:26 ?1214次閱讀

    底層數(shù)據(jù)庫(kù)是什么

    底層數(shù)據(jù)庫(kù)系統(tǒng)原理
    發(fā)表于 01-11 14:25 ?0次下載

    華為云數(shù)據(jù)庫(kù)-RDS for MySQL數(shù)據(jù)庫(kù)

    華為云數(shù)據(jù)庫(kù)-RDS for MySQL數(shù)據(jù)庫(kù) 華為云數(shù)據(jù)庫(kù)作為華為云的一款數(shù)據(jù)庫(kù)產(chǎn)品,它主要是以MyS
    的頭像 發(fā)表于 10-27 11:06 ?1653次閱讀

    MySQL數(shù)據(jù)庫(kù)管理與應(yīng)用

    MySQL數(shù)據(jù)庫(kù)管理與應(yīng)用 MySQL是一種廣泛使用的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),被認(rèn)為是最流行和最常見(jiàn)的開(kāi)源數(shù)據(jù)庫(kù)之一。它可以被用于多種不同的應(yīng)
    的頭像 發(fā)表于 08-28 17:15 ?1112次閱讀

    mysql是一個(gè)什么類(lèi)型的數(shù)據(jù)庫(kù)

    MySQL是一種關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)(RDBMS),用于存儲(chǔ)和管理大量結(jié)構(gòu)化數(shù)據(jù)。它被廣泛用于各種應(yīng)用程序和網(wǎng)站的后端,包括電子商務(wù)平臺(tái)、社交媒體網(wǎng)站、金融系統(tǒng)等等。MySQL的特點(diǎn)是
    的頭像 發(fā)表于 11-16 14:43 ?2006次閱讀

    MySQL數(shù)據(jù)庫(kù)基礎(chǔ)知識(shí)

    MySQL 是一種開(kāi)源的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),它是目前最流行的數(shù)據(jù)庫(kù)之一。MySQL 提供了一種結(jié)構(gòu)化的方法來(lái)管理大量的數(shù)據(jù),并且具有高效、
    的頭像 發(fā)表于 11-21 11:09 ?1092次閱讀

    mysql數(shù)據(jù)庫(kù)基礎(chǔ)命令

    MySQL是一個(gè)流行的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),經(jīng)常用于存儲(chǔ)、管理和操作數(shù)據(jù)。在本文中,我們將詳細(xì)介紹MySQL的基礎(chǔ)命令,并提供與每個(gè)命令相關(guān)的詳細(xì)解釋。 登錄
    的頭像 發(fā)表于 12-06 10:56 ?730次閱讀

    數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)—未開(kāi)啟binlog的Mysql數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)案例

    mysql數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)環(huán)境: 本地服務(wù)器,windows server操作系統(tǒng) ,部署有mysql單實(shí)例,數(shù)據(jù)庫(kù)引擎類(lèi)型為innodb,
    的頭像 發(fā)表于 12-08 14:18 ?1323次閱讀
    <b class='flag-5'>數(shù)據(jù)庫(kù)</b><b class='flag-5'>數(shù)據(jù)</b>恢復(fù)—未開(kāi)啟binlog的<b class='flag-5'>Mysql</b><b class='flag-5'>數(shù)據(jù)庫(kù)</b><b class='flag-5'>數(shù)據(jù)</b>恢復(fù)案例

    數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)—Mysql數(shù)據(jù)庫(kù)表記錄丟失的數(shù)據(jù)恢復(fù)流程

    Mysql數(shù)據(jù)庫(kù)故障: Mysql數(shù)據(jù)庫(kù)表記錄丟失。 Mysql數(shù)據(jù)庫(kù)故障表現(xiàn): 1、
    的頭像 發(fā)表于 12-16 11:05 ?390次閱讀
    <b class='flag-5'>數(shù)據(jù)庫(kù)</b><b class='flag-5'>數(shù)據(jù)</b>恢復(fù)—<b class='flag-5'>Mysql</b><b class='flag-5'>數(shù)據(jù)庫(kù)</b>表記錄丟失的<b class='flag-5'>數(shù)據(jù)</b>恢復(fù)流程

    MySQL數(shù)據(jù)庫(kù)的安裝

    MySQL數(shù)據(jù)庫(kù)的安裝 【一】各種數(shù)據(jù)庫(kù)的端口 MySQL :3306 Redis :6379 MongoDB :27017 Django :8000 flask :5000 【二】
    的頭像 發(fā)表于 01-14 11:25 ?324次閱讀
    <b class='flag-5'>MySQL</b><b class='flag-5'>數(shù)據(jù)庫(kù)</b>的安裝

    電子發(fā)燒友

    中國(guó)電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會(huì)員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動(dòng)獲取豐厚的禮品