如何使用MySQL自动化运维工具goinception

63次阅读
没有评论

共计 2871 个字符,预计需要花费 8 分钟才能阅读完成。

这篇文章主要讲解了“如何使用 MySQL 自动化运维工具 goinception”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着丸趣 TV 小编的思路慢慢深入,一起来研究和学习“如何使用 MySQL 自动化运维工具 goinception”吧!

goinception 介绍

goInception 是一个集审核、执行、备份及生成回滚语句于一身的 MySQL 运维工具,通过对执行 SQL 的语法解析,返回基于自定义规则的审核结果,并提供执行和备份及生成回滚语句的功能。

goinception 架构

goinception 安装

官方提供了几种的安装方式,如下。

 1、源码安装

源码安装需要有 go V1.2 版本以上的环境,使用 go mod 作依赖管理。

[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

2、docker 方式  

[root@centos7 ~]# docker pull hanchuanchuan/goinception

 3、二进制安装(推荐)

直接上官方提供的地址:https://github.com/hanchuanchuan/goInception/releases/download/ 去下载对应的版本文件,下载完成后直接解压运行即可。

[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/hanchuanchuan/goInception/blob/master/config/config.toml.default

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;

其它介绍

1、结果信息

给用户返回的信息有两种,

  一种是提交给 goInception 的基础信息存在错误,比如源信息不全,或者源信息有错误等,这种情况下,直接报异常,包括错误码及错误信息,与 MySQL 服务器的异常是一样的,在外面正常处理即可。

  二是如果没有上面的问题,都会以结果集的方式将检查结果告诉客户端。和 mysql 原生结果集一致。返回的结果集中,每一个行数据,就是一条提交的 SQL 语句,goInception 内部将所有提交的语句块一条条的拆开,以结果集的方式返回,针对每一条语句,有什么问题或者状态,在结果集中是一目了然。

注意:如果在语句中出现语法错误,则不能继续了,因为 goInception 已经不能将剩下的语句分开了,那么此时前面已经正常检查的多行为多个结果集的行返回,后面出错的语句为一行返回,当然这个的错误信息是语法错误。

2、自带备份功能

自带备份功能,首先服务启动时配置 config.toml(放在 [inc] 段)

参数默认可选范围说明  backup_host string 备份数据库 IP 地址 backup_port0int 备份数据库端口 backup_user string 备份数据库用户名 backup_password string 备份数据库密码

并且在执行 sql 时,添加 –backup=true 或 –backup=1 选项。

3、审核规则

相关的审核规则,审核选项等详细信息,可以参考:

https://hanchuanchuan.github.io/goInception/rules.html

对比 Inception

1、功能对比

2、速度

3、使用

这类工具在一定程度上解放了 DBA 的双手,而且还能在很大程度上避免出错的情况,从而保证 SQL 的执行正确率,同时还提供 SQL 回滚功能,在出错时进行回滚,保证数据安全与完整性。

感谢各位的阅读,以上就是“如何使用 MySQL 自动化运维工具 goinception”的内容了,经过本文的学习后,相信大家对如何使用 MySQL 自动化运维工具 goinception 这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是丸趣 TV,丸趣 TV 小编将为大家推送更多相关知识点的文章,欢迎关注!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-27发表,共计2871字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)