archery SQL审核平台

archery SQL审核平台

项目位置:https://github.com/hhyo/archery

背景

SQL审核是对MySQL语句写法的统一化,标准化,避免因为SQL的不规范、语法错误等导致出现误删、误更新数据、数据库性能下降等问题。早期的人工审核,针对标准这个问题其实是很吃力的,标准越多,DBA越累,开发也越累;因为Inception诞生了,Inception不止是一个自动化审核工 具,同时还具备执行,生成对影响数据的回滚语句等功能。

简介

基于inception的自动化SQL操作平台,支持工单、审核、定时任务、邮件、OSC等功能,还可配置MySQL查询、慢查询管理、会话管理等,将Inception封装成可视化平台,方便开发、运维人员使用。同时集成了部分DB运维功能,如:MySQL优化建议(SQLAdvisorSOAR),MySQL EXPLAIN细化(MySQLTuning),闪回(binlog2sql),慢SQL展示、会话管理、锁等待信息查看等等。项目地址:https://github.com/hhyo/Archery

主要功能

archery平台功能列表

  • 自动审核

发起SQL上线,工单提交,由inception自动审核,审核通过后需要由审核人进行人工审核

  • 人工审核

inception自动审核通过的工单,由其他研发工程师或研发经理来审核,DBA操作执行SQL

为什么要有人工审核?

这是遵循运维领域线上操作的流程意识,一个工程师要进行线上数据库SQL更新,最好由另外一个工程师来把关 很多时候DBA并不知道SQL的业务含义,所以人工审核最好由其他研发工程师或研发经理来审核. 这是archer的设计理念

  • 回滚数据展示

工单内可展示回滚语句,支持一键提交回滚工单

  • 定时执行SQL

审核通过的工单可由DBA选择定时执行,执行前可修改执行时间,可随时终止

  • pt-osc执行

支持pt-osc执行进度展示,并且可以点击中止pt-osc进程

  • MySQL查询

库、表、关键字自动补全 查询结果集限制、查询结果导出、表结构展示、多结果集展示

  • MySQL查询权限管理

基于inception解析查询语句,查询权限支持限制到表级 查询权限申请、审核和管理,支持审核流程配置,多级审核

  • MySQL查询动态脱敏

基于inception解析查询语句,配合脱敏字段配置、脱敏规则(正则表达式)实现敏感数据动态脱敏

  • 慢日志管理

基于percona-toolkit的pt_query_digest分析和存储慢日志,并在web端展现

  • 邮件通知

可配置邮件提醒,对上线申请、权限申请、审核结果等进行通知 对异常登录进行通知

文档

inception的使用规范和说明

goInception的使用文档

archery平台使用文档

archery平台功能列表

MySQL数据库设计规范

docker 方式安装

启动

进入docker-compose文件夹

#启动
docker-compose -f docker-compose.yml up -d

#表结构初始化
docker exec -ti archery /bin/bash
cd /opt/archery
source /opt/venv4archery/bin/activate
python3 manage.py makemigrations sql  
python3 manage.py migrate

#数据初始化
python3 manage.py loaddata initial_data.json

#创建管理用户
python3 manage.py createsuperuser

#重启服务
docker restart archery

#日志查看和问题排查
docker logs archery -f --tail=10
/downloads/log/archery.log

访问

http://172.18.231.123:9123/

导出、导入镜像

docker save -o archery.tar hanchuanchuan/goinception redis:5 mysql:5.7 mongo:3.6 hhyo/inception hhyo/archery

docker load < archery.tar

初始化慢SQL表结构与goinception配置信息

登陆archery数据库

mysql -h172.18.231.123 -P13336 -uroot -p123456 archery

source /mysql/archery/src/init_sql/mysql_slow_query_review.sql

source /mysql/archery/src/init_sql/goinception_param_template.sql

SQLAdvisor

功能说明:利用美团SQLAdvisor对收集的慢日志进行优化,一键获取优化建议,项目地址SQLAdvisor

体验环境

archery SQL审核平台演示

用户 admin admin1234

dbproxy-118:16066/iddbs 或 dbproxy-117:16066/iddbs

普通表 tb_default   <table name="tb_default" dataNode="dn1"/>

全局表 tb_global    <table name="tb_global" dataNode="dn$1-6" type="global"/>

拆分表 tb_sharding  <table name="tb_sharding" dataNode="dn$1-4" rule="mod-long4"/>
posted @ 2022-12-21 10:38  Harda  阅读(938)  评论(0编辑  收藏  举报