Confulence 提示InnoDB日志文件大小太小的警告,修改 innodb_log_file_size
Linux: Centos7.9


1.systemctl stop mariadb
2.轉移logfile,(先轉移到別的目錄下備份,等后面重啟mysql會自己重新生成)
cd /var/lib/mysql
mv ib_logfile* /mnt/backup_mysql
mv aria_log* /mnt/backup_mysql
3.vim /etc/my.cnf 增加 innodb_log_file_size=512M
4.systemctl restart mariadb
5.登錄web檢查
參考資料
1.了解innodb_log_file_size參數(本段引自博文:https://blog.csdn.net/kai404/article/details/80242262)
??MySQL的InnoDB 存儲引擎使用一個指定大小的Redo log空間(一個環形的數據結構),Redo log的空間通過innodb_log_file_size和innodb_log_files_in_group(默認為2)參數來調節。將這倆參數相乘即可得到總的可用Redo log 空間。盡管技術上并不關心你是通過innodb_log_file_size還是innodb_log_files_in_group來調整Redo log空間,不過多數情況下還是通過innodb_log_file_size 來調節。
??為InnoDB引擎設置合適的Redo log空間對于寫敏感的工作負載來說是非常重要的,然而,這項工作是要做出權衡的。配置的Redo空間越大,InnoDB就能更好的優化寫操作;然而,增大Redo空間也意味著更長的恢復時間當出現崩潰或掉電等意外時。
??關于恢復時間,并不好預測對于一個指定的 innodb_log_file_size 值出現崩潰是需要多長的恢復時間–他取決于硬件能力、MySQL版本以及工作負載等因素。然而,一般情況下我們可以按照每1GB的Redo log的恢復時間大約在5分鐘左右來估算。如果恢復時間對于你的使用環境來說很重要,我建議你做一些模擬測試,在正常工作負載下(預熱完畢后)模擬系統崩潰,來評估更準確的恢復時間。
??雖然恢復時間可以作為一個限制innodb_log_file_size的參考因素,也還有一些別的方式可以觀察該參數設置是否“合理”。
2.修改innodb_log_file_size參數
??MySQL變量分為全局系統變量和會話系統變量(全局系統變量影響服務器的全局操作,會話變量只影響具體客戶端連接相關操作),innodb_log_file_size是全局系統變量,SET GLOBAL var_name語句可以動態更改部分全局變量的值,動態修改的參數在MySQL服務重啟后會失效,只有寫入配置文件才能夠重啟后仍有效。對于一些無法動態修改的參數,只能通過修改配置文件,然后重啟來使之生效,比如innodb_log_file_size。
??這里為了跟項目對應的uat和生產環境innodb_log_file_size參數值一致,這里設置為1500M。
--修改前 mysql:[(none)] 15:56:32> show variables like 'innodb_log_file_size'; +----------------------+----------+ | Variable_name | Value | +----------------------+----------+ | innodb_log_file_size | 50331648 | +----------------------+----------+ 1 row in set (0.00 sec) mysql:[(none)] 15:56:32> select 50331648/1024/1024; +--------------------+ | 50331648/1024/1024 | +--------------------+ | 48.00000000 | +--------------------+ 1 row in set (0.00 sec) --開始修改 [root@chengyu ~]# /etc/init.d/mysql stop [root@chengyu ~]# mv /home/mysql/data/ib_logfile* /home/ [root@chengyu ~]# vim /etc/my.cnf innodb_log_file_size=1500M [root@chengyu ~]# /etc/init.d/mysql start --修改后 mysql:[(none)] 15:56:32> show variables like 'innodb_log_file_size'; +----------------------+------------+ | Variable_name | Value | +----------------------+------------+ | innodb_log_file_size | 1572864000 | +----------------------+------------+ 1 row in set (0.00 sec) mysql:[(none)] 15:56:32> select 1572864000/1024/1024; +----------------------+ | 1572864000/1024/1024 | +----------------------+ | 1500.00000000 | +----------------------+ 1 row in set (0.00 sec)
測試環境innodb_log_file_size參數值修改完畢
本文來自希曼博客-www.ximan.tech,作者:希曼博客,轉載請注明原文鏈接:http://www.rzrgm.cn/lihuaichen/p/15244245.html



浙公網安備 33010602011771號