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,作者:希曼部落格,轉載請註明原文連結:https://www.cnblogs.com/lihuaichen/p/15244245.html