sql自动化检查和分析工具 之soar和soar-web 安装和使用体验

为了研究一下sql自动化检查和分析工具,是否有网上介绍的好用,我在本地进行soarsoar-web的安装和使用。

初步的实验结果,总结如下:

1. 安装相对来说较为麻烦,特别是soar-web的依赖包安装,涉及到python pip相关组件的下载安装。

2. 启动soar-web会遇到一些奇怪问题,提示 “ImportError: No module named xxx“ 没有安装,但是通过python -m pip list检查是有安装成功的。

3. soar-web的启动脚本run.sh,不能正常启动;但是使用python./soar-web.py install却可以正常启动。

4. 数据库类型,只支持MySQL一种

后续:

最后,综合感觉,soar-web的功能,距离自动化SQL检查和优化,还有很大空间。接下来,我将继续调研和对比剩下两个工具:see 和 Yearning

1.see 工具

https://github.com/myide/see

2. Yearning 工具

https://github.com/cookieY/Yearning

一 、soar主要步骤,如下:

step 1: 下载安装包

# prepare dir and install
mkdir -p /opt/soft/soar && mkdir -p /opt/install/soar/{log,conf}
wget -O /opt/soft/soar/soar -c https://github.com/XiaoMi/soar/releases/download/0.11.0/soar.linux-amd64

step 2: 复制和安装文件

# install server
mv /opt/soft/soar/soar /opt/install/soar

# 目录介绍:
# 配置文件为yaml格式。一般情况下只需要配置online-dsn, test-dsn, log-output等少数几个参数。即使不创建配置文件SOAR仍然会给出基本的启发式建议。
# 默认文件会按照/etc/soar.yaml, ./etc/soar.yaml, ./soar.yaml顺序加载,
# 找到第一个后不再继续加载后面的配置文件。如需指定其他配置文件可以通过-config参数指定。
# 关于数据库权限online-dsn需要相应库表的SELECT权限,test-dsn需要root最高权限。

# 修改默认配置参数,如下
# 参考
# # 1. 修改soar.conf的基本参数
root >> cat > /opt/install/soar/conf/soar.yaml << EOF
# 线上环境配置
online-dsn:
 addr: CNT7XMYSQLD01:13306
 schema: sakila
 user: root
 password: 1t'sB1g3rt
 disable: false
# 测试环境配置
test-dsn:
 addr: CNT7XMYSQLD01:13307
 schema: test
 user: root
 password: 1t'sB1g3rt
 disable: false
# 是否允许测试环境与线上环境配置相同
allow-online-as-test: true
# 是否清理测试时产生的临时文件
drop-test-temporary: true
# 语法检查小工具
only-syntax-check: false
sampling-statistic-target: 100
sampling: false
# 日志级别,[0:Emergency, 1:Alert, 2:Critical, 3:Error, 4:Warning, 5:Notice, 6:Informational, 7:Debug]
log-level: 7
log-output: ${SOAR_LOG_DIR}/soar.log
# 优化建议输出格式
report-type: markdown
ignore-rules:
- ""
# 黑名单中的 SQL 将不会给评审意见。一行一条 SQL,可以是正则也可以是指纹,填写指纹时注意问号需要加反斜线转义。
blacklist: ${SOAR_CONF_DIR}/soar.blacklist
# 启发式算法相关配置
max-join-table-count: 5
max-group-by-cols-count: 5
max-distinct-count: 5
max-index-cols-count: 5
max-total-rows: 9999999
spaghetti-query-length: 2048
allow-drop-index: false
# EXPLAIN相关配置
explain-sql-report-type: pretty
explain-type: extended
explain-format: traditional
explain-warn-select-type:
- ""
explain-warn-access-type:
- ALL
explain-max-keys: 3
explain-min-keys: 0
explain-max-rows: 10000
explain-warn-extra:
- ""
explain-max-filtered: 100
explain-warn-scalability:
- O(n)
query: ""
list-heuristic-rules: false
list-test-sqls: false
verbose: true
root >> EOF
 step 3: 准备环境变量

# env parameter and path
echo '' >> /etc/profile && \
echo 'SOAR_HOME=/opt/install/soar' >> /etc/profile && \
echo 'SOAR_CONF_DIR=$SOAR_HOME/conf' >> /etc/profile && \
echo 'SOAR_LOG_DIR=$SOAR_HOME/log' >> /etc/profile && \
echo 'PATH=$PATH:$SOAR_HOME' >> /etc/profile && \
source /etc/profile
 step 4: 文件赋予权限

chmod -R 777 $SOAR_HOME/soar
 step 5: 检查soar全局配置生效

# 查看版本
soar -version

# 打印所有的启发式规则
soar -list-heuristic-rules

# 打印支持的报告格式
soar -list-report-types

二 、soar-web主要步骤,如下:

step 1: 安装soar-web的依赖包

# 1.1 安装python3 和 python3-pip 和 gcc (gcc在源代码安装pycryptodome等python组件时候需要)
yum install -y python36 python36-pip gcc

# 检查python3安装结果
python -V
# 检查pip已经安装的python组件
python3 -m pip list
# 卸载pip组件
# python3 -m pip uninstall "packagename"

# 1.2 flask (必须先安装python3)
# 安装教程:https://www.cnblogs.com/wobeinianqing/p/7650498.html
# yum install -y flask
python3 -m pip install flask

# 1.3 安装 pymysql (必须先安装python3)
# 安装教程:https://blog.csdn.net/qq_37788558/article/details/73716002
# 安装教程:https://github.com/PyMySQL/PyMySQL
python3 -m pip install PyMySQL

# 1.4 安装 pycryptodome (必须先安装python3)
python3 -m pip install pycryptodome
# 如果pip下载速度慢,可以用如下命令
#### 或 安装方式2,如下
python3 -m pip install /opt/soft/soar/pycryptodome-3.9.6.tar.gz
#### 或 安装方式3,如下
# 格式 = python3 -m pip install https://pypi.tuna.tsinghua.edu.cn/simple/simple/{包名}
# 格式 = python3 -m pip install https://pypi.doubanio.com/simple/{包名}
python3 -m pip install https://pypi.tuna.tsinghua.edu.cn/simple/pycryptodome-3.9.6.tar.gz

step 2: 安装soar-web

# 2.1 下载soar-web的源代码
wget -O /opt/soft/soar/soar-web-master.zip -c https://codeload.github.com/xiyangxixian/soar-web/zip/master
yum install -y unzip
unzip /opt/soft/soar/soar-web-master.zip -d /opt/soft/soar/

# 2.2 安装soar-web
mkdir -p /opt/install/soar-web && \
mv /opt/soft/soar/soar-web-master/* /opt/install/soar-web
# 运行soar-web
chmod -R 777 /opt/install/soar-web/run.sh
bash /opt/install/soar-web/run.sh

# 2.3 或者如下方法启动soar-web
cd /opt/install/soar-web/
python3 ./soar-web.py install

step 3:检查端口,如下

netstat -nltp | grep 5077

step 4:客户端,访问URL,如下:

地址 = http://{server-ip}:5077

step 5: 配置数据库源

线上环境参数 = 数据库账号:数据库密码@数据库hostname:数据库hostport/数据库实例名称

step 6:测试和使用SQL检查

首先,选择配置参数“mysql-CNT7XMYSQLD01”,然后输入要检查的SQL,如下图:得到检查SQL的结果

总结

到此这篇关于sql自动化检查和分析工具 之soar和soar-web 安装和使用体验的文章就介绍到这了,更多相关sql自动化检查和分析工具内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • MySQL结合使用数据库分析工具SchemaSpy的方法

    近来,我和一帮老客户一起工作,他们让花时间给他们说一下在他们新环境中使用的新工具.其中,我发现的一个非常有用的工具是SchemaSpy. SchemaSpy是Java开发的的工具(要求java 5或更高版本的支持),主要用来分析数据库中数据模型的元数据,并且能生成基于浏览器可视化的显示.通过点击就可了解数据表的层次结构,父子表关系等,主要通过HTML 链接或者实体关系图来表达.它也被设计成用来帮助解决由于约束而导致的数据库关联失败的迟钝错误. 我所喜欢ERD工具所能做的一件事是能快速的生成一个图

  • Mysql自带profiling性能分析工具使用分享

    1. show variables like '%profiling%';(查看profiling信息) 2. set profiling=1;(开启profiling) 3. 执行SQL查询 例:select goods_name from ecs_goods where goods_id <5000; show  profiles; 4. show profile for query 4; show profile 的格式如下: SHOW PROFILE [type [, type] ...

  • mysqlsla慢查询分析工具使用笔记

    且该工具自带相似SQL语句去重的功能,能按照指定方式进行排序(比如分析慢查询日志的时候,让其按照SQL语句执行时间逆排序,就能很方便的定位出问题所在) + ------------- 安装mysqlsla慢查询日志分析工具 ------------- + 复制代码 代码如下: yum -y install perl-ExtUtils-CBuilder perl-ExtUtils-MakeMakeryum -y install perl-DBI perl-DBD-MySQLyum -y insta

  • 五款常用mysql slow log分析工具的比较分析

    启用 slow log 有两种启用方式:1, 在my.cnf 里 通过 log-slow-queries[=file_name] 2, 在mysqld进程启动时,指定--log-slow-queries[=file_name]选项 比较的五款常用工具mysqldumpslow, mysqlsla, myprofi, mysql-explain-slow-log, mysqllogfilter mysqldumpslow, mysql官方提供的慢查询日志分析工具. 输出图表如下: 主要功能是, 统

  • MySQL性能分析工具profile使用教程

    分析SQL执行带来的开销是优化SQL的重要手段.在MySQL数据库中,可以通过配置profiling参数来启用SQL剖析.该参数可以在全局和session级别来设置.对于全局级别则作用于整个MySQL实例,而session级别紧影响当前session.该参数开启后,后续执行的SQL语句都将记录其资源开销,诸如IO,上下文切换,CPU,Memory等等.根据这些开销进一步分析当前SQL瓶颈从而进行优化与调整.本文描述了如何使用MySQL profile,不涉及具体的样例分析. 1.有关profil

  • sql自动化检查和分析工具 之soar和soar-web 安装和使用体验

    为了研究一下sql自动化检查和分析工具,是否有网上介绍的好用,我在本地进行soar 和 soar-web的安装和使用. 初步的实验结果,总结如下: 1. 安装相对来说较为麻烦,特别是soar-web的依赖包安装,涉及到python pip相关组件的下载安装. 2. 启动soar-web会遇到一些奇怪问题,提示 "ImportError: No module named xxx" 没有安装,但是通过python -m pip list检查是有安装成功的. 3. soar-web的启动脚本

  • 10个好用的Web日志安全分析工具推荐小结

    经常听到有朋友问,有没有比较好用的web日志安全分析工具? 首先,我们应该清楚,日志文件不但可以帮助我们溯源,找到入侵者攻击路径,而且在平常的运维中,日志也可以反应出很多的安全攻击行为. 一款简单好用的Web日志分析工具,可以大大提升效率,目前业内日志分析工具比较多,今天推荐十个比较好用的Web日志安全分析工具. 1.360星图 一款非常好用的网站访问日志分析工具,可以有效识别Web漏洞攻击.CC攻击.恶意爬虫扫描.异常访问等行为.一键自动化分析,输出安全分析报告,支持iis/apache/ng

  • .NET Visual Studio 代码性能分析工具

    下面通过图文并茂的方式给大家介绍下,具体内容如下: 软件开发中的性能优化对程序员来说是一个非常重要的问题.一个小问题可能成为一个大的系统的瓶颈.但是对于程序员来说,通过自身去优化代码是十分困难的.幸运的是,有一些非常棒的工具可以帮助程序员进行代码分析和性能测试,从而大大简化程序员进行代码性能优化的过程.MSDN杂志2011年7月份曾发布主题为".NET代码分析工具和技术"的那一期,让广大程序员收获颇丰.四年过去之后,这些工具又进一步做出了很多改进,同时也出现了更多的选择.本文对当前主流

  • .NET  Visual Studio 代码性能分析工具

    下面通过图文并茂的方式给大家介绍下,具体内容如下: 软件开发中的性能优化对程序员来说是一个非常重要的问题.一个小问题可能成为一个大的系统的瓶颈.但是对于程序员来说,通过自身去优化代码是十分困难的.幸运的是,有一些非常棒的工具可以帮助程序员进行代码分析和性能测试,从而大大简化程序员进行代码性能优化的过程.MSDN杂志2011年7月份曾发布主题为".NET代码分析工具和技术"的那一期,让广大程序员收获颇丰.四年过去之后,这些工具又进一步做出了很多改进,同时也出现了更多的选择.本文对当前主流

  • 理解和使用Oracle 8i分析工具LogMiner

    正在看的ORACLE教程是:理解和使用Oracle 8i分析工具LogMiner.Oracle LogMiner 是Oracle公司从产品8i以后提供的一个实际非常有用的分析工具,使用该工具可以轻松获得Oracle 重作日志文件(归档日志文件)中的具体内容,特别是,该工具可以分析出所有对于数据库操作的DML(insert.update.delete等)语句,另外还可分析得到一些必要的回滚SQL语句.该工具特别适用于调试.审计或者回退某个特定的事务. LogMiner分析工具实际上是由一组PL/S

  • PHP调试及性能分析工具Xdebug详解

    程序开发过程中,一般用得最多的调试方法就是用echo.print_r().var_dump().printf()等将语句打印出来.对PHP脚本的执行效率,通常是脚本执行时间.对数据库SQL的效率,通常是数据库Query时间,但这样并不能真正定位和分析脚本执行和数据库查询的瓶颈所在?对此,有一个叫Xdebug(www.xdebug.org)的PHP程序调试器(即一个Debug工具),可以用来跟踪,调试和分析PHP程序的运行状况. 一.以windows平台对此模块的安装做简单的介绍: 1. 下载PH

  • MySQL常用慢查询分析工具详解

    目录 引言 1.调优工具mysqldumpslow 1.1调优工具常用设置 1.2 调优工具常用命令 1.3 慢日志文件分析 2. 调优工具show profile 引言 在日常的业务开发中MySQL 出现慢查询是很常见的 大部分情况下会分为两种情况: 1.业务增长太快 2.要么就是SQL 写的太xx了 所以对慢查询 SQL 进行分析和优化很重要其中 mysqldumpslow 是 MySQL 服务自带的一款很好的分析调优工具 1.调优工具mysqldumpslow 1.1调优工具常用设置 1.

  • MySQL慢查询分析工具pt-query-digest详解

    目录 一.简介 二.安装pt-query-digest 三.pt-query-digest语法及重要选项 四.分析pt-query-digest输出结果 五.用法示例 一.简介 pt-query-digest是用于分析mysql慢查询的一个工具,它可以分析binlog.General log.slowlog,也可以通过SHOWPROCESSLIST或者通过tcpdump抓取的MySQL协议数据来进行分析.可以把分析结果输出到文件中,分析过程是先对查询语句的条件进行参数化,然后对参数化以后的查询进

随机推荐