我心中的 MySQL DBA:職責、技能圖譜與職業素養
角色定位
MySQL DBA 分開發 DBA(參與架構設計、SQL 審核、效能優化)與運維 DBA(安裝、監控、備份、故障處理、容量規劃)。本文聚焦運維 DBA,但資深 DBA 需覆蓋產品全生命週期。
核心職責六大支柱
- 監控(第三隻眼):會話、日誌、碎片、表空間、訪問審計;輸出日報/周報;自動化處理常規故障、預警潛在隱患。不懂監控,不算合格運維。
- 備份(永遠留後手):
- 計劃性:全備 + 增量備(mysqldump、xtrabackup)。
- 操作前:建表備份 (
CREATE TABLE ... SELECT)、條件導出 (mysqldump --where)、SELECT INTO OUTFILE。
- 原則:任何 DML 操作前必備份,錯誤發生秒級恢復。
- 安全審計:最小權限原則,按角色分配 SELECT/INSERT/UPDATE/DELETE/DDL 權限,定期審計帳號與權限變更。
- 故障處理(分秒必爭):預案先行(機房/網路故障、程式 Bug、主從延遲、CPU 飆高);監控閾值觸發腳本自動止損;爭取時間防止故障升級。
- 容量管理:規模擴張資源評估、擴容遷移、流量調度規劃與執行。
- 效能優化(80/20 法則):
- 80%+ 故障源自變態 SQL → 開發規範培訓、SQL 准入審核、慢 SQL 定期下發整改。
- 10% 架構設計不合理 → 早期介入設計評審。
- 10% 硬體/OS 層面 → 基礎設施優化。
優秀 DBA 技能圖譜
| 維度 | 關鍵技能 |
| 備份/恢復/災難演練 | mysqldump、xtrabackup、PITR、GTID 恢復、跨版本遷移 |
| 工具鏈 | pt-toolkit、myloader/myloader、orchestrator、gh-ost、Prometheus/Grafana |
| 尋找答案能力 | 官方文檔、原始碼、社群、Bug 追蹤、內部知識庫 |
| 監控與優化 | 慢查詢分析、執行計劃解讀、索引設計、鎖等待分析、參數調優 |
| 自動化 | Shell/Python/Go 腳本、Ansible、CI/CD 整合、自癒系統 |
| 容量規劃 | 增長建模、磁碟/記憶體/CPU 預測、多機房部署 |
| 索引與架構設計 | 覆蓋索引、前綴索引、分區表、分庫分表、讀寫分離 |
| 安全合規 | 加密傳輸/靜態、審計日誌、GDPR/等保合規 |
| 持續學習 | 新版本特性追蹤、內核原理研讀、技術分享輸出 |
性格決定高度,態度決定層次
- 完美主義:工作認真細致,不將就「過得去」。
- 主動性:自我驅動,發現問題主動解決而非等待指派。
- 溝通協作:跨團隊(開發、運維、產品、業務)高效溝通,推動 SQL 規範落地。
- 抗壓與沉著:故障現場冷靜決策,不恐慌、不推卸。
- 好奇與自信:持續探索新技術,敢於在生產環境落地創新(經過驗證)。
技能是門檻,性格與態度決定職業天花板。群眾眼睛雪亮,唯有踏實做事、堂堂正正做人,持續精進,才能成為業內中堅。