关于数据库:一个集审核执行备份及生成回滚语句于一身的MySQL自动化运维工具

在这之前,民工哥也给大家介绍过一款开源的SQL管理工具:主动补全、回滚!介绍一款可视化 sql 诊断利器。

明天,民工哥再给大家举荐一款SQL审核利器:goinception。

goinception介绍

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

github地址:https://github.com/hanchuanch…

文档:https://hanchuanchuan.github….

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/hanchuanch…,下载实现后间接解压运行即可。

[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;

其它介绍

1、后果信息

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

  • 一种是提交给goInception的根底信息存在谬误,比方源信息不全,或者源信息有谬误等,这种状况下,间接报异样,包含错误码及错误信息,与MySQL服务器的异样是一样的,在里面失常解决即可。
  • 二是如果没有下面的问题,都会以后果集的形式将查看后果通知客户端。和mysql原生后果集统一。返回的后果集中,每一个行数据,就是一条提交的SQL语句,goInception外部将所有提交的语句块一条条的拆开,以后果集的形式返回,针对每一条语句,有什么问题或者状态,在后果集中是高深莫测。

留神:如果在语句中呈现语法错误,则不能持续了,因为goInception曾经不能将剩下的语句离开了,那么此时后面曾经失常查看的多行为多个后果集的行返回,前面出错的语句为一行返回,当然这个的错误信息是语法错误。

2、自带备份性能

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

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

3、审核规定

相干的审核规定,审核选项等详细信息,能够参考:https://hanchuanchuan.github….

比照Inception

1、性能比照

2、速度

3、应用

这类工具在肯定水平上解放了DBA的双手,而且还能在很大水平上防止出错的状况,从而保障SQL的执行正确率,同时还提供SQL回滚性能,在出错时进行回滚,保障数据安全与完整性。

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理