内容简介:本文主要对goInception工具做一些简单介绍,并举例说明其主要做什么。goInception是一个集审核、执行、备份及生成回滚语句于一身的MySQL运维工具, 通过对执行SQL的语法解析,返回基于自定义规则的审核结果,并提供执行和备份及生成回滚语句的功能。goInception基于TiDB的语法解析器,和业内有名的inpcetion审核工具重构。
本文主要对goInception工具做一些简单介绍,并举例说明其主要做什么。
介绍
goInception是一个集审核、执行、备份及生成回滚语句于一身的 MySQL 运维工具, 通过对执行 SQL 的语法解析,返回基于自定义规则的审核结果,并提供执行和备份及生成回滚语句的功能。
goInception基于TiDB的语法解析器,和业内有名的inpcetion审核 工具 重构。
面向读者:该文主要面向于后端开发、DBA或运维小伙伴,通过举例说明goInception大概做了哪些事,关于安装和使用等均可以查看 使用文档 或 github项目首页 。另外, 除安装以外 ,现在很多inception相关的资料和文章等,均可查阅,很多都是通用的。
架构图:(摘自inception)
goInception类似于mysql服务,可以连接到服务端口,执行SQL语句。 接下来通过一个示例来说明goInception具体做了哪些操作。
审核示例
在调用goInception时,需要指定要访问的生产库地址,所以需要一种特殊语法形式, goInception延用inception的使用方式,在审核的sql开始前添加注释来指定远端服务器,并在sql的前后添加特殊标识以区分待审核语句,示例如下:
/*--host=127.0.0.1;--port=3306;--user=xxx;--password=xxx;--check=0;*/ inception_magic_start; use db; 一个或多个sql,支持大多数DDL和DML语法; inception_magic_commit; 复制代码
各选项说明
| 参数 | 默认值 | 数据类型 | 说明 |
|---|---|---|---|
| host | '' | string | 线上数据库IP地址 |
| port | 0 | int | 线上数据库端口 |
| user | '' | string | 线上数据库用户名 |
| password | '' | string | 线上数据库密码 |
| check | false | bool | 开启审核功能 |
| execute | false | bool | 开启执行功能 |
| backup | false | bool | 开启备份功能,仅在执行时生效 |
| ignore_warnings | false | bool | 是否忽略警告,仅在执行时生效。该参数控制有警告时是继续执行还是中止 |
要审核的语句:
create table dbtest.table1(
id int unsigned auto_increment primary key,
name varchar(20)
) engine = innodb default character set utf8;
insert into dbtest.table1 values(1,'aaa'),(2,'bbb');
复制代码
那调用时可以变为如下形式:
/*--host=127.0.0.1;--port=3306;--user=xxx;--password=xxx;--execute=1;--backup=1;--ignore_warnings=1;*/
inception_magic_start;
use dbtest;
create table table1(
id int unsigned auto_increment primary key,
name varchar(20)
) engine = innodb default character set utf8;
insert into table1 values(1,'aaa'),(2,'bbb');
inception_magic_commit;
复制代码
其中,
- 为了方便,可以通过use切换数据库,上下文自动保持该数据库
- 为讲述更多涉及的功能,我们开启了执行和备份参数,此时仍会先进行审核,只有在审核通过之后才会真正执行
goInception内部会进行三个阶段的操作,分别是审核阶段,执行阶段和备份阶段,接下来逐一讲解。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- Go优雅重启Web server示例-讲解版
- 深入讲解Flutter应用模板源码:计数器示例
- Arduino+Avr libc制作Badusb原理及示例讲解
- WebSocket技术讲解
- Fetch 的实例讲解
- SnapHelper硬核讲解
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
构建之法(第三版)
邹欣 / 人民邮电出版社 / 2017-6 / 69.00元
软件工程牵涉的范围很广, 同时也是一般院校的同学反映比较空洞乏味的课程。 但是,软件工程 的技术对于投身 IT 产业的学生来说是非常重要的。作者有在世界一流软件企业 20 年的一线软件开 发经验,他在数所高校进行了多年的软件工程教学实践,总结出了在 16 周的时间内让同学们通过 “做 中学 (Learning By Doing)” 掌握实用的软件工程技术的教学计划,并得到高校师生的积极反馈。在此 ......一起来看看 《构建之法(第三版)》 这本书的介绍吧!