云市场

Arkit MySQL SQL自动审核和执行系统_软件版

Arkit是一个针对MySQL的SQL自动化审核和执行工具,它是一款MySQL的插件,安装和使用方式跟标准的MySQL插件一致。 Arkit的SQL审核100%兼容MySQL语法,同...
  • 价格:
  • ¥/次

订阅

Arkit MySQL SQL自动审核和执行系统_软件版

规格:
  • Arkit MySQL SQL自动审核和执行系统_软件版
购买方式:
  • 单次
金额:
询价中...
  • ¥
  • 省: ¥
立即购买

产品描述

  • 版本: 软件版V1.0
  • 类型: 数据库与缓存
  • 适用于: Linux
  • 发布日期: 2018-03-08
Arkit是一个针对MySQL的SQL自动化审核和执行工具,它是一款MySQL的插件,安装和使用方式跟标准的MySQL插件一致。

Arkit的SQL审核100%兼容MySQL语法,同时它也可以自动执行审核成功的语句。在执行SQL过程中,Arkit可以生成被影响数据库的回滚语句,用来实现数据库的闪回功能。对于审核和执行的结果,Arkit以结果集的方式展现出来。

Arkit内置很多配置参数,可以通过修改参数配置相应的审核行为,即我们所说的规则的配置。

在执行DDL的过程中,Arkit支持两种自动化在线改表方式,一种是调用pt-online-schema-change工具,另一种还支持内置的通过分析Binlog获取增量数据的方式来修改表,在执行过程中,可以通过参数控制在线改表的执行行为。

使用Arkit,实现操作数据库的自动化运维,可以极大提升DBA的工作效率,标准化SQL审核,降低线上执行SQL出错的概率,并有机会实现数据库操作的回滚,并对操作数据库的行为提供统计和审计功能。


从整体上来看,Arkit的架构非常简单。Arkit Server只是在一个MySQL Server中安装Arkit插件即可。

在客户端程序提交任务之后,Arkit会将这个任务分发给审核线程。
审核线程通过语法分析、语义分析,找到语句中的所有信息,将相关的库表信息从线上MySQL中获取过来,根据表结构及Arkit的配置参数进行逐个审核。
如果配置了要自动执行这个任务的话,Arkit会在审核成功之后去执行任务。
当任务执行完成之后,Arkit会自动将审核/执行结果存储到本地数据库中,相应的回滚语句也会被存储到后端MySQL数据库中,这个数据库专门用来存储回滚语句及任务的执行情况,用来记录每一个任务,实现对任务的审计。
客户端程序可以不断地查询information schema中的状态进度表,了解审核/执行进度。



产品特点

准确
Arkit审核时,语法100%兼容MySQL原生语法,对SQL语句的分析可以做到零遗漏。
根据规则配置,将不符合配置的问题展现出来,做到语句的客观统一标准化,避免潜在问题的发生。
使用简单
Arkit是一款MySQL的插件,安装和操作标准统一。可以像操作MySQL一样操作Arkit,Arkit支持标准的MySQL链接和SQL语法,并在此基础上适当扩展了相应的Arkit 操作命令,操作非常简单。
实时状态查询
Arkit包含了多个information schema状态表,在安装之后,就可以在information schema库中看到以arkit开头的表,并且了解其表结构,通过编写相应的SQL语句就可以详细了解任务的执行状态了。
持久化
在任务执行完成之后,Arkit会将执行结果以结果集的方式,存储到本地数据库arkit中,表名为arkit_feedback,从这个表中就可以详细了解到某一个任务的执行/审核情况。
批量提交
在向Arkit提交任务时,可以一次性提交多个语句,每一个语句最终在结果集表中是以一行数据的形式展现的。
上下文逻辑相关性
批量提交的SQL语句,从前到后支持上下文逻辑相关性,可以做到先创建某个数据库,然后使用它,然后再创建一个表,最后初始化这个表,Arkit会准确无误地为你找到所有问题。
结果集
在任务执行完成之后,Arkit会将提交的批量语句一条条地分开,每一条SQL语句,作为最终结果集的一行数据存储到本地数据库中。这条记录中存储了这条语句的所有相关信息,包括任务号、语句、错误分级、错误信息、影响行数、备份库名表名、执行时间、语句类型等。存储信息非常丰富,让DBA更准确地把握任务状态。
一键回滚
在任务执行之后,所有被影响的数据的回滚语句都被存储到了后端备份数据库中,如果此时发现执行有误,可以通过结果集中的备份库名表名找到相应的回滚语句,然后反向执行,实现操作的回滚,保证尽可能少地影响在线数据库的服务。
语法树打印
由于SQL语句的复杂性,分析非常困难,Arkit可以将分析出来的语法树,通过JSON格式打印出来,这样语句中包含的所有信息都一目了然。
通过对JSON的分析可以自定义规则,比如limit不能设置起始点这样的规则等。
Arkit支持分析所有类型的语句,对表达式、子查询也做了详细的分析,并且将上下文关联也做了分析。
这个功能还可以用于慢查询自动化系统中,拿到慢查询之后,如何知道这个慢查询语句是对哪些表做了查询,用这个语法树打印就可以解决问题。
在线改表
Arkit内部已经支持了pt-online-schema-change的改表方案,也支持了内置的通过Binlog来获取增量修改的改表方案,两种方案可以通过任务参数来控制,不同情况可以选择不同方案来执行。同时,可以通过information schema中的osc状态表查询相应任务的执行过程,并且当在线MySQL数据库压力过大时,可以手动取消执行任务。
通用性
Arkit是一款通用型产品,没有涉及任何业务逻辑,使用起来非常方便,上层的自动化运维管理系统可以做得非常强大。
丰富参数配置
Arkit支持很多参数配置,可以定制适合自己业务线的规则。
错误分级
Arkit将审核出来的错误做了分级,因为有些错误是严重影响自动化执行的,有些错误(警告)则在某些情况下可以忽略,有了分级之后,就可以选择忽略警告继续执行,在规则之下,加入了人性化的功能。
日志打印
Arkit还支持在所在MySQL服务器的错误日志文件中,打印在运行过程、启动过程中出现的一些问题的详细信息,让管理人员时刻了解系统状态。
执行暂停
Arkit考虑到,在批量执行大量语句的时候,执行太快可能会给在线MySQL带来压力,或者造成故障,所以加入了在每条语句执行之后暂停一段时间的功能,让在线操作做到可控,避免潜在危险。
操作友好
Arkit插件只包含了三种对象:
一是配置参数,可以通过配置参数来设置任务执行的行为;
二是information schema表,可以实时了解任务执行的状态;
三是本地数据库的持久化表,用来存储任务执行完成之后的详细信息。
DDL回滚语句生成
Arkit全面支持DML操作的回滚,但由于DDL操作的不可恢复性,目前只是生成DDL语句,而不能恢复相应的数据,这样可以很便捷很准确地拿到回滚语句。
表达式类型匹配
Arkit还支持表达式比较的审核,比如一个VARCHAR类型的字符串和一个INT类型的列做比较,这样很多情况下会出问题,并且性能会很差。这种情况下,Arkit会报出列类型不匹配的问题。



应用指南

1. 下载Arkit MySQL SQL自动审核和执行系统 软件版。

2. 申请对应版本License

   请联系北京极数云舟科技有限公司技术人员申请对应License。 联系方式:15827479486(许先生)  18513418589(强先生)

3. Arkit 软件版是基于5.7.18 版本Percona MySQL Server编译,如果需要非5.7.18 MySQL版本对应的Arkit软件,请联系北京极数云舟科技有限公司技术人员。

4. 初始化并启动5.7.18版本 Percona MySQL Server实例3306。

5. 拷贝arkit.so 到plugin目录。 show global variables like 'plugin_dir';

6. 在实例数据库3306 data目录下创建key目录, mkdir -p /data/ark/arkdb/multi/3306/key,将arkit.key放到key目录(部署时目录按实际路径进行替换)。

7. 安装插件和指定key文件地址

install plugin arkit soname 'arkit.so';
install plugin arkit_order_queue soname 'arkit.so';
install plugin arkit_osc_status soname 'arkit.so';
install plugin arkit_processlist soname 'arkit.so';

set global arkit_license_file='/data/ark/arkdb/multi/3306/key/arkit.key';

8. 修改3306端口实例配置文件my.cnf,添加如下内容:

arkit_license_file = /data/ark/arkdb/multi/3306/key/arkit.key
arkit_remote_backup_host = 127.0.0.1
arkit_remote_backup_password = arkit_backup
arkit_remote_backup_port = 3306
arkit_remote_backup_user = arkit_backup
plugin_dir=/data/ark/arkdb/multi/3306/private/lib/plugin/


9. 重启3306端口MySQL实例。测试arkit


详情请查看Arkit用户手册。当前页面切换到支持服务即可下载。

使用指南

客户案例

暂无,请等待更新

用户评价

暂无,请等待更新

Arkit MySQL SQL自动审核和执行系统_软件版

产品简介

产品描述

Arkit是一个针对MySQL的SQL自动化审核和执行工具,它是一款MySQL的插件,安装和使用方式跟标准的MySQL插件一致。

Arkit的SQL审核100%兼容MySQL语法,同时它也可以自动执行审核成功的语句。在执行SQL过程中,Arkit可以生成被影响数据库的回滚语句,用来实现数据库的闪回功能。对于审核和执行的结果,Arkit以结果集的方式展现出来。

Arkit内置很多配置参数,可以通过修改参数配置相应的审核行为,即我们所说的规则的配置。

在执行DDL的过程中,Arkit支持两种自动化在线改表方式,一种是调用pt-online-schema-change工具,另一种还支持内置的通过分析Binlog获取增量数据的方式来修改表,在执行过程中,可以通过参数控制在线改表的执行行为。

使用Arkit,实现操作数据库的自动化运维,可以极大提升DBA的工作效率,标准化SQL审核,降低线上执行SQL出错的概率,并有机会实现数据库操作的回滚,并对操作数据库的行为提供统计和审计功能。


从整体上来看,Arkit的架构非常简单。Arkit Server只是在一个MySQL Server中安装Arkit插件即可。

在客户端程序提交任务之后,Arkit会将这个任务分发给审核线程。
审核线程通过语法分析、语义分析,找到语句中的所有信息,将相关的库表信息从线上MySQL中获取过来,根据表结构及Arkit的配置参数进行逐个审核。
如果配置了要自动执行这个任务的话,Arkit会在审核成功之后去执行任务。
当任务执行完成之后,Arkit会自动将审核/执行结果存储到本地数据库中,相应的回滚语句也会被存储到后端MySQL数据库中,这个数据库专门用来存储回滚语句及任务的执行情况,用来记录每一个任务,实现对任务的审计。
客户端程序可以不断地查询information schema中的状态进度表,了解审核/执行进度。



产品特点

准确
Arkit审核时,语法100%兼容MySQL原生语法,对SQL语句的分析可以做到零遗漏。
根据规则配置,将不符合配置的问题展现出来,做到语句的客观统一标准化,避免潜在问题的发生。
使用简单
Arkit是一款MySQL的插件,安装和操作标准统一。可以像操作MySQL一样操作Arkit,Arkit支持标准的MySQL链接和SQL语法,并在此基础上适当扩展了相应的Arkit 操作命令,操作非常简单。
实时状态查询
Arkit包含了多个information schema状态表,在安装之后,就可以在information schema库中看到以arkit开头的表,并且了解其表结构,通过编写相应的SQL语句就可以详细了解任务的执行状态了。
持久化
在任务执行完成之后,Arkit会将执行结果以结果集的方式,存储到本地数据库arkit中,表名为arkit_feedback,从这个表中就可以详细了解到某一个任务的执行/审核情况。
批量提交
在向Arkit提交任务时,可以一次性提交多个语句,每一个语句最终在结果集表中是以一行数据的形式展现的。
上下文逻辑相关性
批量提交的SQL语句,从前到后支持上下文逻辑相关性,可以做到先创建某个数据库,然后使用它,然后再创建一个表,最后初始化这个表,Arkit会准确无误地为你找到所有问题。
结果集
在任务执行完成之后,Arkit会将提交的批量语句一条条地分开,每一条SQL语句,作为最终结果集的一行数据存储到本地数据库中。这条记录中存储了这条语句的所有相关信息,包括任务号、语句、错误分级、错误信息、影响行数、备份库名表名、执行时间、语句类型等。存储信息非常丰富,让DBA更准确地把握任务状态。
一键回滚
在任务执行之后,所有被影响的数据的回滚语句都被存储到了后端备份数据库中,如果此时发现执行有误,可以通过结果集中的备份库名表名找到相应的回滚语句,然后反向执行,实现操作的回滚,保证尽可能少地影响在线数据库的服务。
语法树打印
由于SQL语句的复杂性,分析非常困难,Arkit可以将分析出来的语法树,通过JSON格式打印出来,这样语句中包含的所有信息都一目了然。
通过对JSON的分析可以自定义规则,比如limit不能设置起始点这样的规则等。
Arkit支持分析所有类型的语句,对表达式、子查询也做了详细的分析,并且将上下文关联也做了分析。
这个功能还可以用于慢查询自动化系统中,拿到慢查询之后,如何知道这个慢查询语句是对哪些表做了查询,用这个语法树打印就可以解决问题。
在线改表
Arkit内部已经支持了pt-online-schema-change的改表方案,也支持了内置的通过Binlog来获取增量修改的改表方案,两种方案可以通过任务参数来控制,不同情况可以选择不同方案来执行。同时,可以通过information schema中的osc状态表查询相应任务的执行过程,并且当在线MySQL数据库压力过大时,可以手动取消执行任务。
通用性
Arkit是一款通用型产品,没有涉及任何业务逻辑,使用起来非常方便,上层的自动化运维管理系统可以做得非常强大。
丰富参数配置
Arkit支持很多参数配置,可以定制适合自己业务线的规则。
错误分级
Arkit将审核出来的错误做了分级,因为有些错误是严重影响自动化执行的,有些错误(警告)则在某些情况下可以忽略,有了分级之后,就可以选择忽略警告继续执行,在规则之下,加入了人性化的功能。
日志打印
Arkit还支持在所在MySQL服务器的错误日志文件中,打印在运行过程、启动过程中出现的一些问题的详细信息,让管理人员时刻了解系统状态。
执行暂停
Arkit考虑到,在批量执行大量语句的时候,执行太快可能会给在线MySQL带来压力,或者造成故障,所以加入了在每条语句执行之后暂停一段时间的功能,让在线操作做到可控,避免潜在危险。
操作友好
Arkit插件只包含了三种对象:
一是配置参数,可以通过配置参数来设置任务执行的行为;
二是information schema表,可以实时了解任务执行的状态;
三是本地数据库的持久化表,用来存储任务执行完成之后的详细信息。
DDL回滚语句生成
Arkit全面支持DML操作的回滚,但由于DDL操作的不可恢复性,目前只是生成DDL语句,而不能恢复相应的数据,这样可以很便捷很准确地拿到回滚语句。
表达式类型匹配
Arkit还支持表达式比较的审核,比如一个VARCHAR类型的字符串和一个INT类型的列做比较,这样很多情况下会出问题,并且性能会很差。这种情况下,Arkit会报出列类型不匹配的问题。



应用指南

1. 下载Arkit MySQL SQL自动审核和执行系统 软件版。

2. 申请对应版本License

   请联系北京极数云舟科技有限公司技术人员申请对应License。 联系方式:15827479486(许先生)  18513418589(强先生)

3. Arkit 软件版是基于5.7.18 版本Percona MySQL Server编译,如果需要非5.7.18 MySQL版本对应的Arkit软件,请联系北京极数云舟科技有限公司技术人员。

4. 初始化并启动5.7.18版本 Percona MySQL Server实例3306。

5. 拷贝arkit.so 到plugin目录。 show global variables like 'plugin_dir';

6. 在实例数据库3306 data目录下创建key目录, mkdir -p /data/ark/arkdb/multi/3306/key,将arkit.key放到key目录(部署时目录按实际路径进行替换)。

7. 安装插件和指定key文件地址

install plugin arkit soname 'arkit.so';
install plugin arkit_order_queue soname 'arkit.so';
install plugin arkit_osc_status soname 'arkit.so';
install plugin arkit_processlist soname 'arkit.so';

set global arkit_license_file='/data/ark/arkdb/multi/3306/key/arkit.key';

8. 修改3306端口实例配置文件my.cnf,添加如下内容:

arkit_license_file = /data/ark/arkdb/multi/3306/key/arkit.key
arkit_remote_backup_host = 127.0.0.1
arkit_remote_backup_password = arkit_backup
arkit_remote_backup_port = 3306
arkit_remote_backup_user = arkit_backup
plugin_dir=/data/ark/arkdb/multi/3306/private/lib/plugin/


9. 重启3306端口MySQL实例。测试arkit


详情请查看Arkit用户手册。当前页面切换到支持服务即可下载。

产品特点