明輝手游網(wǎng)中心:是一個免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

MySQL 8.0.2復(fù)制新特征的詳細(xì)介紹

[摘要]譯者:知數(shù)堂星耀隊(duì)MySQL 8.0.2復(fù)制新特性MySQL 8 正在變得原來越好,而且這也在我們MySQL復(fù)制研發(fā)團(tuán)隊(duì)引起了一陣熱潮。我們一直致力于全面提升MySQL復(fù)制,通過引入新的和一些有趣的...
譯者:知數(shù)堂星耀隊(duì)

MySQL 8.0.2復(fù)制新特性

MySQL 8 正在變得原來越好,而且這也在我們MySQL復(fù)制研發(fā)團(tuán)隊(duì)引起了一陣熱潮。我們一直致力于全面提升MySQL復(fù)制,通過引入新的和一些有趣的功能。此外,我們還聽取了社區(qū)的建議和反饋。因此,我們很榮幸能夠與你一同見證最新版本(MySQL 8.0.2)的里程碑式的發(fā)布,為此我們總結(jié)了其中的一些值得注意的變化。跟隨我們下面的博客,我們將會分享這些新功能的一些見解。

我們對MySQL 組復(fù)制進(jìn)行了加強(qiáng),主要有以下幾個方面:

  • 不允許對離開組的成員進(jìn)行更改:每當(dāng)組成員離開群組,離開的成員將會自動設(shè)置super_read_only,這可以防止DBA,用戶或路由器/代理/負(fù)載平衡等帶來的的意外更改。除了默認(rèn)離開組復(fù)制的成員不能夠進(jìn)行修改以外,也可以從剛加入開始就開始禁止寫入,我們也可以在服務(wù)器啟動時設(shè)置super_read_only參數(shù)并啟動組復(fù)制插件。一旦組復(fù)制動成功,他會自動調(diào)整super_read_only的值。在多主模式下,所有的節(jié)點(diǎn)都將不會設(shè)置super_read_only參數(shù) ;在單主的模式下,除了主節(jié)點(diǎn)以外,其他的節(jié)點(diǎn)都會設(shè)置super_read_only為ON 。如果很不幸,你的組復(fù)制啟動失敗了的話,super_read_only參數(shù)將不會被設(shè)置,將不能進(jìn)行任何寫入操作。這些最新的變化同樣適用于MySQL 5.7.19和MySQL 8.0.2。所有的這些,有很大部分是因?yàn)槲覀兟犎×松鐓^(qū)的反饋然后進(jìn)行開發(fā)和加強(qiáng)。--在此 感謝Kenny Gryp

  • 可以在Performance Schema 中查看更多信息:在Performance Schema現(xiàn)存的表中,對相關(guān)的統(tǒng)計(jì)信息的可讀性進(jìn)行了加強(qiáng)!皉eplication_group_members” 和 “replication_group_member_stats” 表也做了相關(guān)拓展,現(xiàn)在可以清楚的看到組成員的角色信息,組成員版本和事物計(jì)數(shù)器(本地/遠(yuǎn)程)

  • 通過分配權(quán)重來指定主庫的選舉:用戶可以通過指定組成員的權(quán)重來控制主庫的選舉,當(dāng)現(xiàn)有的主節(jié)點(diǎn)退出組復(fù)制,權(quán)重最高的節(jié)點(diǎn)就會被提升為主節(jié)點(diǎn)。

  • 流量控制機(jī)制加了一些微調(diào)項(xiàng):用戶現(xiàn)在可以更精細(xì)的調(diào)節(jié)流量控制組件?梢远x每個成員的最小配額,整個組的最小提交配額,流程控制窗口等等。

MySQL 8.0.1 已經(jīng)在MySQL復(fù)制核心框架添加了很多引人注目的功能。而MySQL 8.0.2在此基礎(chǔ)上又有很大的提升,主要如下:

  • 增強(qiáng)對接收器(IO)線程的管理,即使磁盤已滿:此功能提高了接收器和其他線程之間的內(nèi)部協(xié)調(diào)效率,減少彼此的爭用。對于終端用戶來說,這意味著在磁盤變滿并且接收器線程阻塞的情況下,它不再阻塞監(jiān)視操作,例如SHOW SLAVE STATUS。它還引入了一個新的線程狀態(tài)(接收器線程正在等待磁盤空間資源),此外,當(dāng)磁盤已滿的時候,而且你并不能通過釋放磁盤空間使接收器線程繼續(xù)沒有完成的工作,這個時候你可以手動停掉它,一般情況下不會有什么問題。但是如果當(dāng)時有一個寫入的事物被清除掉了,而且relay log 也不是在一致的狀態(tài)下,當(dāng)接收器線程輪詢relay log并且在等待磁盤空間可用時,你就要特別的留心。

  • binary log中記錄更多的元數(shù)據(jù)信息:將事物長度添加到全局事務(wù)日志事件。這可以對我們未來的優(yōu)化工作有很大的幫助,而且也提高了binary log的可讀性。

如果你在研究MySQL復(fù)制的內(nèi)部機(jī)制與原理,我們將很高興與你一起分享我們做了一些清理工作,并為我們的基礎(chǔ)組件添加了一個有趣的服務(wù):

  • 組成員事件可以傳播到內(nèi)部其他組件。通過利用新的基礎(chǔ)服務(wù)架構(gòu),組復(fù)制插件現(xiàn)在可以通知服務(wù)器中的其他組件關(guān)于成員關(guān)聯(lián)的事件。例如,通知組成員的角色改變仲裁丟失等。其他的組件可以對這個信息作出反饋,并且用戶也可以自己開發(fā)組件用來記錄和檢測這些事件。

  • 從XCom(標(biāo)準(zhǔn)的Paxos實(shí)現(xiàn),能嚴(yán)格保證正確性)的內(nèi)部結(jié)構(gòu)中刪除節(jié)點(diǎn)上的冗余信息:我們在XCom的結(jié)構(gòu)中刪除了一些冗余信息,這使它變得更加簡單,更少的出現(xiàn)錯誤,更容易監(jiān)控那些節(jié)點(diǎn)加入或者離開集群,同時它會在系統(tǒng)中保留以前的信息。

  • 對XCom核心和新編碼風(fēng)格進(jìn)行了幾項(xiàng)改進(jìn):我們已經(jīng)修復(fù)了XCom的幾個BUG,重新格式化了代碼,使它符合Google的編碼準(zhǔn)則,如果你恰巧是一個開發(fā)人員,并且再看我們Paxos實(shí)現(xiàn)的源代碼,你會發(fā)現(xiàn)改版后的代碼將會更加容易閱讀和理解。

  • 移除了一些老舊版本binary log轉(zhuǎn)換的源代碼:這個清理工作我們清除了一些老版本My數(shù)據(jù)庫產(chǎn)的的binary logs轉(zhuǎn)化為新版本能夠識別的一些代碼(現(xiàn)在僅支持MySQL5.0以及以上版本)。

還有一件有意思的事情,我們已經(jīng)在MySQL 8.0.2中更改了以下復(fù)制默認(rèn)值:

  • 復(fù)制的元數(shù)據(jù)信息默認(rèn)以INNODB系統(tǒng)表來存儲:這將使MySQL復(fù)制功能變得更加強(qiáng)大,在復(fù)制崩潰并且自動恢復(fù)時候能夠使用INNODB事物的特性來保證恢復(fù)到指定位置的正確性。此外,新功能還要求將元數(shù)據(jù)以表的形式存儲(比如組復(fù)制和多源復(fù)制),它與MySQL 8的新的數(shù)據(jù)字典保持一致。

  • 基于行數(shù)據(jù)的哈希掃描被默認(rèn)開啟:這也許并不是一個被廣泛認(rèn)同的做法,但是當(dāng)從庫有一些沒有主鍵約束的表的時候性能會有提高。在這種情況下,使用基于行的復(fù)制時,此更改會最大程度降低性能損失,因?yàn)樗鼤䴗p少更新所有行所需的表掃描數(shù)(slave_rows_search_algorithms參數(shù)默認(rèn)TABLE_SCAN,INDEX_SCAN,HASH_SCAN)。

  • transaction-write-set-extraction參數(shù)會默認(rèn)開啟:使用寫集提取,為用戶啟動組復(fù)制或在主服務(wù)器上使用基于WRITESET的依賴關(guān)系對master進(jìn)行跟蹤。

  • 默認(rèn)開啟Binary log 過期時間:expire-logs-days默認(rèn)設(shè)置為30(30天)

如你所知,我們一直很忙。事實(shí)上,MySQL 8.0.2 Milestone Release已經(jīng)發(fā)布了。在復(fù)制方面,我們非常高興看到許多有趣的功能被加入進(jìn)來。

接下來將會有專門的博客來介紹說明這些功能。你也可以自己下載進(jìn)行測試(下載地址),我們需要留意的是MySQL 8.0.2還是DMR版本,并沒有GA,使用它需要自己承擔(dān)風(fēng)險。另外不要忘記,我們歡迎而且很期望得到你們的反饋。您可以通過錯誤報(bào)告,功能報(bào)告,復(fù)制郵件列表或僅對這個(或后續(xù)的)博文發(fā)表評論來給予我們反饋。MySQL 8將會越來越好,越來越精彩。

以上就是MySQL 8.0.2復(fù)制新特性的詳細(xì)介紹的詳細(xì)內(nèi)容,更多請關(guān)注php中文網(wǎng)其它相關(guān)文章!


學(xué)習(xí)教程快速掌握從入門到精通的SQL知識。