Mysql
MariaDB:如何減小 ibdata 文件大小
我發現 My MariaDB 的 ibdata 文件不斷增加。所以,我搜尋了這個,發現
innodb_file_per_table
應該設置為 1。但是,我的 DBMS 的配置已經設置為 1;為什麼 ibdata 文件大小不斷增加,我還應該為此做些什麼。
以下是我的 dbms 資訊。
DBMS: MariaDB engine: InnoDB Engine version: 10.3 ** my.cnf ** innodb_file_per_table=ON transaction-isolation=READ-COMMITTED
想到的第一個想法是“哇!您一定有相當大的交易。”
根據mysqlperformanceblog.com 的 Reasons for run-away main Innodb Tablespace,這些是導致 ibdata1 增長的主要問題:
- 大量事務性更改
- 非常長的交易
- 滯後清除執行緒
ibdata1 中的撤消日誌將保存大量資訊以支持事務隔離級別。由於您正在使用
READ-COMMITTED
,因此這種增長可能會更加顯著。我之前在 DBA StackExchange 中討論過這個
Aug 21, 2015
: MySQL 的事務性 DDL 工作流Jun 16, 2014
:表上的 MySQL 索引創建失敗已滿Apr 23, 2013
:即使設置了 innodb_file_per_table,Innodb ibdata1 文件如何增長 5 倍?- …等等
建議 #1
由於您使用的是 MariaDB,請考慮在系統表空間之外配置撤消日誌。請閱讀innodb_undo_directory和innodb_undo_tablespaces上的 MariaDB 文件,然後從那裡開始。
建議 #2
您可能需要 mysqldump 是您的數據並將其載入到新安裝的 MariaDB 中。請參閱我在如何在不轉儲所有數據庫的情況下縮小 innodb 文件 ibdata1 中的文章?其他想法。無論哪種方式,這都需要一些工作!