1. 程式人生 > >CentOS 7下MySQL5.7.23的服務配置引數測試

CentOS 7下MySQL5.7.23的服務配置引數測試

CentOS 7預設安裝MySQL5.7.23,服務管理髮生了變化,從sysvinit(service mysql start)變化為systemd(systemctl start mysqld.service)

最近測試了下MySQL5.7.23的服務管理引數,測試主要涉及Restart ,RestartPreventExitStatus,RestartSec,StartLimitInterval四個服務啟動引數。

【服務啟動方式比較】

1、CentOS7下MySQL5.7.23預設引數下的服務啟動方式

MySQL crash、OOM、kill -9 pid三種情況下mysqld程序被終止,都會馬上重新啟動,間隔100ms

systemctl stop [email protected]不會自動重啟

2、CentOS6下MySQL5.6.21的服務啟動情況

MySQL crash、OOM crash和oom kill的是mysqld程序,由於存在mysqld_safe的守護程序,會自動重啟mysqld

對於kill -9的命令,如果只kill -9 mysqld程序,mysqld_safe守護程序會重啟mysqld,如果mysqld_safe也被kill掉,那麼mysqld就不會被拉起來

service mysql stop 不會自動重啟

【在CentOS 7下如何實現kill -9 mysqld

後不自動重啟】

RestartPreventExitStatus= 中列出的退出碼或訊號永遠不會導致該服務被重啟

修改RestartPreventExitStatus=1 SIGKILL,增加kill -9對應的訊號SIGKILL

 測試kill -9,mysqld程序不會自動重啟

測試OOM,mysqld程序也不會自動重啟

原因是由於OOM在kill程序時傳的也是SIGKILL的訊號

【需要關注的服務配置的兩個引數】

1、RestartSec設定在重啟服務(Restart)前暫停多長時間,預設值是100ms,就是mysqld程序OOM或kill後等待100ms就會馬上重啟

我們MHA中配置的ping_interval=10,意思是MHA Manager每10秒 ping一次master,嘗試3次失敗後,進行failover

這個引數需要評估下,是否做設定,比如如果希望發生上面異常,能被MHA檢測到,那麼最保險的是間隔30秒再重啟mysql程序,需要指定RestartSec=30

2、StartLimitInterval

設定單元的啟動頻率限制。 預設一個單元在10秒內最多允許啟動5次。建議修改為StartLimitInterval=0,無限制重啟。