0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

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

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

基于云上MySQL你不知道的8個要點

阿銘linux ? 來源:高效運維 ? 作者:蘇欣 ? 2021-08-14 11:48 ? 次閱讀

使用云上的 MySQL 時,會遇到很多人詢問 CDB 的。為了更好的了解云上的 MySQL,本文將介紹一些重要的知識點。

1.實例類型

目前云數(shù)據(jù)庫 MySQL 支持三種架構(gòu):基礎(chǔ)版、高可用版、單節(jié)點高 IO 版

1.基礎(chǔ)版是單個節(jié)點部署,價格低,性價比非常高,由于是單節(jié)點,數(shù)據(jù)安全性以及可用性不能保證,不建議生產(chǎn)環(huán)境使用

2.高可用版采用一主 N 從的高可用模式,實時熱備,提供宕機自動檢測和故障自動轉(zhuǎn)移。主從復(fù)制方式有三種:異步、半同步、強同步。高可用版默認一主一從異步復(fù)制方式,可以通過購買和升級遷移到一主二從強同步模式。

3.單節(jié)點高 IO 版采用單個物理節(jié)點部署,性價比高;底層存儲使用本地 NVMe SSD 硬盤,提供強大的 IO 性能。目前應(yīng)用于只讀實例,幫助業(yè)務(wù)分攤讀壓力,適用于有讀寫分離需求的各個行業(yè)應(yīng)用。

2.數(shù)據(jù)庫實例復(fù)制方式

異步復(fù)制

應(yīng)用發(fā)起數(shù)據(jù)更新(含 insert、update、delete 等操作)請求,Master 在執(zhí)行完更新操作后立即向應(yīng)用程序返回響應(yīng),然后 Master 再向 Slave 復(fù)制數(shù)據(jù)。

數(shù)據(jù)更新過程中 Master 不需要等待 Slave 的響應(yīng),因此異步復(fù)制的數(shù)據(jù)庫實例通常具有較高的性能,且 Slave 不可用并不影響 Master 對外提供服務(wù)。但因數(shù)據(jù)并非實時同步到 Slave,而 Master 在 Slave 有延遲的情況下發(fā)生故障則有較小概率會引起數(shù)據(jù)不一致。騰訊云數(shù)據(jù)庫 MySQL 異步復(fù)制采用一主一從的架構(gòu)。

半同步復(fù)制

應(yīng)用發(fā)起數(shù)據(jù)更新(含 insert、update、delete 操作)請求,Master 在執(zhí)行完更新操作后立即向 Slave 復(fù)制數(shù)據(jù),Slave 接收到數(shù)據(jù)并寫到 relay log 中(無需執(zhí)行) 后才向 Master 返回成功信息,Master 必須在接受到 Slave 的成功信息后再向應(yīng)用程序返回響應(yīng)。

僅在數(shù)據(jù)復(fù)制發(fā)生異常(Slave 節(jié)點不可用或者數(shù)據(jù)復(fù)制所用網(wǎng)絡(luò)發(fā)生異常)的情況下,Master 會暫停(MySQL 默認10秒左右)對應(yīng)用的響應(yīng),將復(fù)制方式降為異步復(fù)制。當(dāng)數(shù)據(jù)復(fù)制恢復(fù)正常,將恢復(fù)為半同步復(fù)制。

騰訊云數(shù)據(jù)庫 MySQL 半同步復(fù)制采用一主一從的架構(gòu)。

強同步復(fù)制

應(yīng)用發(fā)起數(shù)據(jù)更新(含 insert、update、delete 操作)請求,Master 在執(zhí)行完更新操作后立即向 Slave 復(fù)制數(shù)據(jù),Slave 接收到數(shù)據(jù)并執(zhí)行完 后才向 Master 返回成功信息,Master 必須在接受到 Slave 的成功信息后再向應(yīng)用程序返回響應(yīng)。

因 Master 向 Slave 復(fù)制數(shù)據(jù)是同步進行的,Master 每次更新操作都需要同時保證 Slave 也成功執(zhí)行,因此強同步復(fù)制能最大限度的保障主從數(shù)據(jù)的一致性。但因每次 Master 更新請求都強依賴于 Slave 的返回,因此 Slave 如果僅有單臺,它不可用將會極大影響 Master 上的操作。

騰訊云數(shù)據(jù)庫 MySQL 強同步復(fù)制采用一主兩從的架構(gòu),僅需其中一臺 Slave 成功執(zhí)行即可返回,避免了單臺 Slave 不可用影響 Master 上操作的問題,提高了強同步復(fù)制集群的可用性。

3.高可用實現(xiàn)原理

目前使用最多的就是高可用版本的一主一從架構(gòu),正常情況下,客戶通過VIP:Port的方式鏈接到主庫上,從庫通過 binlog 和主進行同步。云上 MySQL 在數(shù)據(jù)庫所在的物理機發(fā)生硬件故障時是如何保證高可用呢?

1.主所在物理機發(fā)生故障:

正常情況下,客戶端通過VIP:Port的方式鏈接到主庫上,從庫通過binlog和主進行同步。如下圖中的步驟1

當(dāng)主庫所在的宿主機發(fā)生異常宕機,此時客戶端的鏈接就會被切換到從庫(客戶端具有斷線重連幾乎不受影響),此時從庫進行讀寫。主庫故障后,云平臺會自動生成一個新的主從高可用實例,將最近一天的冷備導(dǎo)入到新實例對,在和當(dāng)前的舊的從庫進行 binlog 的同步。如下圖中的步驟2

binlog 增量同步完成后,舊的從庫會和新的實例對一直進行同步狀態(tài),直至維護時間再次進行主動切換,切換時存在秒級閃斷,業(yè)務(wù)有重連可以忽略閃斷。此時客戶端直接通過VIP+Port的方式連接到新建的實例對。舊實例就會被刪除。

2.從所在的物理機發(fā)生故障

從庫所在的物理機發(fā)生故障是,對客戶端來說業(yè)務(wù)是完全不受影響,在從庫所在物理機異常后,云平臺會自動發(fā)起重建從庫的流程,在健康的物理機上新建一個從庫,導(dǎo)入冷備數(shù)據(jù)后和主庫進行同步,同步完畢后,此時數(shù)據(jù)庫又恢復(fù)了主從高可用狀態(tài)。

4.實例升級

數(shù)據(jù)庫的升級不僅包含數(shù)據(jù)庫版本升級,還包括硬件升配,當(dāng)然硬件的降配具體的原理也是一樣的。

在控制臺發(fā)起實例升級的任務(wù)后,云平臺會自動創(chuàng)建一個新的實例對,該新實例對的配置是需要調(diào)整到的配置。先將最近一次的備份導(dǎo)出到新建實例對內(nèi),在和主實例進行binlog同步。

主實例和新建實例對同步完成后,用戶可以自行選擇立即切換或在維護期內(nèi)切換。整個切換過程秒級即可完成,完成后嗎,客戶端連接數(shù)據(jù)庫請求都會到目標(biāo)實例對,源實例對則會被自動回收。

從上面的步驟我們可以看到升級實例時,完全不影響數(shù)據(jù)庫的正常使用。升級主要花費的時間是導(dǎo)入冷備和追 binlog 這兩個步驟,而這兩個環(huán)節(jié)的所需的時間取決于客戶的數(shù)據(jù)量大小和產(chǎn)生的 binlog 的大小。一般導(dǎo)入冷備的速度是 50G/h(理論值僅供參考)。

5.binlog介紹

binlog日志用于記錄所有更改數(shù)據(jù)的語句, 俗稱二進制日志,主要用于復(fù)制和即時點恢復(fù)。主從復(fù)制也是依賴于binlog的。類似于Oracle的archivelog,Mongodb的oplog,所有和寫有關(guān)或者可能有關(guān)的語句,都會記錄在binlog文件中。云上的MySQL數(shù)據(jù)庫的binlog文件都是每1G自動生成一個(新購實例也可能256M做一次切割),除非做了flush logs的操作。

MySQL的binlog默認保留5天,所以如果需要回檔的話,只能恢復(fù)到5天內(nèi)的任意時間點。

另外控制臺下載的 binlog 日志,需要在本地解析的話,須確保客戶端的 MySQL 版本與 CDB for MySQL 的版本一致,否則會出現(xiàn)解析出亂碼的情況,建議使用 3.4 或以上版本的mysqlbinlog

6.回檔介紹

回檔是將數(shù)據(jù)庫通過冷備和binlog恢復(fù)到之前的某個時間點的一種操作。CDB的回檔分為普通回檔、快速回檔以及極速回檔

普通回檔:導(dǎo)入該實例的全量備份,再在對選中的庫、表進行回檔。該回檔模式無限制,但回檔速度較慢

快速回檔:僅導(dǎo)入所選中庫級別的備份和binlog,如有跨庫操作,且關(guān)聯(lián)庫未被同時選中,將會導(dǎo)致回檔失敗

極速回檔:僅導(dǎo)入所選中表級別的備份和binlog,如有跨表操作,且關(guān)聯(lián)表未被同時選中,將會導(dǎo)致回檔失敗。極速模式下,請手動選擇需要回檔的表。如果表已經(jīng)被刪除,需要客戶自行創(chuàng)建表在進行回檔操作。

7.慢查詢

慢查詢就是執(zhí)行數(shù)據(jù)庫查詢時消耗時間比較大的SQL語句。MySQL CPU 利用率過高,大部分原因與低效 SQL 有關(guān)系,通過優(yōu)化低效 SQL 基本可以解決大部分問題。MySQL 慢查詢時間的默認值是10s,在遇到性能問題時,若發(fā)現(xiàn)沒有慢查詢,建議將其參數(shù)調(diào)成1s ,再觀察業(yè)務(wù)周期內(nèi)的慢查詢,進而對其慢查詢進行優(yōu)化。

如果出現(xiàn)全表掃描較高的情況,可以打開log_queries_not_using_indexes參數(shù),此時未使用索引的全表掃描也可以記錄到慢查詢里面。這個參數(shù)并不建議一直打開,會對數(shù)據(jù)庫的磁盤造成較大影響。

8.MySQL空間

用戶使用查詢語句得到的MySQL空間和控制臺看到的已使用空間相比有很大出入,為什么?

MySQL 的空洞效應(yīng)導(dǎo)致,使用過程中的一些碎片沒有得到合理釋放因此查詢語句查出來的空間和控制臺統(tǒng)計的實際已使用空間相比少了許多,這部分是碎片,徹底解決需要在夜深人靜的時候執(zhí)行 optimize table。

來源:https://cloud.tencent.com/developer/article/1579285

編輯:jq

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

    關(guān)注

    20

    文章

    2791

    瀏覽量

    116659
  • MySQL
    +關(guān)注

    關(guān)注

    1

    文章

    789

    瀏覽量

    26286
  • CDB
    CDB
    +關(guān)注

    關(guān)注

    0

    文章

    2

    瀏覽量

    6530

原文標(biāo)題:云上 MySQL 的這8個要點,運維,請了解一下~

文章出處:【微信號:aming_linux,微信公眾號:阿銘linux】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    AMC1100使用前需要烘烤,不知道烘烤溫度和烘烤時間是多少?

    1:AMC1100使用前需要烘烤,但是不知道 烘烤溫度和烘烤時間是多少?能在datasheet查看到嗎? 2:datasheet MSL參數(shù) Level-1-260C-UNLIM中UNLIM
    發(fā)表于 08-09 08:11

    新手嘗試做一LED驅(qū)動電路,不知道電路有沒有問題

    TP8006穩(wěn)流驅(qū)動,最后留出LED插口。 因為不是很懂硬件設(shè)計,不知道做的模塊能不能行,很希望各位提提意見,讓我認識認識硬件設(shè)計的缺陷。
    發(fā)表于 07-24 18:35

    阿里設(shè)備的物模型數(shù)據(jù)里面始終沒有值是為什么?

    如上圖,不知道講清楚沒有。 IG502自定義TOPIC 發(fā)到阿里沒問題。采用阿里物模型的格式來上發(fā)就不行。請大佬指教!
    發(fā)表于 07-24 07:49

    華納:如何修改MySQL的默認端口

    MySQL是世界最流行的開源關(guān)系型數(shù)據(jù)庫管理系統(tǒng)之一。在某些情況下,由于安全性、網(wǎng)絡(luò)策略或端口沖突的原因,數(shù)據(jù)庫管理員可能需要更改MySQL服務(wù)的默認監(jiān)聽端口。本文將指導(dǎo)您如何在不同的操作系統(tǒng)
    的頭像 發(fā)表于 07-22 14:56 ?194次閱讀
    華納<b class='flag-5'>云</b>:如何修改<b class='flag-5'>MySQL</b>的默認端口

    不知道怎么進行負載測試發(fā)電機嗎?

    測試一般的流程是怎樣的,知道嗎? ? 1、試驗前準備:確保發(fā)電機和試驗設(shè)備處于良好的工作狀態(tài),檢查發(fā)電機的電源和燃料供應(yīng)是否正常,確保試驗設(shè)備與發(fā)電機的連接正確可靠。 2、確定試驗載荷:根據(jù)您的實際要求確定試驗
    的頭像 發(fā)表于 07-03 17:36 ?486次閱讀

    要做一GPRS遠程升級的工程,有一想法不知道是否可行,請幫忙看下?

    要做一GPRS遠程升級的工程,有一想法不知道是否可行,如下: 1.電進入IAP程序,啟動看門狗,用戶APP標(biāo)志存在則跳轉(zhuǎn),無則等等用戶APP升級,并喂狗 2.用戶程序完整可執(zhí)行,
    發(fā)表于 05-16 07:14

    這些不知道的臥式共模電感的選型依據(jù)

    這些不知道的臥式共模電感的選型依據(jù) gujing 編輯:谷景電子 實際上關(guān)于臥式共模電感的選型已經(jīng)有討論過很多這方面的內(nèi)容,但一直都還有人在討論這些問題。本篇我們換幾個角度來探討一下臥式共模電感
    的頭像 發(fā)表于 04-29 22:42 ?239次閱讀

    輥壓機軸承位磨損修復(fù)不知道的那些事

    電子發(fā)燒友網(wǎng)站提供《輥壓機軸承位磨損修復(fù)不知道的那些事.docx》資料免費下載
    發(fā)表于 03-12 15:10 ?0次下載

    吸塵器究竟是如何替“吃灰”的【其利天下技術(shù)】

    如今,吸塵器已成為大多數(shù)人居家必備的小家電產(chǎn)品,那么說起吸塵器,對吸塵器有了解多少呢?不知道大家知不知道它的原理是什么?今天我們就來說一說吸塵器究竟是如何替“吃灰”的。
    的頭像 發(fā)表于 03-07 21:17 ?741次閱讀
    吸塵器究竟是如何替<b class='flag-5'>你</b>“吃灰”的【其利天下技術(shù)】

    直插大功率電感不知道怎么選就看這里

    直插大功率電感不知道怎么選就看這里 編輯:谷景電子 關(guān)于直插大功率電感的選型一直是一難題,要想直插大功率電感的優(yōu)勢在電路中發(fā)揮著作用,那么選型這個環(huán)節(jié)是必不可少并且特別重要。如果對直插大功率電感
    的頭像 發(fā)表于 01-04 22:46 ?312次閱讀

    7種MOSFET柵極電路的常見作用,不看不知道

    7種MOSFET柵極電路的常見作用,不看不知道
    的頭像 發(fā)表于 12-15 09:46 ?1479次閱讀
    7種MOSFET柵極電路的常見作用,不看<b class='flag-5'>不知道</b>!

    揭秘pcb是什么物質(zhì):不知道的“化學(xué)戰(zhàn)士”

    揭秘pcb是什么物質(zhì):不知道的“化學(xué)戰(zhàn)士”
    的頭像 發(fā)表于 12-14 10:27 ?789次閱讀

    華為耀服務(wù)器 L 實例:輕量應(yīng)用助力企業(yè)簡單

    計算是當(dāng)今科技領(lǐng)域的熱門話題,也是中小企業(yè)和開發(fā)者的創(chuàng)新動力。但是,是否曾經(jīng)遇到過這樣的困境:想要使用服務(wù)器,卻不知道如何選擇合適的型號和配置?想要部署自己的應(yīng)用,卻被復(fù)雜的操作
    的頭像 發(fā)表于 11-21 09:28 ?226次閱讀

    不知道的FPC,它的發(fā)展史竟然是這樣的!

    不知道的FPC,它的發(fā)展史竟然是這樣的!
    的頭像 發(fā)表于 11-15 10:48 ?850次閱讀

    工程師需知道的50路由器知識要點

    電子發(fā)燒友網(wǎng)站提供《工程師需知道的50路由器知識要點.pdf》資料免費下載
    發(fā)表于 11-02 09:38 ?1次下載
    工程師需<b class='flag-5'>知道</b>的50<b class='flag-5'>個</b>路由器知識<b class='flag-5'>要點</b>