暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

数据库自动化运维利器-解放DBA的自动化SQL审核平台

运维路书 2023-10-07
797



DBA的日常工作往往是琐碎的,数据库不是每天都调整架构的。高可用集群搭建好之后,可能很长时间都不会去动它,一旦需要动它了那一定是出现大的故障或者有大的调整了。

数据库更新上线是最频繁的工作,也是最繁琐的。如果每次都是一台台的去登录数据库,每次去执行开发邮件发来的SQL脚本,其实挺崩溃的。

本期介绍一款自己正在使用的开源数据库自动化运维的工具,能够在线审核SQL、审批、上线、退回、授权开发查询指定数据库等功能。对于日常的数据库上线更新来说是非常解放DBA的,最重要的是开源产品,有能力的运维团队还可以进行二次开发。




正在使用的这款数据库的SQL审核查询平台是Archery

github地址:

https://github.com/hhyo/Archery


目前已经有5K多个Star





支持类型


支持多种数据库类型





主要功能介绍


Dashboard 总览




SQL审核上线




这里做了点改动,增加了工单号,更方便查找需要操作的工单。

后台是用Python开发的,有Python基础的DBA可以自己修改一些功能


大表的DDL操作支持gh-ost和pt-online-schema-change,避免DDL阻塞正常的sql。


支持自定义审批层级,可以一层或者多层审批。


上线SQL支持在线回滚,像update和delete这类SQL,上线时选择备份SQL,可以选择随时回滚操作。


SQL查询


可以给开发人员开通查询权限,对于一些有查询线上数据的需求来说,还是很方便的。同时,还保留了查询记录,用于审核。







功能依赖


服务端

Python3

Django

django-q


Mysql审核/执行/备份

goinception


大表DDL

gh-ost/pt-online-schema-change





快速部署


Docker快递安装部署

  • 安装Docker


      curl -fsSL https://get.docker.com -o get-docker.sh | sudo sh



    • 安装Docker Compose

      sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o usr/local/bin/docker-compose
      sudo chmod +x usr/local/bin/docker-compose
      • 配置文件

        [root@xxxx docker-compose]# pwd
        /root/Archery-1.10.0/src/docker-compose
        [root@xxxx docker-compose]# tree
        .
        ├── archery
        │   ├── docs.md
        │   ├── downloads
        │   │   ├── binlog2sql
        │   │   └── schemasync
        │   ├── keys
        │   ├── logs
        │   │   ├── archery.log
        │   │   ├── qcluster.log
        │   │   └── supervisord.log
        │   ├── settings.py
        │   ├── soar.yaml
        │   └── sql
        │       └── migrations
        ├── docker-compose_archery.yml
        ├── docker-compose.yml
        ├── inception
        │   └── config.toml
        ├── mysql
        │   └── my.cnf
        └── nginx
           └── nginx.conf
        • 启动

        下载 Releases文件,解压后进入archery/src/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 dbshell<sql/fixtures/auth_group.sql
          python3 manage.py dbshell<src/init_sql/mysql_slow_query_review.sql


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


          #重启服务
          docker restart archery


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


          • 访问

          http://127.0.0.1:9123


          具体的配置文件详解,请参照官方文档。


          总之,这是解放DBA的一大利器。使得DBA可以抽身去关注比较重要的东西,不用每天都陷在上线更新这个事情上。




          文章转载自运维路书,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

          评论