筆者在 SQL Server 與 Oracle DB 都有一個 Daily Check Scripts 來讓筆者在上班開始的時候作一些自主檢查,並且產出報告,這個對於管理多台機器較為方便。
在 SQL Server 上筆者採用這個 Scripts, Oracle DB 的部份採用這個,十分方便,很多東西都能顯示,大部分的問題都能夠馬上發現。
到了 MariaDB 希望能夠 Porting 這個來方便管理。
接下來幾天針對這個 Porting 來說明過程
在作這個 Porting 之前,筆者先到 Google 找有沒有人有不錯的類似 Solution,大部分都是走 Shell Scripts,因為在 Windows 上用 PowerShell 比較方便,就決定用 PowerShell 來兜 Solution 了。
大致上的架構是這樣
Uptime 部份,從 information_schema.GLOBAL_STATUS
可以得到資料,接下來整理一下,化成需要的輸出。
SELECT CONCAT(CASE WHEN CAST(VARIABLE_VALUE as unsigned integer) < @UptimeCritical * 60 THEN '<span class="Critical">'
WHEN CAST(VARIABLE_VALUE as unsigned integer) < @UptimeWarning * 60 THEN '<span class="Warning">'
ELSE '<span class="Healthy">' END,
FLOOR(HOUR(SEC_TO_TIME(VARIABLE_VALUE)) / 24), ' day(s), ',
MOD(HOUR(SEC_TO_TIME(VARIABLE_VALUE)), 24), ' hour(s), ',
MINUTE(SEC_TO_TIME(VARIABLE_VALUE)), ' minute(s)</span>')
from information_schema.GLOBAL_STATUS where VARIABLE_NAME='UPTIME';
Version 部份,從系統參數就能知道了。
SELECT @@version from dual;