Inception搭建
Inception安装
Inception是集审核、执行、回滚于一体的一个自动化运维系统,它是根据MySQL代码修改过来的,用它可以很明确的,详细的,准确的审核MySQL的SQL语句,它的工作模式和MySQL完全相同,可以直接使用MySQL客户端来连接,但不需要验证权限,它相对应用程序(上层审核流程系统等)而言,是一个服务器,在连接时需要指定服务器地址及Inception服务器的端口即可,而它相对要审核或执行的语句所对应的线上MySQL服务器来说,是一个客户端,它在内部需要实时的连接数据库服务器来获取所需要的信息,或者直接在在线上执行相应的语句及获取binlog等,Inception就是一个中间性质的服务。
依赖包安装
yum install gcc gcc-c++ cmake bison openssl-devel ncurses-devel git
下载源码包
git clone https://github.com/mysql-inception/inception.git(已经闭源,但是网上还能找到闭源之前的包)
编译安装Inception
mkdir -p /usr/local/inception
mkdir -p /inception/{data,logs}
unzip master.zip -d /inception
cd /inception/inception-master
cmake -DWITH_DEBUG=OFF -DCMAKE_INSTALL_PREFIX=/usr/local/inception -DMYSQL_DATADIR=/inception/data -DWITH_SSL=yes -DCMAKE_BUILD_TYPE=RELEASE -DWITH_ZLIB=bundled -DMY_MAINTAINER_CXX_WARNINGS="-Wall -Wextra -Wunused -Wwrite-strings -Wno-strict-aliasing -Wno-unused-parameter -Woverloaded-virtual" -DMY_MAINTAINER_C_WARNINGS="-Wall -Wextra -Wunused -Wwrite-strings -Wno-strict-aliasing -Wdeclaration-after-statement"
CMake Error: The source "/inception/inception-master/CMakeLists.txt" does not match the source "/opt/inception-master/CMakeLists.txt" used to generate cache
rm -rf CMakeLists.txt再执行
make && make install
创建inception配置文件
--编辑参数文件
vim /etc/inc.cnf
[inception]
general_log=1 #这个参数就是原生的MySQL的参数,用来记录在Inception服务上执行过哪些语句,用来定位一些问题等
general_log_file=/usr/local/inception/data/inception.log #设置general log写入的文件路径
port=6669 #Inception的服务端口
socket=/usr/local/inception/data/inc.socket #Inception的套接字文件存放位置
character-set-server=utf8 #mysql原生参数
#Inception 审核规则
inception_check_autoincrement_datatype=1 #当建表时自增列的类型不为int或者bigint时报错
inception_check_autoincrement_init_value=1 #当建表时自增列的值指定的不为1,则报错
inception_check_autoincrement_name=1 #建表时,如果指定的自增列的名字不为ID,则报错,说明是有意义的,给提示
inception_check_column_comment=1 #建表时,列没有注释时报错
inception_check_column_default_value=0 #检查在建表、修改列、新增列时,新的列属性是不是要有默认值
inception_check_dml_limit=1 #在DML语句中使用了LIMIT时,是不是要报错
inception_check_dml_orderby=1 #在DML语句中使用了Order By时,是不是要报错
inception_check_dml_where=1 #在DML语句中没有WHERE条件时,是不是要报错
inception_check_identifier=1 #打开与关闭Inception对SQL语句中各种名字的检查,如果设置为ON,则如果发现名字中存在除数字、字母、下划线之外的字符时,会报Identifier "invalidname" is invalid, valid options: [a-z,A-Z,0-9,_].
inception_check_index_prefix=1 #是不是要检查索引名字前缀为"idx_",检查唯一索引前缀是不是"uniq_"
inception_check_insert_field=1 #是不是要检查插入语句中的列链表的存在性
inception_check_primary_key=1 #建表时,如果没有主键,则报错
inception_check_table_comment=0 #建表时,表没有注释时报错
inception_check_timestamp_default=0 #建表时,如果没有为timestamp类型指定默认值,则报错
inception_enable_autoincrement_unsigned=1 #自增列是不是要为无符号型
inception_enable_blob_type=0 #检查是不是支持BLOB字段,包括建表、修改列、新增列操作 默认开启
inception_enable_column_charset=0 #允许列自己设置字符集
inception_enable_enum_set_bit=0 #是不是支持enum,set,bit数据类型
inception_enable_foreign_key=0 #是不是支持外键
inception_enable_identifer_keyword=0 #检查在SQL语句中,是不是有标识符被写成MySQL的关键字,默认值为报警。
inception_enable_not_innodb=0 #建表指定的存储引擎不为Innodb,不报错
inception_enable_nullable=0 #创建或者新增列时如果列为NULL,不报错
inception_enable_orderby_rand=0 #order by rand时是不是报错
inception_enable_partition_table=0 #是不是支持分区表
inception_enable_select_star=0 #Select*时是不是要报错
inception_enable_sql_statistic=1 #设置是不是支持统计Inception执行过的语句中,各种语句分别占多大比例,如果打开这个参数,则每次执行的情况都会在备份数据库实例中的inception库的statistic表中以一录存储这次操作的统计情况,每次操作对应一条记录,这条记录中含有的信息是各种类型的语句执行次数情况。
inception_max_char_length=16 #当char类型的长度大于这个值时,就提示将其转换为VARCHAR
inception_max_key_parts=5 #一个索引中,列的最大个数,超过这个数目则报错
inception_max_keys=16 #一个表中,最大的索引数目,超过这个数则报错
inception_max_update_rows=10000 #在一个修改语句中,预计影响的最大行数,超过这个数就报错
inception_merge_alter_table=1 #在多个改同一个表的语句出现是,报错,提示合成一个
#inception 支持 OSC 参数
inception_osc_bin_dir=/user/bin #用于指定pt-online-schema-change脚本的位置,不可修改,在配置文件中设置
inception_osc_check_interval=5 #对应OSC参数--check-interval,意义是Sleep time between checks for --max-lag.
inception_osc_chunk_size=1000 #对应OSC参数--chunk-size
inception_osc_chunk_size_limit=4 #对应OSC参数--chunk-size-limit
inception_osc_chunk_time=0.1 #对应OSC参数--chunk-time
inception_osc_critical_thread_connected=1000 #对应参数--critical-load中的thread_connected部分
inception_osc_critical_thread_running=80 #对应参数--critical-load中的thread_running部分
inception_osc_drop_new_table=1 #对应参数--[no]drop-new-table
inception_osc_drop_old_table=1 #对应参数--[no]drop-old-table
inception_osc_max_lag=3 #对应参数--max-lag
inception_osc_max_thread_connected=1000 #对应参数--max-load中的thread_connected部分
inception_osc_max_thread_running=80 #对应参数--max-load中的thread_running部分
inception_osc_min_table_size=0 # 这个参数实际上是一个OSC的开关,如果设置为0,则全部ALTER语句都走OSC,如果设置为非0,则当这个表占用空间大小大于这个值时才使用OSC方式。单位为M,这个表大小的计算方式是通过语句:"select (DATA_LENGTH + INDEX_LENGTH)/1024/1024 from information_schema.tables where table_schema = 'dbname' and table_name = 'tablename'"来实现的
inception_osc_on=0 #一个全局的OSC开关,默认是打开的,如果想要关闭则设置为OFF,这样就会直接修改
inception_osc_print_none=1 #用来设置在Inception返回结果集中,对于原来OSC在执行过程的标准输出信息是不是要打印到结果集对应的错误信息列中,如果设置为1,就不打印,如果设置为0,就打印。而如果出现错误了,则都会打印
inception_osc_print_sql=1 #对应参数--print
#备份服务器信息,注意改成你的机器.用于回滚。
inception_remote_system_password=P@ssw0rd
inception_remote_system_user=incep_rw
inception_remote_backup_port=3306
inception_remote_backup_host=10.10.3.70
inception_support_charset=utf8 #表示在建表或者建库时支持的字符集,如果需要多个,则用逗号分隔,影响的范围是建表、设置会话字符集、修改表字符集属性等
启动Inception程序
cd /usr/local/inception/bin
./Inception --defaults-file=/etc/inc.cnf &
[1] 11179
[root@b28-11-92 bin]# 2019-06-21 15:00:31 0 [Note] Welcome to use Inception2.1.50
2019-06-21 15:00:31 11179 [Note] Server hostname (bind-address): '*'; port: 6669
2019-06-21 15:00:31 11179 [Note] IPv6 is available.
2019-06-21 15:00:31 11179 [Note] - '::' resolves to '::';
2019-06-21 15:00:31 11179 [Note] Server socket created on IP: '::'.
查看Inception进程
ps -ef | grep Inception
root 11179 30011 0 15:00 pts/1 00:00:00 ./Inception --defaults-file=/etc/inc.cnf
测试
mysql -uroot -h127.0.0.1 -P6669
连接成功后执行 inception get variables;
输出了所有的变量,表示已经启动成功了
Inception搭建的更多相关文章
- Yearning和inception搭建MySQL审核平台
前言 采用开源Yearning和inception开源软件,搭建用于MYSQL审核及线上MYSQL语句更新的审核平台. 功能说明 Yearning: 基于Vue.js与Django的整套mysql-s ...
- 基于Inception搭建MySQL SQL审核平台Yearing
基于Inception搭建MySQL SQL审核平台Yearing Inception 1. Inceptionj简介 2. Inception安装 2.1 下载和编译 2.2 启动配置 Yearni ...
- 一周总结:AutoEncoder、Inception 、模型搭建及下周计划
一周总结:AutoEncoder.Inception .模型搭建及下周计划 1.AutoEncoder: AutoEncoder: 自动编码器就是一种尽可能复现输入信号的神经网络:自动编码器必须捕 ...
- Yearning + Inception SQL审核平台搭建
Yearning 安装: 安装Nginxyum install nginx -y 按照顺序安装MySQLmysql-community-common-5.7.22-1.el6.x86_64.rpmmy ...
- Docker Yearning + Inception SQL审核平台搭建
[一]安装[1.1]系统环境系统环境:CentOS Linux release 7.6.1708 (Core)系统内存:4G系统内核:1Python:3.6.4关闭iptables and selin ...
- 利用 TFLearn 快速搭建经典深度学习模型
利用 TFLearn 快速搭建经典深度学习模型 使用 TensorFlow 一个最大的好处是可以用各种运算符(Ops)灵活构建计算图,同时可以支持自定义运算符(见本公众号早期文章<Tenso ...
- 微调Inception V3网络-对Satellite分类
目录 1. 流程概述 2. 准备数据集 2.1 Satellite数据集介绍 3. Inception V3网络 4. 训练 4.1 基于Keras微调Inception V3网络 4.2 Keras ...
- 1、VGG16 2、VGG19 3、ResNet50 4、Inception V3 5、Xception介绍——迁移学习
ResNet, AlexNet, VGG, Inception: 理解各种各样的CNN架构 本文翻译自ResNet, AlexNet, VGG, Inception: Understanding va ...
- SQL审核 Inception 中小团队快速构建SQL自动审核系统
SQL审核与执行,作为DBA日常工作中相当重要的一环,一直以来我们都是通过人工的方式来处理,效率低且质量没办法保证.为了规范操作,提高效率,我们决定引入目前市面上非常流行的SQL自动审核工具Incep ...
随机推荐
- 腾讯云,搭建python开发环境
准备工作 任务时间:5min ~ 10min Python是一种解释型.面向对象.动态数据类型的高级程序设计语言.首先我们来看看系统中是否已经存在 Python ,并安装一些开发工具包: 安装前准备 ...
- jquery源码分析(五)——Deferred 延迟对象
javascript的异步编程 为什么要使用异步编程? JS是单线程语言,就简单性而言,把每一件事情(包括GUI事件和渲染)都放在一个线程里来处理是一个很好的程序模型,因为这样就无需再考虑线程同步这些 ...
- deepin下使用python遇到的一些情况
1.系统自带python2.7和python3.5,直接运行python默认的是2.7版本的 当然直接运行python的默认版本是可以修改的,参考这里 然后可能需要3.6版本的话,就直接在命令行输入 ...
- BUPT2017 springtraining(15) #3
这里这里 A.签到题 #include <cstdio> double a[] = {0.4, 0.16, 0.063, 0.025, 0.010, 0.004}; int main() ...
- Codeforces 263C. Appleman and Toastman
C. Appleman and Toastman time limit per test 2 seconds memory limit per test 256 megabytes input ...
- 利用C语言中的函数指针实现c++中的虚函数
C语言中的函数指针 #include<stdio.h> int fun1(int a) { return a*a; } int fun2(int a) { return a*a*a; } ...
- 启动spring boot项目
启动spring boot项目 pom.xml如下: <?xml version="1.0" encoding="UTF-8"?> <proj ...
- 使用excel进行数据挖掘(4)---- 突出显示异常值
使用excel进行数据挖掘(4)---- 突出显示异常值 在配置环境后.能够使用excel进行数据挖掘. 环境配置问题可參阅: http://blog.csdn.net/xinxing__8185/a ...
- ubuntu如何完全卸载和安装 Java及android环境?【转】
本文转载自:https://my.oschina.net/lxrm/blog/110638 最近,迷上了java,一时间什么环境变量/虚拟机都猛然袭来,有点不适.环境配置在前,这所自然.平时搞PHP都 ...
- SQL 优化记录
1. 对Where 语句的法则 1.1 避免在WHERE子句中使用in,not in,or 或者having. 可以使用 exist 和not exist代替 in和not in. 可以使用表链接代 ...