MySQL 9.0 版本注意事項
核心檔案會記錄執行中處理程序的狀態和記憶體映像。因為緩衝池位於主記憶體中,並且執行中處理程序的記憶體映像會傾印到核心檔案中,因此當 mysqld 處理程序終止時,具有大型緩衝池的系統可能會產生大型核心檔案。
大型核心檔案可能會因為許多原因而產生問題,包括寫入這些檔案所需的時間、它們消耗的磁碟空間,以及與傳輸大型檔案相關的挑戰。
如果您擔心將資料庫頁面傾印到核心檔案,這些檔案可能會在您的組織內部或外部共享以進行偵錯,那麼從安全角度來看,排除緩衝池頁面也是可取的。
注意
在某些偵錯情境中,存取 mysqld 處理程序終止時緩衝池頁面中存在的資料可能會有益。如果您不確定是否要包含或排除緩衝池頁面,請諮詢 MySQL 支援。
只有在啟用 core_file
變數,並且作業系統支援 MADV_DONTDUMP
非 POSIX 擴充功能至 madvise() 系統呼叫時,innodb_buffer_pool_in_core_file
選項才相關,Linux 3.4 和更新版本中支援該擴充功能。MADV_DONTDUMP
擴充功能會導致指定的範圍內的頁面從核心傾印中排除。在支援 MADV_DONTDUMP 的系統上,預設會停用 innodb_buffer_pool_in_core_file
選項,否則預設為 ON。
若要產生包含緩衝池頁面的核心檔案,請使用 --core-file
和 --innodb-buffer-pool-in-core-file=ON
選項啟動伺服器。
$> mysqld --core-file --innodb-buffer-pool-in-core-file=ON
mysql> SET GLOBAL innodb_buffer_pool_in_core_file=OFF;
表格 17.4 核心檔案組態情境
core_file 變數 |
innodb_buffer_pool_in_core_file 變數 |
madvise() MADV_DONTDUMP 支援 | 結果 |
---|---|---|---|
關閉 (預設) | 與結果無關 | 與結果無關 | 不產生核心檔案 |
開啟 | 開啟 (在沒有 MADV_DONTDUMP 支援的系統上預設) |
與結果無關 | 產生包含緩衝池頁面的核心檔案 |
開啟 | 關閉 (在具有 MADV_DONTDUMP 支援的系統上預設) |
是 | 產生不包含緩衝池頁面的核心檔案 |
開啟 | 關閉 | 否 | 不產生核心檔案,core_file 被停用,並且將警告寫入伺服器錯誤日誌 |
表格 17.5 包含和排除緩衝池頁面的核心檔案大小
innodb_page_size 設定 |
包含緩衝池頁面 (innodb_buffer_pool_in_core_file=ON ) |
排除緩衝池頁面 (innodb_buffer_pool_in_core_file=OFF ) |
---|---|---|
4KB | 2.1GB | 0.9GB |
64KB | 1.7GB | 0.7GB |