在這以前,民工哥也給你們介紹過一款開源的SQL管理工具:自動補全、回滾!介紹一款可視化 sql 診斷利器。html
今天,民工哥再給你們推薦一款SQL審覈利器:goinception。mysql
goInception是一個集審覈、執行、備份及生成回滾語句於一身的MySQL運維工具, 經過對執行SQL的語法解析,返回基於自定義規則的審覈結果,並提供執行和備份及生成回滾語句的功能。linux
github地址:https://github.com/hanchuanch...git
文檔:https://hanchuanchuan.github....github
官方提供了幾種的安裝方式,以下。sql
源碼安裝須要有go V1.2版本以上的環境,使用go mod做依賴管理。docker
[root@centos7 ~]# git clone https://github.com/hanchuanchuan/goInception.git [root@centos7 ~]# cd goInception [root@centos7 ~]# make parser [root@centos7 ~]# go build -o goInception tidb-server/main.go
[root@centos7 ~]# docker pull hanchuanchuan/goinception
直接上官方提供的地址:https://github.com/hanchuanch...,下載完成後直接解壓運行便可。centos
[root@centos7 ~]# mkdir goinception [root@centos7 ~]# tar zxf goInception-linux-amd64-v1.2.3.tar.gz -C ./goinception/ [root@centos7 ~]# cd goinception/ [root@centos7 goinception]# ll total 38476 drwxr-xr-x 2 root root 33 Aug 30 03:48 config -rwxr-xr-x 1 501 games 39399424 May 22 07:45 goInception
解壓完成後,在config目錄下會看到一個默認的配置文件:config.toml.default,你們能夠根據實際狀況修改。安全
goInception採用TiDB源碼重構,因此部分參數可參考TiDB相關文檔服務器
config.toml文件由幾部分組成,分別爲最外層配置如host,port等,以及各分組如[inc],[log]等。示例(該示例僅爲展現config.toml文件結構,詳細參數請參考):https://github.com/hanchuanch...
host = "0.0.0.0" port = 4000 path = "/tmp/tidb" [log] # 日誌參數 level = "info" format = "text" [log.file] # 日誌文件參數 filename = "" max-size = 300 [inc] # 審覈選項 enable_nullable = true enable_drop_table = false check_table_comment = false check_column_comment = false # 等等... [osc] # pt-osc參數 osc_on = false osc_min_table_size = 16 [ghost] # gh-ost參數 ghost_allow_on_master = true
配置修改完成後,就能夠正常啓動了。
[root@centos7 goinception]# ./goInception -config=config/config.toml [root@centos7 ~]# netstat -lntp|grep 4000 tcp6 0 0 :::4000 :::* LISTEN 1250/./goInception
使用實例
/*--user=root;--password=root;--host=127.0.0.1;--check=1;--port=3306;*/ inception_magic_start; use test; create table t1(id int primary key); inception_magic_commit;
一、結果信息
給用戶返回的信息有兩種,
注意:若是在語句中出現語法錯誤,則不能繼續了,由於goInception已經不能將剩下的語句分開了,那麼此時前面已經正常檢查的多行爲多個結果集的行返回,後面出錯的語句爲一行返回,固然這個的錯誤信息是語法錯誤。
二、自帶備份功能
自帶備份功能,首先服務啓動時配置config.toml(放在 [inc] 段)
而且在執行sql時,添加 --backup=true 或 --backup=1 選項。
三、審覈規則
相關的審覈規則,審覈選項等詳細信息,能夠參考:https://hanchuanchuan.github....
一、功能對比
二、速度
三、使用
這類工具在必定程度上解放了DBA的雙手,並且還能在很大程度上避免出錯的狀況,從而保證SQL的執行正確率,同時還提供SQL回滾功能,在出錯時進行回滾,保證數據安全與完整性。