環(huán)境準備
安裝系統(tǒng)工具
yum install -y yum-utils device-mapper-persistent-data lvm2
安裝git
yum install -y git
安裝Docker
按照企業(yè)標準安裝手冊執(zhí)行,正常情況不用。
添加軟件源信息
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
授予可執(zhí)行權(quán)限
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
下載安裝介質(zhì)
下載地址:
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文件內(nèi)的services可按照本身的運行環(huán)境來調(diào)整,同時注意檢查版本號是否正確,比如說外部已經(jīng)裝好了mysql、redis、inception,就可以將對應的services刪除,但是需要注意修改settings.py文件的相關(guān)配置,具體可以參考修改配置
如果出現(xiàn)services.archery.depends_on contains an invalid type, it should be an array的報錯,則使用1.10.0版本或1.9.1版本的yml文件
表結(jié)構(gòu)初始化
docker exec -ti archery /bin/bash
cd /opt/archery
source /opt/venv4archery/bin/activate
python3 manage.py makemigrations sql
python3 manage.py migrate
數(shù)據(jù)初始化
python3 manage.py dbshell<sql/fixtures/auth_group.sql
python3 manage.py dbshell<src/init_sql/mysql_slow_query_review.sql
創(chuàng)建管理用戶
python3 manage.py createsuperuser
exit回到linux
重啟服務
docker restart archery
日志查看和問題排查
docker logs archery -f --tail=10
logs/archery.log
注:本機本地運行的mysql和docker沖突,一個起需要關(guān)另一個
查看正在運行的docker會發(fā)現(xiàn)一共起了四個容器,進入容器,停止容器:
docker ps
docker exec -it deb0f28d9275 bash
exit
docker stop redis
docker stop archery
...
網(wǎng)頁訪問
http://hostname:9123
功能模塊及插件配置
goinception配置
功能是對修改的數(shù)據(jù)進行備份,需要進入web頁面配置,進入系統(tǒng)管理-配置項管理:
- GO_INCEPTION_HOST:寫本地ip地址即可;
- GO_INCEPTION_PORT:4000(從docker ps也可查看);
- BACKUP_HOST:寫本地ip地址即可,數(shù)據(jù)備份到docker中的MySQL;
- BACKUP_USER:此賬號密碼發(fā)現(xiàn)和當時安裝時創(chuàng)建的superadmin賬號相同;
- BACKUP_PASSWORD:輸入密碼即可。
My2SQL
功能類似于Binlog2SQL,通過多線程以更高的性能快速解析binlog。支持回滾、去除主鍵、去db前綴及分表輸出文件等多種解析模式,并擁有完備的過濾篩選項;支持異步獲取文件,并且通知執(zhí)行結(jié)果。
docker鏡像已包含,無需手動再安裝,只需在web頁面進行配置:
/opt/archery/src/plugins/my2sql
SchemaSync
對比不同數(shù)據(jù)庫的Schema信息,輸出修改語句和回滾語句,SchemaSync不僅限于表結(jié)構(gòu),它可以處理的對象還有:視圖、事件、存儲過程、函數(shù)、觸發(fā)器、外鍵
(v1.7.7以及以上版本無需配置)
SQLAdvisor
功能說明:利用美團SQLAdvisor對收集的慢日志進行優(yōu)化,一鍵獲取優(yōu)化建議。docker鏡像已包含。
在系統(tǒng)管理-配置項管理中修改SQLADVISOR為程序路徑,路徑需要完整,docker部署的修改為:
/opt/archery/src/plugins/sqladvisor
SOAR
SOAR(SQL Optimizer And Rewriter)是一個對SQL進行優(yōu)化和改寫的自動化工具。 由小米人工智能與云平臺的數(shù)據(jù)庫團隊開發(fā)與維護。
在系統(tǒng)管理-配置項管理中修改SOAR_PATH為程序路徑,路徑需要完整,docker部署的修改為:
/opt/archery/src/plugins/soar
修改SOAR_TEST_DSN為測試環(huán)境連接信息
root:123456@hostname:3306/archery
SQLTuning
協(xié)助DBA高效、快速地優(yōu)化語句。
SlowQuery
參考:
https://archerydms.com/modules/sql_optimize/
實例及權(quán)限配置
實例管理-實例列表-添加實例,其中實例使用賬號權(quán)限對應了屬于什么資源組(一般以數(shù)據(jù)庫業(yè)務劃分),一般習慣先在MySQL配置一個賬號后綴_sql,并授予相應權(quán)限,再在配置實例時指定資源組。
用戶權(quán)限可以先指定權(quán)限組,如devops習慣給權(quán)限如下:
官網(wǎng):
https://archerydms.com/
https://github.com/hhyo/archery/wiki/docker