對於資料庫運維人員來說,想要保證資料庫在高效平穩的執行就有點像雜技演員在轉盤子,需要靈活、專注、能快速做出反應、並且擁有冷靜的頭腦。資料庫幾乎是所有能夠成功執行系統的核心。而資料庫運維人員對組織的資料負責,能找到可依靠的工具來更加高效的管理資料庫,並且輕鬆的維護日常的工作就變得格外重要。資料庫運維人員因此需要更好的工具來使得他們的系統平穩執行。那什麼工具才是對 MySQL 管理者來說是經過測試並且值得相信的呢?這裡推薦 5 款開源工具是如何應用的。

Mycli
其只要的特徵如下,

提供了程式碼補全,語法高亮等功能
自動透過輸入第一個字元檢索表名或欄位名
透過命令列模式

其中,命令列模式的好處在於,在有著遠端操作或者雙重認證等安全限制的環境中,不受制約,而影象化的工具未必好用。

Gh-ost
大多數的資料庫運維人員都很擔心改變 MySQL 的大表表結構會影響業務,gh-ost 的設計號稱無觸發器,可監控,可動態調整暫停等,更重要的是切換方案的優秀設計。
通常業內的處理方式無外乎三種,一是利用 Percona 的 pt-online-schema-change,Facebook 的 OSC 等三方工具, 二是在備庫修改透過切換實現滾動變更,三則是升級 MySQL 到 5.6/5.7 透過官方 Online DDL 實現部分變更。然而, 引入觸發器帶來的鎖競爭問題, 主備切換帶來的附加成本以及 Online DDL 的侷限性都不讓 DBA 省心。
那麼 gh-ost 是怎麼工作的呢?官方架構圖如下:

其有兩種工作方式如下:
1. 連線主庫直接修改

·直連主庫
·主庫上建立 ghost 表
·新表 (ghost 表) 上直接 alter 修改表結構
·遷移原表資料到新表
·拉取解析 binlog 事件, 應用到新表
·cut-over 階段, 用新表替換掉原表

2. 連線從庫間接應用到主庫

連線從庫
校驗完後, 在主庫建立新表
遷移原表資料到新表
模擬從庫的從庫, 拉取解析增量 binlog 應用到主庫
cut-over 階段, 用新表替換掉原表

兩者不同的點就在於, 透過連線從庫來進行變更, 對主庫的效能影響最小。
PhpMyAdmin
資歷最老並且最成熟的 WEB 版 MySQL 工具。允許資料庫運維人員透過瀏覽器對資料表進行操作。而且具有豐富的格式來展示資料。

能夠動態地將問題、連線數/程式、流量繪製成圖形。並且檢測當效能下降時自動提供解決建議的功能。

Sqlcheck
在 MySQL 的反模式中,有興趣的同學可以看下相關資料(SQL anti-patterns)。

SqlCheck 能將夠定位的問題分為 3 類,高風險,中風險,低風險。這個能幫助列出哪些是最影響你效率的問題。你所要做的就是將檔名稱當作引數輸入到工具中,如下圖

Orchestrator
orchestrator 是一款非常實用的資料複製管理工具。它能夠透過抓取資料庫主從關係來生成拓撲圖。並且可以透過拖拉拽的方式來重構你的資料庫關係。這些操作非常安全,不會因為非法操作來損壞你的資料庫。
最後,orchestrator 能夠恢復當其中的節點發生故障,它應用了狀態的概念來正確的恢復並且在適當的時候與主庫進行連線。