如何使用MySQL自动化运维工具goinception
这篇文章主要讲解了“如何使用MySQL自动化运维工具goinception”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何使用MySQL自动化运维工具goinception”吧!
goinception介绍
goInception是一个集审核、执行、备份及生成回滚语句于一身的MySQL运维工具, 通过对执行SQL的语法解析,返回基于自定义规则的审核结果,并提供执行和备份及生成回滚语句的功能。
goinception架构
goinception安装
官方提供了几种的安装方式,如下。
1、源码安装
源码安装需要有go V1.2版本以上的环境,使用go mod作依赖管理。
[root@centos7~]#gitclonehttps://github.com/hanchuanchuan/goInception.git[root@centos7~]#cdgoInception[root@centos7~]#makeparser[root@centos7~]#gobuild-ogoInceptiontidb-server/main.go
2、docker方式
[root@centos7~]#dockerpullhanchuanchuan/goinception
3、二进制安装(推荐)
直接上官方提供的地址:https://github.com/hanchuanchuan/goInception/releases/download/去下载对应的版本文件,下载完成后直接解压运行即可。
[root@centos7~]#mkdirgoinception[root@centos7~]#tarzxfgoInception-linux-amd64-v1.2.3.tar.gz-C./goinception/[root@centos7~]#cdgoinception/[root@centos7goinception]#lltotal38476drwxr-xr-x2rootroot33Aug3003:48config-rwxr-xr-x1501games39399424May2207:45goInception
解压完成后,在config目录下会看到一个默认的配置文件:config.toml.default,大家可以根据实际情况修改。
goInception采用TiDB源码重构,所以部分参数可参考TiDB相关文档
config.toml文件由几部分组成,分别为最外层配置如host,port等,以及各分组如[inc],[log]等。示例(该示例仅为展示config.toml文件结构,详细参数请参考):https://github.com/hanchuanchuan/goInception/blob/master/config/config.toml.default
host="0.0.0.0"port=4000path="/tmp/tidb"[log]#日志参数level="info"format="text"[log.file]#日志文件参数filename=""max-size=300[inc]#审核选项enable_nullable=trueenable_drop_table=falsecheck_table_comment=falsecheck_column_comment=false#等等...[osc]#pt-osc参数osc_on=falseosc_min_table_size=16[ghost]#gh-ost参数ghost_allow_on_master=true
配置修改完成后,就可以正常启动了。
[root@centos7goinception]#./goInception-config=config/config.toml[root@centos7~]#netstat-lntp|grep4000tcp600:::4000:::*LISTEN1250/./goInception
使用实例
/*--user=root;--password=root;--host=127.0.0.1;--check=1;--port=3306;*/inception_magic_start;usetest;createtablet1(idintprimarykey);inception_magic_commit;
其它介绍
1、结果信息
给用户返回的信息有两种,
一种是提交给goInception的基础信息存在错误,比如源信息不全,或者源信息有错误等,这种情况下,直接报异常,包括错误码及错误信息,与MySQL服务器的异常是一样的,在外面正常处理即可。
二是如果没有上面的问题,都会以结果集的方式将检查结果告诉客户端。和mysql原生结果集一致。返回的结果集中,每一个行数据,就是一条提交的SQL语句,goInception内部将所有提交的语句块一条条的拆开,以结果集的方式返回,针对每一条语句,有什么问题或者状态,在结果集中是一目了然。
注意:如果在语句中出现语法错误,则不能继续了,因为goInception已经不能将剩下的语句分开了,那么此时前面已经正常检查的多行为多个结果集的行返回,后面出错的语句为一行返回,当然这个的错误信息是语法错误。
2、自带备份功能
自带备份功能,首先服务启动时配置config.toml(放在 [inc] 段)
并且在执行sql时,添加 --backup=true 或 --backup=1 选项。
3、审核规则
相关的审核规则,审核选项等详细信息,可以参考:
https://hanchuanchuan.github.io/goInception/rules.html
对比Inception
1、功能对比
2、速度
3、使用
这类工具在一定程度上解放了DBA的双手,而且还能在很大程度上避免出错的情况,从而保证SQL的执行正确率,同时还提供SQL回滚功能,在出错时进行回滚,保证数据安全与完整性。
感谢各位的阅读,以上就是“如何使用MySQL自动化运维工具goinception”的内容了,经过本文的学习后,相信大家对如何使用MySQL自动化运维工具goinception这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。