SQL稽核與執行,作為DBA日常工作中相當重要的一環,一直以來我們都是通過人工的方式來處理,效率低且質量沒辦法保證。為了規範操作,提高效率,我們決定引入目前市面上非常流行的SQL自動稽核工具Inception。
花了一週看了inception官方文件並搭建了測試環境簡單測試,又花了3天寫了webui(內部起名叫overmind,以下也簡稱overmind),目前正在進行各種測試以及手冊的編寫,還未正式跟我們的流程結合起來投入使用,後續正式使用後再更新使用經驗。
Inception
Inception是一個開源的Mysql自動化工具,具有SQL稽核、執行、回滾等實用的功能,由國內大神基於mysql原始碼開發,可以很明確的,詳細的,準確的稽核Mysql的SQL語句,工作模式與Mysql完全相同,可以直接使用mysql客戶端來連線。但遺憾的是2年前已停止更新,不過相容大部分的mysql版本,仍然是開源SQL稽核工具的翹楚。
Inception的架構如下:
Overmind
稽核流程
我們的稽核流程現在主要分兩部分:
1.Dev和Qa等線下測試環境:為了簡化流程,開發測試環境,可以由開發直接通過overmind系統進行稽核或執行
2.Prod生產環境:生產環境以安全為主,在Dev和Qa環境執行成功後詳情頁面會有個“申請上線”按鈕,點選申請上線自動傳送郵件給DBA,待DBA稽核通過後方可上線
系統介紹
-
基本配置頁面:可以直接在頁面上配置inception的資訊,方便遷移
-
資料庫資訊錄入:相當於一個簡單資料庫的cmdb系統,可以管理資料庫資訊
-
稽核任務提交:支援稽核和執行兩種模式,稽核模式只給稽核結果,執行模式在執行之前會先稽核
-
稽核結果展示:詳細展示SQL稽核的所有資訊,包括提交使用者、執行操作、稽核結果等等
-
任務列表頁面:可以很方便只檢視自己提交的任務,或者檢視固定專案的,固定環境的任務
關於開源
開源在我看來是一件很隆重的事情,之前剛學python的時候開源了自己寫的一個簡單後臺sadmin(github或gitee可以搜尋到),因為一些原因停止更新了。目前沒有時間和精力來做長久的支援和維護,所以暫時不打算把原始碼放到github上。另外同型別的已經有一個非常棒的開源產品Yearning了,可以github搜尋安裝學習。
寫在最後
- 先說感謝!感謝大神開發的Inception,絕對是DBA界的福音
- 之所以能就花了3天時間寫了overmind,主要還是藉助了之前已寫好的其他專案框架,在此基礎上做修改,還是很快的
- 工具部署與頁面編寫都是比較簡單的,團隊內部都可以搞定,要把工具推出去,融入到現在的流程中是一件比較困難的事情,給團隊內定的規則就是a.完善的文件,使用者在稽核前就知曉哪些sql通不過,在稽核失敗時知曉如何修改能成功,b.對使用者的感知應降到最低,不要因為用了overmind而造成額外的麻煩,要讓使用者用的爽
- 希望作者或其他大神能持續更新Inception,繼續造福廣大DBA