环境准备
安装系统工具
yum install -y yum-utils device-mapper-persistent-data lvm2
安装git
yum install -y git
安装Docker
按照企业标准安装手册执行,正常情况不用。
添加软件源信息
yum-config-manager --add-repo https://mirrors.h****n.com/package/setting/docker-ce.repo
yum clean all
yum makecache fast
安装docker-CE
yum -y install docker-ce
安装docker-compose
yum -y install docker-compose
授予可执行权限
chmod +x /usr/bin/docker-compose
启动
systemctl start docker
mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors":["https://docker.h****n.com"]
}
EOF
systemctl daemon-reload
systemctl restart docker
安装Archery
下载安装介质
下载地址:
https://github.com/hhyo/archery/releases/
选择.tar.gz包下载,之后上传到服务器/app/目录下
解压
tar xf Archery-1.9.1.tar.gz
启动
进入解压目录后,再进入src子目录,再进入docker-compose子目录
用docker部署archery
cd /app/Archery-1.9.1/src/docker-compose
docker-compose -f docker-compose.yml up -d
docker ps
docker-compose.yml文件内的services可按照本身的运行环境来调整,同时注意检查版本号是否正确,比如说外部已经装好了mysql、redis、inception,就可以将对应的services删除,但是需要注意修改settings.py文件的相关配置,具体可以参考修改配置
如果出现services.archery.depends_on contains an invalid type, it should be an array的报错,则使用1.10.0版本或1.9.1版本的yml文件
表结构初始化
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
exit回到linux
重启服务
docker restart archery
日志查看和问题排查
docker logs archery -f --tail=10
logs/archery.log
注:本机本地运行的mysql和docker冲突,一个起需要关另一个
查看正在运行的docker会发现一共起了四个容器,进入容器,停止容器:
docker ps
docker exec -it deb0f28d9275 bash
exit
docker stop redis
docker stop archery
...
网页访问
http://hostname:9123
功能模块及插件配置
goinception配置
功能是对修改的数据进行备份,需要进入web页面配置,进入系统管理-配置项管理:
- GO_INCEPTION_HOST:写本地ip地址即可;
- GO_INCEPTION_PORT:4000(从docker ps也可查看);
- BACKUP_HOST:写本地ip地址即可,数据备份到docker中的MySQL;
- BACKUP_USER:此账号密码发现和当时安装时创建的superadmin账号相同;
- BACKUP_PASSWORD:输入密码即可。
My2SQL
功能类似于Binlog2SQL,通过多线程以更高的性能快速解析binlog。支持回滚、去除主键、去db前缀及分表输出文件等多种解析模式,并拥有完备的过滤筛选项;支持异步获取文件,并且通知执行结果。
docker镜像已包含,无需手动再安装,只需在web页面进行配置:
/opt/archery/src/plugins/my2sql
SchemaSync
对比不同数据库的Schema信息,输出修改语句和回滚语句,SchemaSync不仅限于表结构,它可以处理的对象还有:视图、事件、存储过程、函数、触发器、外键
(v1.7.7以及以上版本无需配置)
SQLAdvisor
功能说明:利用美团SQLAdvisor对收集的慢日志进行优化,一键获取优化建议。docker镜像已包含。
在系统管理-配置项管理中修改SQLADVISOR为程序路径,路径需要完整,docker部署的修改为:
/opt/archery/src/plugins/sqladvisor
SOAR
SOAR(SQL Optimizer And Rewriter)是一个对SQL进行优化和改写的自动化工具。 由小米人工智能与云平台的数据库团队开发与维护。
在系统管理-配置项管理中修改SOAR_PATH为程序路径,路径需要完整,docker部署的修改为:
/opt/archery/src/plugins/soar
修改SOAR_TEST_DSN为测试环境连接信息
root:123456@hostname:3306/archery
SQLTuning
协助DBA高效、快速地优化语句。
SlowQuery
参考:
https://archerydms.com/modules/sql_optimize/
实例及权限配置
实例管理-实例列表-添加实例,其中实例使用账号权限对应了属于什么资源组(一般以数据库业务划分),一般习惯先在MySQL配置一个账号后缀_sql,并授予相应权限,再在配置实例时指定资源组。
用户权限可以先指定权限组,如devops习惯给权限如下:
官网:
https://archerydms.com/
https://github.com/hhyo/archery/wiki/docker