MySQL8.0.2新特性UNDO表空間管理的靈活性提升-創(chuàng)新互聯(lián)

一篇自己翻譯的文章,原文來自MySQL Server官方團隊博客:
原文鏈接:http://mysqlserverteam.com/mysql-8-0-2-more-flexible-undo-tablespace-management/
同時也發(fā)布在了老葉茶館:
https://mp.weixin.qq.com/s?__biz=MjM5NzAzMTY4NQ==&mid=2653930802&idx=1&sn=db6c9acab8fb41da004f36ff90355258&chksm=bd3b5f588a4cd64e25e1beeac66d6a71beaa2ff0617ea8e46d3af5f9a3aecb4ff744b8d06b26&scene=38#wechat_redirect
在MySQL 8.0.2 DMR版本中,我們將提高InnoDB的UNDO表空間易管理性。
〇 主要有幾點提升:

1、可以隨時自由地創(chuàng)建或刪除UNDO表空間;
2、無論是否需要進行InnoDB恢復,也可以在啟動前更改相關(guān)設置;
3、即便InnoDB引擎處于繁忙狀態(tài)時,也可以增加或減少UNDO表空間的數(shù)量。
〇 innodb_undo_tablespaces:
UNDO表空間包括回滾段,而回滾段又包括UNDO日志。UNDO日志用于'回滾'事務和創(chuàng)建MVCC所需要的舊版本數(shù)據(jù),以便在一個事務中保證數(shù)據(jù)庫快照的一致性。
以前,當數(shù)據(jù)庫初始化時,InnoDB的UNDO表空間的數(shù)量是確定的。而現(xiàn)在可以隨時將其值設置為0~127之間的任意值,并可通過啟動時讀取的配置文件,或者命令行,或者通過在線‘SET GLOBAL INNODB_UNDO_TABLESPACES=n’進行修改。
當UNDO表空間數(shù)量設置為0時(不使用獨立UNDO表空間),所有的回滾段將存儲在系統(tǒng)表空間中。這是在 5.6版本之前,無法支持獨立UNDO表空間存儲回滾段情景下的舊模式。我們嘗試通過這種方式盡量不使用系統(tǒng)表空間,所以默認值不會設置為2。在將來的版本中該選項最小值是2,這表明系統(tǒng)表空間將不會被用作任何回滾段。所以請不要在你的配置文件中設置innodb_undo_tablespaces=0。
〇 innodb_undo_log_truncate:
我們將UNDO表空間的最小值設為2,因為當一個UNDO表空間被清空時,至少還需要有另一個UNDO表空間。InnoDB將在大事務結(jié)束后進行UNDO清除操作以收縮UNDO表空間大小。以前,innodb_undo_log_truncate的默認值為OFF,而在8.0.2版本該值默認為ON。
〇 innodb_rollback_segments:
選擇可以隨時設置為1~128之間的任何值??赏ㄟ^啟動時讀取的配置文件,或直接在命令行中傳遞參數(shù),或者啟動后在線執(zhí)行命令‘SET GLOBAL INNODB_ROLLBACK_SEGMENTS=n’。
這個選項曾是用于整個服務器可以支持的回滾段數(shù)?,F(xiàn)在為每一個UNDO表空間的回滾段數(shù),允許并發(fā)事務使用更多的回滾段數(shù),該選項默認值仍為128。
〇 innodb_undo_logs:
該選項在5.6中作為innodb_rollback_segments的替代或者別名所引入。在InnoDB中術(shù)語有一點兒混亂,‘Undo Logs’存儲在回滾段中,這是UNDO表空間的文件段。在8.0.2版本,我們打算棄用該選項改用Innodb_rollback_segments選項。在最新的發(fā)布的5.7.19版本中將增加這個不建議使用的warnings提示。
〇 UNDO表空間命名和位置:
UNDO表空間位于innodb_undo_directory所指定的目錄中。如果該選項沒有被使用,則放在‘datadir’中。以前,他們被命名為‘undo001’, ‘undo002’。在8.0.2 DMR版本,他們被稱作‘undo_001’, ‘undo_002’等。改名的原因是在新的UNDO表空間中包含了一個新的頭頁面,其映射了每一個回滾段的位置。而在5.6版本中,當使用獨立UNDO表空間時,其回滾段頭頁面號由系統(tǒng)表空間所跟蹤,并且限制整個實例的回滾段數(shù)為128。
由于每個UNDO表空間可以使用這個新頁來跟蹤自己的回滾段,這些是真正新的UNDO表空間類型,并需要有不同的命名約定。這也是innodb_rollback_segments現(xiàn)在定義每個UNDO表空間回滾段數(shù)量而不是整個MySQL實例數(shù)量的原因。
〇 自動升級:
在此更變之前,系統(tǒng)表空間會跟蹤所有回滾段,無論他們位于系統(tǒng)表空間還是UNDO表空間。如果現(xiàn)在在一個使用系統(tǒng)表空間跟蹤回滾段的已經(jīng)存在了的數(shù)據(jù)庫上啟動MySQL 8.0.2,將自動生成至少兩個新的UNDO表空間。這將是很正常的,因為innodb_undo_tablespaces之前的默認值為0。MySQL 5.7數(shù)據(jù)庫將直接通過升級進程,其中包括從舊的FRM文件創(chuàng)建新的DD。作為此進程的一部分,還將創(chuàng)建至少兩個新的UNDO表空間。已經(jīng)存在于系統(tǒng)表空間中的回滾段和UNDO表空間,如果尚有未清除的undo log,則它們?nèi)匀粫籌nnoDB識別并使用。但是InnoDB不會將這些老的回滾段分配給任何新的事務。所以一旦UNDO恢復完成,并不再需要這些UNDO日志,舊的UNDO表空間也將被刪除。
〇 更多好處:
此新特性允許你在數(shù)據(jù)庫規(guī)模增長時,動態(tài)地添加更多的UNDO表空間和回滾段。使用更多的UNDO表空間,可以更輕松地通過UNDO表空間清除來減少用于存放回滾段的磁盤空間消耗。此外,更多的回滾段意味著并發(fā)事務可盡可能的使用單獨的回滾段,以減少相同資源的爭用。
Thanks for using MySQL!
p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; line-height: 19.0px; font: 13.0px 'Helvetica Neue'}

作者微信公眾號(持續(xù)更新)
MySQL 8.0.2 新特性 UNDO表空間管理的靈活性提升

我們提供的服務有:網(wǎng)站建設、成都網(wǎng)站制作、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認證、曲阜ssl等。為1000+企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務,是有科學管理、有技術(shù)的曲阜網(wǎng)站制作公司

網(wǎng)頁標題:MySQL8.0.2新特性UNDO表空間管理的靈活性提升-創(chuàng)新互聯(lián)
分享地址:http://bm7419.com/article24/disdje.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、外貿(mào)網(wǎng)站建設、關(guān)鍵詞優(yōu)化企業(yè)網(wǎng)站制作、微信小程序網(wǎng)站設計公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設