這五大開源MySQL管理工具,將DBA從 “刪庫跑路”中解救出來!
以下這些優(yōu)秀工具可以改善 MySQL 環(huán)境中的 CLI 和 Web 管理,SQL 查詢,模式遷移以及復(fù)制和恢復(fù)。(順附 Github 地址,Star 數(shù)量和提交數(shù)量供廣大 DBA 參考
1、Mycli
Mycli 項(xiàng)目提供 MySQL 命令行自動(dòng)完成和語法高亮顯示,它是最流行的 MySQL 管理工具之一。
諸如跳轉(zhuǎn)主機(jī)和雙因素認(rèn)證之類的安全限制使許多 MySQL DBA 只能通過命令行訪問系統(tǒng)。在這種情況下,心愛的 GUI 工具(如 MySQL Workbench,Monyog 等)不是合適的選擇。
使用命令行的過程中,大部分時(shí)間都花在了黑色的終端世界。Mycli 最好的一點(diǎn)就是語法突出的豐富性。例如,它允許 DBA 在 WHERE 子句中將查詢字符串中的函數(shù)和運(yùn)算符在視覺上分離出來。對于簡短的單行查詢來說,這可能不是什么大不了的事情,但是當(dāng)使用多表執(zhí)行 JOIN 操作查詢時(shí),這就變成了巨大優(yōu)勢。
Mycli 支持多行查詢和語法突出顯示,這意味著可以在查看或優(yōu)化查詢時(shí)最重要的部分,可以選擇多種語法高亮配色方案或創(chuàng)建自己的配色方案。
Mycli 的另一個(gè)明星功能是智能完成,允許通過輸入前幾個(gè)字符來從上下文相關(guān)列表中選擇表名和列名。不需要因?yàn)橥?WHERE 子句中列的名稱而放棄當(dāng)前輸入運(yùn)行 SHOW CREATE TABLE。
在 Mycli 中的智能完成
使用 Mmycli,用戶可以使用s 等來查詢,例如 fs myAlias myQuery。 這非常方便,只要需要,就可以使用 f myAlias 執(zhí)行查詢。
Mycli 項(xiàng)目使用 BSD 3 許可證,項(xiàng)目目前有 44 個(gè)貢獻(xiàn)者,1.2k 提交和 5k Star(地址:https://github.com/dbcli/mycli)。
2、Gh-ost
99%的 MySQL 數(shù)據(jù)庫管理員(DBA)在執(zhí)行對 MySQL 表的更改時(shí)擔(dān)心會(huì)影響生產(chǎn),可以考慮 Gh-ost(GitHub Online Schema Migration)。Gh-ost 提供 MySQL 模式更改,不會(huì)阻塞寫入,不使用觸發(fā)器,并且可以暫停和恢復(fù)遷移!
為什么這個(gè)如此重要?由于 MySQL 5.6 提供了新的 ALTER TABLE ... ALGORITHM = INPLACE DDL(數(shù)據(jù)定義語言)功能,因此有可能修改一個(gè)表而不阻塞寫操作,例如添加索引(B-tree)等常用操作。但是,在寫入(DML 語句)被阻塞的情況下,最顯著的是增加了 FULLTEXT 索引,表空間的加密以及列類型轉(zhuǎn)換。
其他流行的在線模式更改工具(如 Percona 的 pt-online-schema-change)通過在主服務(wù)器上實(shí)現(xiàn)一組三個(gè)觸發(fā)器(INSERT,UPDATE 和 DELETE)來保持 shadow 副本表與變化同步。這會(huì)由于寫入放大而導(dǎo)致較小的性能損失,但更重要的是需要七個(gè)元數(shù)據(jù)鎖定實(shí)例。這些有效地阻止了 DML(數(shù)據(jù)操縱語言)事件。
由于 Gh-ost 使用二進(jìn)制日志進(jìn)行操作,因此不會(huì)受到基于觸發(fā)器的缺點(diǎn)影響。最后,如果服務(wù)器出問題,可以暫停模式遷移一段時(shí)間,并在恢復(fù)后繼續(xù)。
那么 Gh-ost 如何工作呢?默認(rèn)情況下,Gh-ost 連接到副本(從),標(biāo)識主節(jié)點(diǎn),并在主節(jié)點(diǎn)上進(jìn)行應(yīng)用遷移。它將副本上的更改接收到 binlog_format = ROW 的源表中,解析日志并將這些語句轉(zhuǎn)換為在主 shadow 表上重新執(zhí)行。它跟蹤副本上的行數(shù),并確定何時(shí)執(zhí)行原子切換(切換表)。
Gh-ost 操作模式
Gh-ost 提供了一種替代模式,可以直接在主服務(wù)器(不管是否有從服務(wù)器)上執(zhí)行遷移,讀取主服務(wù)器的 binlog_format = ROW 事件,然后將其重新應(yīng)用到 shadow 表中。
最后一個(gè)選項(xiàng)可用于僅在副本上運(yùn)行遷移,而不會(huì)影響主服務(wù)器,因此可以測試或以其他方式驗(yàn)證遷移。
Gh-ost 一般流程
請注意,如果模式具有外鍵,那么 Gh-ost 可能無法運(yùn)行,因?yàn)榇伺渲貌皇苤С帧ak-online-alter-table 是 Gh-ost 的前身,DBA 可以閱讀 Percona 首席執(zhí)行官 Peter Zaitsev 以及 OAK 工具包和 Gh-ost 的作者和維護(hù)人員 Shlomi Noach 的回應(yīng),比較 Gh-ost 和 pt-online-schema-change 的性能。
Gh-ost 項(xiàng)目使用 MIT 許可證,該項(xiàng)目目前有 29 個(gè)貢獻(xiàn)者,近 1k 的提交和 3k Star。(Github 地址:https://github.com/github/gh-ost)
3、PhpMyAdmin
MySQL 工具中運(yùn)行時(shí)間最長,最成熟的項(xiàng)目之一是用于通過 Web 管理 MySQL 的古老 PhpMyAdmin 工具。phpMyAdmin 允許 DBA 瀏覽和修改 MySQL 數(shù)據(jù)庫對象:數(shù)據(jù)庫,表,視圖,字段和索引。有多種選項(xiàng)可使用十幾種格式執(zhí)行數(shù)據(jù)導(dǎo)出,修改 MySQL 用戶和權(quán)限,以及執(zhí)行臨時(shí)查詢。
PhpMyAdmin 狀態(tài)頁面顯示問題,連接 / 流程和流量圖
可以找到一個(gè) “狀態(tài)” 選項(xiàng)卡,動(dòng)態(tài)繪制給定數(shù)據(jù)庫實(shí)例問題,連接 / 進(jìn)程和網(wǎng)絡(luò)流量以及 “Advisor ” 選項(xiàng)卡,顯示可能的性能問題列表以及如何修復(fù)的建議。
PhpMyAdmin 開始屏幕
PhpMyAdmin 使用 GPLv2 許可證,這是一個(gè)超過 800 個(gè)貢獻(xiàn)者的項(xiàng)目,112k 提交和 2.7k Star。在線演示可在 https://demo.phpmyadmin.net/master-config / 上找到。(Github 地址:https://github.com/phpmyadmin/phpmyadmin)
4、Sqlcheck
SQL 反模式可能會(huì)降低查詢速度,但通常需要經(jīng)驗(yàn)豐富的 DBA 和開發(fā)人員仔細(xì)研究代碼來識別和解決這些問題。Sqlcheck 反映了 Karwin 確定的四類反模式:
- Logical database design
- Physical database design
- Query
- Application development
工作中的 Sqlcheck
Sqlcheck 可以針對不同的風(fēng)險(xiǎn)分為低風(fēng)險(xiǎn),中風(fēng)險(xiǎn)或高風(fēng)險(xiǎn)三大級別。如果反模式列表很大,這會(huì)很有幫助,因?yàn)榭梢詢?yōu)先考慮對性能影響最大的查詢。要做的是收集一個(gè)不同的查詢列表到文件,然后將它們作為參數(shù)傳遞給該工具。
使用從 PMM 演示環(huán)境收集的樣本來生成以下輸出:
Apache 許可證 2.0 涵蓋了 Sqlcheck,該項(xiàng)目有五個(gè)貢獻(xiàn)者,187 個(gè)提交和 1.4k Star。(Github 地址:https://github.com/jarulraj/sqlcheck)
5、Orchestrator
Orchestrator 是高可用性管理工具,它提供了發(fā)現(xiàn) MySQL 環(huán)境的復(fù)制拓?fù)淠芰Γㄟ^上下鏈接來識別主從。它也可以通過 GUI 重構(gòu)復(fù)制拓?fù)浣Y(jié)構(gòu),提供一個(gè)拖放界面將從設(shè)備提升為主設(shè)備,這是一個(gè)非常安全的操作。事實(shí)上,Orchestrator 拒絕任何非法操作,以免破壞系統(tǒng)。
最后,Orchestrator 在節(jié)點(diǎn)遭遇失敗時(shí)可以支持恢復(fù),因?yàn)樗褂脿顟B(tài)的概念智能選擇正確的恢復(fù)方法,并決定使用適當(dāng)?shù)闹魃夁^程。
Orchestrator 是 GitHub 的 Shlomi Noach 提供的另一個(gè)工具。它由 Apache 許可證 2.0 涵蓋,該項(xiàng)目有 34 位貢獻(xiàn)者,2,780 個(gè)提交和 900 顆 Star。(Github 地址:https://github.com/github/orchestrator)
Orchestrator 為 MySQL 復(fù)制和恢復(fù)提供了一個(gè)窗口
除此之外,還有一個(gè)很棒的免費(fèi)工具——PMM。它整合了許多最佳開源工具,包括 Orchestrator 的優(yōu)點(diǎn),以提供全面的數(shù)據(jù)庫監(jiān)控和管理功能。它支持 MySQL,MariaDB 和 MongoDB 服務(wù)器。
上述每個(gè)工具涉及到 MySQL 管理員角色的不同方面。這些工具是免費(fèi)開源的,如果需要,也可以根據(jù)自己的環(huán)境需求進(jìn)行調(diào)整,也可以不加修改地直接使用。如果你還沒有嘗試過,不妨試試。
責(zé)任編輯:售電衡衡
-
碳中和戰(zhàn)略|趙英民副部長致辭全文
2020-10-19碳中和,碳排放,趙英民 -
兩部門:推廣不停電作業(yè)技術(shù) 減少停電時(shí)間和停電次數(shù)
2020-09-28獲得電力,供電可靠性,供電企業(yè) -
國家發(fā)改委、國家能源局:推廣不停電作業(yè)技術(shù) 減少停電時(shí)間和停電次數(shù)
2020-09-28獲得電力,供電可靠性,供電企業(yè)
-
碳中和戰(zhàn)略|趙英民副部長致辭全文
2020-10-19碳中和,碳排放,趙英民 -
深度報(bào)告 | 基于分類監(jiān)管與當(dāng)量協(xié)同的碳市場框架設(shè)計(jì)方案
2020-07-21碳市場,碳排放,碳交易 -
碳市場讓重慶能源轉(zhuǎn)型與經(jīng)濟(jì)發(fā)展并進(jìn)
2020-07-21碳市場,碳排放,重慶
-
兩部門:推廣不停電作業(yè)技術(shù) 減少停電時(shí)間和停電次數(shù)
2020-09-28獲得電力,供電可靠性,供電企業(yè) -
國家發(fā)改委、國家能源局:推廣不停電作業(yè)技術(shù) 減少停電時(shí)間和停電次數(shù)
2020-09-28獲得電力,供電可靠性,供電企業(yè) -
2020年二季度福建省統(tǒng)調(diào)燃煤電廠節(jié)能減排信息披露
2020-07-21火電環(huán)保,燃煤電廠,超低排放
-
四川“專線供電”身陷違法困境
2019-12-16專線供電 -
我國能源替代規(guī)范法律問題研究(上)
2019-10-31能源替代規(guī)范法律 -
區(qū)域鏈結(jié)構(gòu)對于數(shù)據(jù)中心有什么影響?這個(gè)影響是好是壞呢!