腾讯围棋2026
76.33MB · 2026-02-04
| 文档版本 | 修改日期 | 修改人 | 备注 |
|---|---|---|---|
| v1.1 | 2026-01-26 | 运维组 | 基于 Archery v1.13.0 |
Archery 是基于 Python Django 开发的 SQL 审核查询平台,旨在提升 DBA 的工作效率,规范 SQL 操作流程。
# 检查环境
docker --version
docker compose version
本次部署采用 All-in-One 的容器化编排方式,包含以下服务:
下载 Releases文件,解压后进入docker-compose文件夹 如果网络受限可访问码云地址: gitee
#解压,切到对应目录
#./archery/src/docker-compose
vim docker-compose.yml
settings.py)运维重点关注配置。
找到./archery/src/docker-compose/archery/settings.py,然后修改:
DATABASE_URL=(str, "mysql://root:@127.0.0.1:3306/archery"),
DATABASES = {
"default": {
**env.db(),
**{
"DEFAULT_CHARSET": "utf8mb4",
"CONN_MAX_AGE": 50,
"OPTIONS": {
"init_command": "SET sql_mode='STRICT_TRANS_TABLES'",
"charset": "utf8mb4",
},
"TEST": {
"NAME": "test_archery",
"CHARSET": "utf8mb4",
},
},
}
}
CACHE_URL=(str, "redis://127.0.0.1:6379/0"),
# 缓存配置
CACHES = {
"default": env.cache(),
}
EMAIL_HOST = 'smtp.exmail.qq.com' # 示例
EMAIL_PORT = 465
EMAIL_HOST_USER = 'dba@yourcompany.com'
EMAIL_HOST_PASSWORD = 'password'
EMAIL_USE_SSL = True
DEFAULT_FROM_EMAIL = 'SQL审计平台 <dba@yourcompany.com>'
# 生产环境必须修改
SECRET_KEY = '生产环境请生成随机复杂字符串'
DEBUG=(bool, False),
ALLOWED_HOSTS=(list, ["*"]),
启动服务
docker compose 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
# 按提示输入用户名(如 admin)、邮箱、密码
访问 ;服务器IP>:9123,使用管理员账号登录。
进入 【系统管理】 -> 【 配置项 管理】 -> 【goInception配置】 。
添加 GoInception 实例 (用于审核执行):
goinception (Docker内部DNS)添加 业务数据库 实例 (用于被审核):
注意配置实例资源组,资源组用于控制该组的成员的权限,而组是用于控制用户的权限。
先配置组的审核流程,再测试
进入 【系统管理】 -> 【 配置项 管理】 -> 【工单审核流配置】 。将目标组配置审批权限组。
提交工单:
CREATE TABLE test_archery (id int primary key);审核与执行:
Execute Successfully。验证结果:
docker logs archery,搜索 SMTP 错误。当出现报错(如 500 错误、SQL 执行卡住)时,排查顺序:
Archery 日志 (Web报错、Celery任务失败):
docker logs --tail 100 -f archery
GoInception 日志 (语法解析错误、连接业务库失败):
docker logs --tail 100 -f goinception
Q: SQL 检测报错 Can't connect to MySQL server on 'xxx'
Q: 点击执行后,工单一直处于“执行中”
Q: 页面显示静态资源丢失 ( CSS / JS 404)
settings.py 中 STATIC_ROOT 或 Nginx 配置问题。Docker 部署一般不需要手动处理,重启容器尝试。需要定期备份 Archery 的元数据(存储了所有工单历史和配置)。
# 备份命令
docker exec archery_mysql mysqldump -uroot -pYourStrongPassword123 archery > /backup/archery_backup_$(date +%F).sql
备份数据库(重要)。
修改 docker-compose.yml 中的镜像版本号。
拉取新镜像:docker compose pull。
重启服务:docker compose up -d。
执行数据库变更(Archery 版本更新常伴随表结构变更):
docker exec -ti archery python3 manage.py migrate