一 部署
1 docker-compose up -d 即可非常方便
2 mysql安装
3 inception安装
二 默认账号
默认用户admin 密码: Yearning_admin
三 web配置
1 系统配置
1 Inception配置->配置链接和备份库信息
2 LDAP配置
3 消息推送 ->配置钉钉和邮件推送
钉钉 添加机器人和webhook(钉钉webhook并不会对SQL工单进行消息推送,需要在数据库中设置)
4 其他(重要)
1 查询最大Limit限制 限制limit条数
2 自定义机房 添加机房
3 排查数据库 (test,mysql,information_schema,performance_schema)
4 可注册邮箱后缀 添加@后缀即可,这里一定要写,否则无法注册成功
5 脱敏字段: 查询时如匹配到对应字段则该字段将只会以******显示
6 多级审核开关: 开:本身将会多一个执行人角色 流程 使用者->管理员->执行人 关: 使用者->管理员->使用者
查询审核开关: 开: 使用者->管理员 关:使用者
(线上环境建议设置关闭,实现研发自助查询)
5 添加数据库
针对机器级别,填写相关1 用户名密码 2 连接名和IP 3 钉钉推送消息
6 添加权限组
DDL权限 DML权限 数据库查询权限 上级审核人(这里要注意,选择相应的连接,全选好像无法进驻相关链接)
7 创建研发小组组长
1 这里要注意,提升为管理员级别(虽然是管理员级别,但是有些配置还是无法去做的)
2 选择上级审核人为自己
3 填写其他相关信息
四 inception相关服务设置
0 ./Inception --defaults-file=inc.cnf & 启动
1 备份库设置请分离出docker,另外一台机器作为数据库提供服务
2 配置文件
1 字符集支持相关信息
inception_support_charset=utf8,utf8mb4
2 不检测表的null列
inception_enable_nullable=1
3 乱码相关行为
character-set-server=utf8
4 DDL相关控制参数
inception_ddl_support=1
inception_osc_min_table_size=300 //通过计算表空间大小来判断是否采用pt-osc执行 单位M
inception_osc_recursion_method=none//不检测延时
inception_osc_max_thread_running=20 //当并发高时暂停执行
5 DML影响行数行为
inception_max_update_rows = 40000 explain DML的影响行数
6 更改变量操作
inception get variables 'variable name' 得到变量
inception set variable_name=value; 设置变量
6 inception用户
GRANT Replication client, REPLICATION SLAVE,SELECT, INSERT, UPDATE, DELETE, CREATE, PROCESS,ALTER,TRIGGER,SUPER,DROP ON *.* TO 'inception_user'@'%' IDENTIFIED BY 'weawe'
7 DDL问题
1 当DDL执行失败再次执行时,存在new表,也可以正常再次执行
2 随时观察进度条,当进度条长期不动时尽快联系DBA进行观察处理
8 inception一些其他问题
1 可见本博客inception 审核规则详解
2 即使备份失败,inception还会正常执行sql语句
五 相关问题和不足
1 权限精度只能针对机器级别,对于混合业务无法有效限制,只能创建多个用户进行操作权限限制
2 DDL操作不能过滤关键字(drop,truncate等),这个非常致命,众所周知,DDL是无法备份的.建议DDL语句由DBA执行.除非能实现关键字过滤,不然太过危险
3 查询功能的延迟检测,当发生延迟或者复制错误时,研发查找从库的数据是不准确的.所以需要一个延时检测功能(强烈不建议在主库直接查询,很多查询会导致性能问题)
六 相关配套功能
1 延迟库,利用inception备份回滚DML操作,利用延迟库的特性回滚DDL操作
2 pt-kill, 利用pt-kill方式干掉由于平台查询导致的慢sql