一 部署
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