首页 > 数据库 >archery SQL审核平台

archery SQL审核平台

时间:2022-12-21 10:45:20浏览次数:71  
标签:archery SQL 查询 MySQL 审核 docker

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"/>

标签:archery,SQL,查询,MySQL,审核,docker
From: https://www.cnblogs.com/harda/p/16995719.html

相关文章

  • MySQL45讲笔记
    MySQL基础架构MySQL架构可大体分为Server层和存储引擎两个部分Server层可分为连接器,分析器,优化器存储引擎层负责数据的存储和提取。其架构模式是插件式的,需要在建表......
  • 基于Java springboot+mybatis+mysql+jsp网上书城管理系统
    @目录一、系统介绍二、功能展示1.主页(客户)2.登陆(客户)3.我的购物车(客户)4.我的订单(客户)5.我的图书(商家)6.新书上架(商家)7.订单管理(商家)7.统计分析(管理员)8.用户管理(用户管理......
  • MySQL高可用工具Orchestrator:复制拓扑的发现
    1、orchestrator如何去发现mysql实例这个涉及到两个参数:HostnameResolveMethod和MySQLHostnameResolveMethodHostnameResolveMethod的值有三个选项:  "cname":通过c......
  • MySQL基于GTID复制模式小结
    一、GTID概念介绍GTID是mysql5.6版本出来的新特性GTID即全局事务ID(globaltransactionidentifier),其保证为每一个在主上提交的事务在复制集群中可以生成一个唯一的I......
  • 基于Spring+SpringMVC+Mybatis+Mysql在线考试系统
    @目录一、系统介绍二、功能展示1.用户登陆2.学生页面3.考试信息(老师)4.试卷库(老师)5.试题库(老师)6.考生信息(老师)7.成绩分析(老师)8.成绩排名(老师)9.错题统计(老师)10.成绩导出(老......
  • Mysql用户及其权限
    一、创建用户createuser'user_name'identifiedby'password';二、用户授权grant[权限名]on数据库名.表名touser_name[withoptiongrant];三、查看数据库中......
  • 基于Springboot+Mybatis+mysql+vue考研规划与交流系统
    @目录一、系统介绍二、功能展示1.主页(普通用户)2.登陆、注册(普通用户)3.复习规划制定(普通用户)4.经验分享交流(普通用户)5.考研学校资讯(普通用户)6.我的文章(普通用户)7.个人信......
  • Navicate for Mysql 中文免费版安装
    1.下载NavicatforMySQ中文破解版链接:https://pan.baidu.com/s/1fG5RfyEsOuyua5yi4Zt-fA提取码:36022.解压压缩包得到两个文件navicat111_mysql_cs_x64.exe、Patch......
  • 使用otter实现数据同步——mysql、oracle的数据同步利器
    文章目录Otter⽬前⽀持了什么整体架构环境准备下载安装修改配置⽂件运⾏ManagerNode配置⼀个同步任务添加canal添加数据源添加数据表配置添加⼀个chan......
  • MySQL Threads Running
    1、 广电告警背景如下: 主机:xxxx:3306,MySQL运行的Thread大于30,请关注,2021-07-1515:30:002、猜测是因为业务量造成?3、mysqlthreadrunning的理解  每秒查询次数(Qu......