最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL Undo Log 配置及參數(shù)優(yōu)化與操作手冊詳解

 更新時間:2026年02月11日 09:28:10   作者:·云揚·  
不合理的 Undo Log配置會導致磁盤空間溢出、并發(fā)性能下降、數(shù)據(jù)泄露等問題,本文基于MySQL 8.0+ 版本,詳解Undo Log關(guān)鍵配置參數(shù)、優(yōu)化方案與實操步驟,感興趣的朋友跟隨小編一起看看吧

InnoDB 的 Undo Log(回滾日志)是事務 ACID 特性的核心支撐,主要負責兩件事:

  • 事務回滾:記錄數(shù)據(jù)修改前的原始狀態(tài),事務異常時可恢復數(shù)據(jù);
  • MVCC(多版本并發(fā)控制):為讀操作提供一致性快照,實現(xiàn)非鎖定讀。

不合理的 Undo Log 配置會導致磁盤空間溢出、并發(fā)性能下降、數(shù)據(jù)泄露等問題。本文基于 MySQL 8.0+ 版本,詳解 Undo Log 關(guān)鍵配置參數(shù)、優(yōu)化方案與實操步驟。

一、核心配置參數(shù)詳解(附優(yōu)化建議)

參數(shù)名稱作用說明默認值推薦配置注意事項
innodb_undo_directory指定 Undo 表空間存儲目錄數(shù)據(jù)目錄(如 /data/mysql/data/)獨立 SSD 目錄(如 /data/mysql/undo/)獨立存儲可提升 IO 性能,避免與數(shù)據(jù)文件競爭資源
innodb_rollback_segments回滾段數(shù)量(單個回滾段支持多事務)128保持默認(高并發(fā)場景可維持)MySQL 8.0.2 前參數(shù)名為 innodb_undo_logs,范圍 1-128
innodb_undo_log_encrypt加密 Undo Log 防止數(shù)據(jù)泄露OFF核心業(yè)務設(shè)為 ON需配合 MySQL 密鑰環(huán)插件,確保密鑰安全
innodb_max_undo_log_size單個 Undo 表空間最大閾值(超閾值觸發(fā)截斷)1G(1073741824 字節(jié))2G~4G(2147483648 字節(jié))需根據(jù)磁盤空間和事務量調(diào)整,避免頻繁截斷
innodb_undo_log_truncate自動截斷過大的 Undo 表空間ON(MySQL 8.0+)保持開啟僅對獨立 Undo 表空間生效,系統(tǒng)表空間不支持
innodb_purge_threadsPurge 線程數(shù)(清理無用 Undo Log)4高并發(fā)場景設(shè) 8~16建議不超過 CPU 核心數(shù)的 1/2,避免資源競爭
innodb_purge_rseg_truncate_frequency每 N 次 Purge 檢查回滾段釋放12810~50平衡清理頻率與 CPU 開銷,值越低截斷越及時

二、優(yōu)化配置實操步驟(生產(chǎn)環(huán)境適用)

1. 配置文件修改

編輯 MySQL 配置文件 my.cnf(路徑通常為 /data/mysql/conf/my.cnf),添加以下優(yōu)化配置:

[mysqld]
# Undo Log 獨立存儲目錄(需提前創(chuàng)建)
innodb_undo_directory = /data/mysql/undo/
# 回滾段數(shù)量(保持默認足夠支持高并發(fā))
innodb_rollback_segments = 128
# 開啟 Undo Log 加密(核心業(yè)務必開)
innodb_undo_log_encrypt = on
# 啟用keyring_file插件
early-plugin-load = keyring_file.so
# 指定密鑰文件路徑
keyring_file_data = /data/mysql/keyring/keyring
# 單個 Undo 表空間最大 2G
innodb_max_undo_log_size = 2147483648
# 啟用自動截斷
innodb_undo_log_truncate = on
# 提升 Purge 清理效率(8線程)
innodb_purge_threads = 8
# 每 20 次 Purge 檢查回滾段釋放
innodb_purge_rseg_truncate_frequency = 20

2. 目錄創(chuàng)建與權(quán)限配置

# 創(chuàng)建獨立 Undo 目錄和密鑰環(huán)目錄
mkdir -p /data/mysql/undo/
mkdir -p /data/mysql/keyring/
# 授權(quán) MySQL 用戶(避免權(quán)限不足)
chown -R mysql.mysql /data/mysql/undo/
chmod 700 /data/mysql/undo/
chown -R mysql.mysql /data/mysql/keyring/
chmod 700 /data/mysql/keyring/
# 重啟 MySQL 使配置生效
/etc/init.d/mysql.server restart

【常見問題解決】若 MySQL 啟動報 “ERROR! The server quit without updating PID file” 且日志顯 “Invalid Filename”:,可進行如下操作:

# 創(chuàng)建臨時目錄
mkdir -p /data/tmp
# 將舊undo log文件移動到臨時目錄
mv /data/mysql/data/undo_00* /data/tmp/
# 重啟mysql
/etc/init.d/mysql.server restart

3. 驗證配置效果

-- 查看 Undo 表空間列表與存儲路徑
select tablespace_name, file_name, engine 
from information_schema.files 
where file_type = 'UNDO LOG';
-- 查看 Undo 表空間大?。▎挝唬篗B)
select 
  tablespace_name,
  round((EXTENT_SIZE * TOTAL_EXTENTS) / 1024 / 1024, 2) as total_size_mb
from information_schema.files 
where file_type = 'UNDO LOG';

三、進階操作:手動管理 Undo 表空間

1. 手動創(chuàng)建 Undo 表空間(MySQL 8.0.14+)

當默認表空間不足時,可新增額外表空間:

-- 創(chuàng)建名為 tmp_undo_001 的 Undo 表空間
create undo tablespace tmp_undo_001 add datafile 'tmp_undo_001.ibu';
-- 驗證新增表空間
select tablespace_name from information_schema.files where file_type = 'UNDO LOG';

2. 安全刪除 Undo 表空間

-- 1. 設(shè)為 inactive 狀態(tài)(停止寫入新日志)
alter undo tablespace tmp_undo_001 set inactive;
-- 2. 等待 Purge 線程清理表空間內(nèi)無用日志(可通過查詢大小確認)
-- 3. 確認無數(shù)據(jù)后刪除表空間
drop undo tablespace tmp_undo_001;

四、關(guān)鍵注意事項

  • 加密配置:開啟 innodb_undo_log_encrypt = ON 后,需部署 MySQL 密鑰環(huán)插件(如 keyring_file),避免密鑰丟失導致數(shù)據(jù)無法訪問;
  • 截斷機制innodb_undo_log_truncate 僅對獨立 Undo 表空間生效,系統(tǒng)表空間(ibdata1)中的 Undo Log 無法自動截斷;
  • 并發(fā)優(yōu)化innodb_purge_threads 建議根據(jù) CPU 核心數(shù)調(diào)整,高并發(fā)場景設(shè)為 8~16,避免線程過多導致上下文切換開銷;
  • 監(jiān)控建議:定期檢查 Undo 表空間大小,避免因事務過長導致表空間溢出,可通過 information_schema.files 表監(jiān)控。

總結(jié)

Undo Log 的配置核心是 “平衡性能與空間”:通過獨立存儲提升 IO 效率,合理設(shè)置回滾段與 Purge 線程優(yōu)化并發(fā),開啟加密保障數(shù)據(jù)安全。建議根據(jù)業(yè)務場景(如并發(fā)量、事務長度)調(diào)整參數(shù),并定期監(jiān)控表空間狀態(tài),確保 InnoDB 事務系統(tǒng)穩(wěn)定運行。

延伸閱讀:

  • 【MySQL】Undo Log 清理機制(Purge):原理、判斷與優(yōu)化實戰(zhàn)
  • 【MySQL】Undo Log 深度解析:事務回滾與 MVCC 的底層支柱

到此這篇關(guān)于MySQL Undo Log 配置及參數(shù)優(yōu)化與操作手冊詳解的文章就介紹到這了,更多相關(guān)MySQL Undo Log 配置內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SQL去重方法匯總

    SQL去重方法匯總

    這篇文章主要給大家分享了SQL去重方法匯總,在使用SQL提數(shù)的時候,常會遇到表內(nèi)有重復值的時候,比如我們想得到?uv?(獨立訪客),就需要做去重。下面我們就來看看去重都有哪些方法吧
    2022-01-01
  • MYSQL使用Union將兩張表的數(shù)據(jù)合并顯示

    MYSQL使用Union將兩張表的數(shù)據(jù)合并顯示

    使用union操作符會將多張表中相同的數(shù)據(jù)取值一次,如果想將表1和表2中的值完整的顯示出來,可以使用union all,今天通過本文給大家分享MYSQL使用Union將兩張表的數(shù)據(jù)合并顯示功能,需要的朋友參考下吧
    2021-08-08
  • mysql中workbench實例詳解

    mysql中workbench實例詳解

    在本篇文章里小編給大家分享了關(guān)于mysql中workbench實例內(nèi)容,有興趣的朋友們學習下。
    2019-01-01
  • 在MySQL中創(chuàng)建聚集索引的操作方法

    在MySQL中創(chuàng)建聚集索引的操作方法

    在數(shù)據(jù)庫性能優(yōu)化中,索引是一個重要的工具,在MySQL中,聚集索引(Clustered Index)是一種特殊的索引,它將表中的記錄按照索引順序存儲,本文我們將詳述MySQL中聚集索引的基礎(chǔ)理論、規(guī)則以及相關(guān)操作方法,需要的朋友可以參考下
    2025-09-09
  • 在MySQL中同時查找兩張表中的數(shù)據(jù)的示例

    在MySQL中同時查找兩張表中的數(shù)據(jù)的示例

    這篇文章主要介紹了在MySQL中同時查找兩張表中的數(shù)據(jù)的示例,即一次查詢操作返回兩張表的結(jié)果,需要的朋友可以參考下
    2015-07-07
  • MySQL死鎖使用詳解及檢測和避免方法

    MySQL死鎖使用詳解及檢測和避免方法

    這篇文章主要介紹了MySQL死鎖使用詳解及檢測和避免方法,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-07-07
  • mysql中的sql_mode模式實例詳解

    mysql中的sql_mode模式實例詳解

    這篇文章主要介紹了mysql中的sql_mode模式,結(jié)合實例形式詳細分析了mysql sql_mode模式相關(guān)原理、用法及操作注意事項,需要的朋友可以參考下
    2020-01-01
  • 使用Dify訪問mysql數(shù)據(jù)庫詳細代碼示例

    使用Dify訪問mysql數(shù)據(jù)庫詳細代碼示例

    這篇文章主要介紹了使用Dify訪問mysql數(shù)據(jù)庫的相關(guān)資料,并詳細講解了如何在本地搭建數(shù)據(jù)庫訪問服務,使用ngrok暴露到公網(wǎng),并創(chuàng)建知識庫、數(shù)據(jù)庫訪問工作流和智能體,需要的朋友可以參考下
    2025-03-03
  • MySQL?InnoDB?存儲引擎的底層邏輯架構(gòu)

    MySQL?InnoDB?存儲引擎的底層邏輯架構(gòu)

    這篇文章主要為大家介紹了MySQL?InnoDB?存儲引擎的底層邏輯架構(gòu)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-09-09
  • mysql利用mysqlbinlog命令恢復誤刪除數(shù)據(jù)的實現(xiàn)

    mysql利用mysqlbinlog命令恢復誤刪除數(shù)據(jù)的實現(xiàn)

    這篇文章主要介紹了mysql利用mysqlbinlog命令恢復誤刪除數(shù)據(jù)的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-03-03

最新評論

连江县| 郓城县| 芦溪县| 彭山县| 蒲江县| 长治市| 广河县| 阳江市| 乌苏市| 淮南市| 类乌齐县| 衡南县| 抚宁县| 苍南县| 日土县| 离岛区| 临沭县| 西安市| 孟村| 上栗县| 浦东新区| 儋州市| 郴州市| 柘荣县| 枣庄市| 呼伦贝尔市| 鄯善县| 崇信县| 太康县| 平定县| 德江县| 逊克县| 鸡西市| 盈江县| 临朐县| 中宁县| 韶关市| 桐乡市| 罗甸县| 和顺县| 久治县|