一 关于 Archery

多数据库的 SQL 上线和查询平台。

提供了 SQL 查询、审核、执行、备份等基础功能,同时提供了丰富的 MySQL 运维功能,所有功能都兼容手机端操作。

基于archer二次开发,采用 python 语言实现。

官网:https://archerydms.com

二 功能清单

数据库 查询 审核 执行 备份 数据字典 慢日志 会话管理 账号管理 参数管理 数据归档
MySQL
MsSQL × × × × × × ×
Redis × × × × × × × ×
PgSQL × × × × × × × ×
Oracle × × × × ×
MongoDB × × × × × × ×
Phoenix × × × × × × × ×
ODPS × × × × × × × × ×
ClickHouse × × × × × × ×

三 部署安装

docker 部署

手动部署

升级说明

四 功能

1 SQL 审核

1.1 SQL 上线

该处可以看到所有提交的 SQL 上线工单信息,也可以提交新的 SQL。

  • 提交 SQL

  • 操作日志

  • SQL 上线详情

1.2 SQL 分析

选择*.sql 文件,可以自动解析 sql 语句,点击开始分析后等待分析即可。

分析完成后,可点击查看按钮,查看分析的结构。

2 SQL 查询

2.1 在线查询

可以查看 SQL 的执行计划。

2.2 数据字典

可以在此处查看数据库表的具体信息,根据表名排序进行展示表名列表。

2.3 权限管理

在此处申请查询权限,权限级别可以为database,也可以为table,权限周期可选范围:一天、一周、一月、长期(一年)。

3 SQL 优化

3.1 优化工具

如下图所示,可以输入 SQL 获取优化建议。

3.2 慢查日志

此处可以展示慢日志统计与慢日志明细。

4 实例管理

4.1 实例列表

可以添加实例,支持不同类型的实例添加,这里只测试了 mysql、redis。

  • mysql

    添加 mysql 实例,需要添加以下内容:

    实例名称、实例类型(主从库)、数据库类型(选择 mysql)、实例连接(ip)、端口(端口号)、实例标签。

  • redis

    添加 redis 实例,需要添加以下内容:

    实例名称、实例类型、数据库类型(选择 redis)、实例连接、端口、密码(若设置了密码)、实例标签。

特别说明

mysql 实例无需添加 database,archery 根据 mysql 用户判断是否可以操作那些 database,由于拥有丰富的 mysql 运维功能,使用 root 账户或者权限较高的账户对 archery 来说更加方便。

4.2 会话管理

会话管理,只支持 mysql。

可以查看进程状态Top表空间事务信息锁信息

使用该功能时,需要先在右上角选择 mysql 实例,才可以进行查询。

4.3 数据库管理

左上角选择了 mysql 实例后,页面中会展示当前 mysql 实例用户中拥有权限的 database。

也可以在此处进行创建 database。

4.4 账号管理

在左上角选择了 mysql 实例后,可以查看目前已存在的 mysql 账号,也可以对原有账号进行编辑、授权、改密、删除,也可以新增 mysql 账号。

编辑功能实际只能添加备注,无其他可编辑信息。

授权功能支持的授权类型:全局授权、库授权、表授权、列授权。

4.5 参数配置

可修改实例动态参数并记录修改历史,暂未发现其他有用的修改内容,该功能使用说明待后续补充。

5 工具插件

6 系统管理

6.1 配置项管理

6.1.1 系统设置

系统设置详见官方使用文档

6.1.2 工单审核流设置

6.2 资源组管理

可以在该处进行资源组添加与管理。

新增资源组后,可关联对象,分为用户、实例两种类型。

6.3 其他配置管理

6.3.1 用户管理

可以添加用户,为用户选择组,分配组后即拥有该组下的所有权限,除该组权限外,还可单独为该用户分配权限,除权限外还可以为用户分配资源组。

6.3.2 权限组管理

可在该处进行权限组修改或者添加新的权限组。

6.3.3 全部后台数据

7 其他配置

7.1 脱敏配置

7.1.1 脱敏字段配置

除字段描述外,均为必填项。

7.1.2 脱敏规则配置