设为首页 加入收藏

TOP

MySQL数据库Inception工具学习与测试 笔记(一)
2019-09-17 18:29:11 】 浏览:69
Tags:MySQL 数据库 Inception 工具 学习 测试 笔记

MySQL语句的审核,在业界都已经基本被认同了,实际上也是对MySQL语句写法的统一化,标准化,而之前的人工审核,针对标准这个问题其实是很吃力的,标准越多,DBA越累,开发也越累。 那么在这个都追求自动化运维的时代,审核也必须要跟上步伐,因此Inception诞生了。而Inception可以做的工作远不止是一个自动化审核工具,同时还具备执行,生成对影响数据的回滚语句(类似闪回的功能),这样一条龙服务的工具,将会给DBA的工作带来翻天覆地的变化,DBA从此就从繁重的审核、登上去执行,出错了很难回滚(如果提前没有备份的话)的被动局面解放了出来,突然发现,做DBA原来可以这么轻松,工作可以不饱和了,那就有更多的自由时间学习、进一步向自动化运维平台的实现等更智能化的方向去发展,是具有里程碑意义的。 

1.Inception架构原理

Inception是集审核、执行、回滚于一体的一个自动化运维系统。它是根据MySQL代码修改过来的。

相对于应用程序(上层审核流程系统等)而言,它是一个服务器,在连接时需要指定

2.Inception安装

2.1 环境配置

安装依赖项

yum install cmake ncurses-devel gcc gcc-c++ openssl-devel

移除bison较新的版本

yum remove bison –y

http://ftp.gnu.org/gnu/bison/ 路径,下载 bison-2.6.1.tar.gz 指定版本。下载后,上传至服务器。

解压并安装bison

tar zxvf bison-2.6.1.tar.gz

cd bison-2.6.1

./configure && make && make install

2.2 下载安装Inception

下载

 wget https://github.com/qunarcorp/inception/archive/master.zip

解压

unzip master.zip
cd inception-master
./inception_build.sh debug [Xcode]

指定路径下创建inc.cnf

touch /data/Inception/inc.cnf

初始化

/data/Inception/inception-master/debug/mysql/bin/Inception --defaults-file=/data/Inception/inc.cnf &

(##Inception 最佳启动方式是通过nohup后台启动

nohup /data/Inception/inception-master/debug/mysql/bin/Inception --defaults-file=/data/Inception/inc.cnf &
) 

2.3 关闭Inception

找到初始化后的Inception

 关闭Inception

kill -9 7927

 2.4 修改增加配置项

[inception]
general_log=1
general_log_file=inc.log
port=6669
socket=/tmp/inc.socket
character-set-client-handshake=0
character-set-server=utf8
inception_remote_system_password=备份库密码
inception_remote_system_user=备份库账号
inception_remote_backup_port=备份库实例端口
inception_remote_backup_host=备份库IP
inception_support_charset=utf8mb4,utf8,latin1
inception_enable_nullable=0
inception_check_primary_key=1
inception_check_column_comment=1
inception_check_table_comment=1
inception_osc_min_table_size=1
inception_osc_bin_dir=/data/temp
inception_osc_chunk_time=0.1
inception_ddl_support=1
inception_enable_blob_type=1
inception_check_column_default_value=1

如果执行 ./inception_build.sh debug [Xcode] 命令报错,可将inception-master目录删除,重新解压,然后用

./inception_build.sh build linux 替代。当然,此时的可执行文件 在 /data/Inception/inception-master/build/mysql/bin/Inception

更多的安装知识,可参阅 https://qunarcorp.github.io/inception/install/

2.5 连接验证

通过mysql 客户端连接

执行 代码验证

 inception get variables;

 

2.6 Inception的选项支持

参数名 是否需要参数 是否可选 功能描述
--host 需要操作的这部分语句块对应的数据库地址。指定方式可以是IP地址、机器名或DNS域名等,只能唯一解析到这个机器即可。
--port 与上面的--host选项对应,指定机器名,必然要再指定一个MySQL实例的端口。
--user 通过--user指定的用户名来连接需要操作SQL语句的MySQL实例。
--password 与上面的--user选项对应。
--sleep

这个参数用来指定在执行完每一条语句后,暂停多少毫秒,这样可以适当控制对线上数据库的冲击,特别是针对大量的写入操作,

单位是毫秒,最小值为0,也就是不暂停,最大值为100秒,也就是100000毫秒。如果设置的值超过了100000毫秒,

Inception会自动将其设置为100000毫秒。这个参数可以和其他参数一起设置,但是只有在--enable-execute为1的情况下,才起作用。

--enable-check

告诉Inception当前要做什么操作,是审核还是执行,这个参数与下面的--enable-execute智能指定一个。enable-check就是要告诉Inception,

当前的请求是要做审核操作,审核完成后就返回结果集。

--enable-execute

如果执行的选项是--enable-execute,则Inception在执行前还会做一次实时的审核,这个审核和前面指定的--enable-check时的

审核是基本相同的,这是这

首页 上一页 1 2 3 4 下一页 尾页 1/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Oracle 分页查询与数据去重 下一篇DDL(数据定义语言)

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目