diff --git a/docs/deploy-manual/config.md b/docs/deploy-manual/config.md index b60489e83..3729505c3 100644 --- a/docs/deploy-manual/config.md +++ b/docs/deploy-manual/config.md @@ -41,7 +41,7 @@ dms: - db_type: MySQL logo_path: "/logo/mysql.png" params: - - db_type: Postgres + - db_type: PostgreSQL logo_path: "/static/logo/pg.png" params: - db_type: Oracle diff --git a/docs/support/compare.md b/docs/support/compare.md index 4f91b36e3..68e58237f 100644 --- a/docs/support/compare.md +++ b/docs/support/compare.md @@ -580,10 +580,10 @@ title: 功能对比 MyBatis √ - - √ - + √ + √ + √ 阿里RDS MySQL慢日志 @@ -636,11 +636,11 @@ title: 功能对比 其他 规则数量 - 155 - 122 + 175 146 - 117 - 119 + 162 + 150 + 153 @@ -662,7 +662,7 @@ title: 功能对比 √ √ √ - + √ √ √ @@ -671,7 +671,7 @@ title: 功能对比 √ √ √ - + √ √ √ @@ -680,7 +680,7 @@ title: 功能对比 √ √ - + √ √ @@ -689,7 +689,7 @@ title: 功能对比 √ √ √ - + √ √ @@ -698,7 +698,7 @@ title: 功能对比 √ √ - + √ √ @@ -708,7 +708,7 @@ title: 功能对比 √ - + √ √ @@ -735,7 +735,7 @@ title: 功能对比 √ √ √ - + √ √ @@ -750,12 +750,12 @@ title: 功能对比 MyBatis - - - - - - + √ + √ + √ + √ + √ + √ 阿里RDS MySQL慢日志 @@ -814,10 +814,10 @@ title: 功能对比 其他 规则数量 - 85 + 114 83 60 - 21 + 72 23 83 diff --git a/docs/user-manual/allinstance.md b/docs/user-manual/allinstance.md new file mode 100644 index 000000000..a92faeb95 --- /dev/null +++ b/docs/user-manual/allinstance.md @@ -0,0 +1,15 @@ +--- +title: 全局数据源管理 +--- +# 全局数据源管理 + +* 当需要对多个项目中的数据源进行统一修改或查看时,此功能可以帮助迅速定位并进行操作。 +* 当需要进行跨项目管理工作时,可以使用该功能,确保对数据源的分布和配置情况一目了然,实现更高效的数据源管理和项目协调。 + + +## 使用步骤 + +* 导航至全局设置,选择数据源管理页面,以访问平台管理的所有数据源列表。 +* 利用提供的筛选工具,根据项目需求或特定条件,精确筛选出您关注的数据源。 + +![instancelist](img/instancelist.png) \ No newline at end of file diff --git a/docs/user-manual/img/instancelist.png b/docs/user-manual/img/instancelist.png new file mode 100644 index 000000000..753f11b55 Binary files /dev/null and b/docs/user-manual/img/instancelist.png differ diff --git a/docs/user-manual/project/audit_task/baiduyunrds.md b/docs/user-manual/project/audit_task/baiduyunrds.md index eaa393078..4da2847fa 100644 --- a/docs/user-manual/project/audit_task/baiduyunrds.md +++ b/docs/user-manual/project/audit_task/baiduyunrds.md @@ -1,38 +1,40 @@ --- title: 百度云RDS慢日志扫描 --- -本节介绍如何在SQLE平台监管百度云RDS实例上产生的慢SQL。 +当使用百度云RDS实例,并且想要监管实例上产生的慢SQL,可以通过创建一个百度云RDS慢日志扫描任务来实现。该任务将会定期扫描百度云RDS实例上的慢日志,并将扫描结果发送到SQLE中进行分析。 + ### 支持的数据源类型 * MySQL -### 使用场景 -如果用户使用百度云RDS实例,并且想要监管实例上产生的慢SQL,可以通过创建一个百度云RDS慢日志扫描任务来实现。该任务将会定期扫描百度云RDS实例上的慢日志,并将扫描结果发送到SQLE中进行分析。 - ### 前置操作 * 用户需创建双机高可用版本的百度云RDS实例; * 对该实例开通慢日志; +* 已在平台添加对应数据源。 ![baiduyunrds](img/baiduyunrds.png) -### 操作步骤 -新建智能扫描任务 -* 任务名称:输入审核任务名称,必须以字母开头; -* 数据源名称:指定扫描任务实施的数据源; -* 数据库:填写需要审核的目标库,若不填则仅进行静态分析不会连库; -* 数据库类型:根据选取的数据源呈现; -* 任务类型:选择需要执行的审核任务类型,选择`百度云RDS MySQL慢日志`; +### 步骤一 开启百度云慢日志扫描类型 + +在SQL管控配置中为数据源开启智能扫描,扫描类型选择“百度云慢日志扫描”,并填写以下字段信息: + * 实例ID:填写百度云RDS实例的ID。 * Access Key:为账号安全认证中的Access Key,用于登录百度云RDS,需要与Secret Key一同使用。 * Access Secret Key:账号安全认证中Access Key对应的Secret Key。 * 启动任务时拉取慢日志时间范围(单位:小时,最大7天):扫描任务读取慢日志的时间范围,单位为小时,最大范围为7天。 * 审核过去时间段内抓取的SQL(分钟): 审核该时间段内抓取到的慢SQL。 * RDS Open API地址:RDS的地址前缀,用以调用RDS服务,需根据实例所在区域进行填写。如当前实例在华东-上海范围,则应填写rds.fsh.baidubce.com +* 审核规则模板:选择对应的审核规则模板; + + +以下为百度云RDS Open API地址参考: ![baiduyunrdsurl](img/baiduyunrdsurl.png) -点击`提交`,完成扫描任务创建。 +点击`提交`,完成数据源上的百度云慢日志SQL扫描任务配置。 + + +### 步骤二 获取采集结果及审核结果 +在扫描详情中查看采集的百度云慢日志SQL信息及审核结果。 + -### 执行结果 -* 用户进入扫描任务详情,可以查看扫描任务抓取到的慢SQL。 -* 点击`立即审核`,可查看对慢SQL的审核结果。 diff --git a/docs/user-manual/project/audit_task/huaweiyunrds.md b/docs/user-manual/project/audit_task/huaweiyunrds.md index 19ec04bde..7af4121ee 100644 --- a/docs/user-manual/project/audit_task/huaweiyunrds.md +++ b/docs/user-manual/project/audit_task/huaweiyunrds.md @@ -2,44 +2,37 @@ title: 华为云RDS慢日志扫描 --- +当使用华为云RDS实例,并且希望监管实例上产生的慢SQL时,可以通过创建华为云RDS慢日志扫描任务实现。该任务会定期扫描华为云RDS实例上的慢日志,并将扫描结果发送到SQLE平台进行分析。 -本节介绍如何通过华为云SQLE平台监管华为云RDS实例上产生的慢SQL,并进行相应的分析和审核。 -## 支持的数据源类型 +### 支持的数据源类型 * MySQL -## 使用场景 - -如果用户正在使用华为云RDS实例,并且希望监管实例上产生的慢SQL,可以通过创建华为云RDS慢日志扫描任务实现。该任务会定期扫描华为云RDS实例上的慢日志,并将扫描结果发送到SQLE平台进行分析。 - -## 前置操作 +### 前置操作 在进行以下操作之前,请确保已完成以下步骤: * 创建华为云RDS实例,并获取实例的项目ID和实例ID。 * 开启慢日志明文显示,并设置慢查询时间阈值。参考[华为云用户手册](https://support.huaweicloud.com/usermanual-rds/rds_mysql_slow_query_log.html)。 * 获取访问密钥。访问密钥文件需要下载至本地查看。参考[华为云用户手册](https://support.huaweicloud.com/usermanual-ca/zh-cn_topic_0046606340.html)。 +* 在平台添加对应数据源。 + + + +### 步骤一 开启华为云慢日志扫描类型 -## 操作步骤 -新建智能扫描任务 +在SQL管控配置中为数据源开启智能扫描,扫描类型选择“华为云慢日志扫描”,并填写以下字段信息: -* 任务名称:输入审核任务名称,必须以字母开头; -* 数据源名称:指定扫描任务实施的数据源; -* 数据库:填写需要审核的目标库,若不填则仅进行静态分析不会连库; -* 数据库类型:根据选取的数据源呈现; -* 任务类型:选择需要执行的审核任务类型,选择`华为云RDS MySQL慢日志`; * 项目ID:实例所在项目ID; * 实例ID:实例ID; * Access Key ID:在步骤3中获取的访问密钥 ID; * Access Key Secret:在步骤3中获取的访问密钥Secret; * 启动慢日志时拉取慢日志时间范围(小时):由于开启明文显示后,华为云平台会自动删除30天前的日志,所以时间范围上限是30天; -* 当前API开放的地区:参考[华为云用户手册](https://developer.huaweicloud.com/endpoint?RDS); +* 当前RDS实例所在实例:参考[华为云用户手册](https://developer.huaweicloud.com/endpoint?RDS); +* 审核规则模板:选择对应的审核规则模板; -点击`提交`,完成扫描任务创建。 +点击`提交`,完成数据源上的华为云慢日志SQL扫描任务配置。 -## 执行结果 -* 用户进入扫描任务详情,可以查看扫描任务抓取到的慢SQL。 -* 点击`立即审核`,可查看对慢SQL的审核结果。 -以下是华为云RDS慢日志扫描示意图: -![huaweiyunrds](./img/huaweiyunrds.png) \ No newline at end of file +### 步骤二 获取采集结果及审核结果 +在扫描详情中查看采集的华为云慢日志SQL信息及审核结果。 \ No newline at end of file diff --git a/docs/user-manual/project/audit_task/img/huaweiyunrds.png b/docs/user-manual/project/audit_task/img/huaweiyunrds.png deleted file mode 100644 index 677203d0e..000000000 Binary files a/docs/user-manual/project/audit_task/img/huaweiyunrds.png and /dev/null differ diff --git a/docs/user-manual/project/audit_task/img/metadata-list.png b/docs/user-manual/project/audit_task/img/metadata-list.png index 275b5495e..4a5a62c3d 100644 Binary files a/docs/user-manual/project/audit_task/img/metadata-list.png and b/docs/user-manual/project/audit_task/img/metadata-list.png differ diff --git a/docs/user-manual/project/audit_task/img/metadata-result.png b/docs/user-manual/project/audit_task/img/metadata-result.png deleted file mode 100644 index db42fd082..000000000 Binary files a/docs/user-manual/project/audit_task/img/metadata-result.png and /dev/null differ diff --git a/docs/user-manual/project/audit_task/img/processlist-audit.png b/docs/user-manual/project/audit_task/img/processlist-audit.png index 2488d94d8..be1377453 100644 Binary files a/docs/user-manual/project/audit_task/img/processlist-audit.png and b/docs/user-manual/project/audit_task/img/processlist-audit.png differ diff --git a/docs/user-manual/project/audit_task/img/slowlog-result.png b/docs/user-manual/project/audit_task/img/slowlog-result.png deleted file mode 100644 index 8f96a8e26..000000000 Binary files a/docs/user-manual/project/audit_task/img/slowlog-result.png and /dev/null differ diff --git a/docs/user-manual/project/audit_task/img/slowlog-result2.png b/docs/user-manual/project/audit_task/img/slowlog-result2.png deleted file mode 100644 index 2f316fc74..000000000 Binary files a/docs/user-manual/project/audit_task/img/slowlog-result2.png and /dev/null differ diff --git a/docs/user-manual/project/audit_task/img/slowlog_list.png b/docs/user-manual/project/audit_task/img/slowlog_list.png new file mode 100644 index 000000000..d0d1bb4c7 Binary files /dev/null and b/docs/user-manual/project/audit_task/img/slowlog_list.png differ diff --git a/docs/user-manual/project/audit_task/intro.md b/docs/user-manual/project/audit_task/intro.md index ed1aa3ce0..f19ffd3dc 100644 --- a/docs/user-manual/project/audit_task/intro.md +++ b/docs/user-manual/project/audit_task/intro.md @@ -3,34 +3,22 @@ title: 功能说明 --- # 功能介绍 -### 背景 -在审核工单中我们介绍了如何通过 SQLE 进行 SQL 审核并上线的流程。审核工单管理,主要解决 SQL 上线的规范化流程化的问题,它能够帮助 DBA 自动化处理整个 SQL 上线过程中一些重复繁琐的工作。 - -不过审核工单管理也有它的局限性。 - -* 第一,通常工单中的审核是一次性操作。上线后,通常还会有业务 SQL访问数据库。这时可能会遇到一些执行效率较低的业务 SQL 造成数据库的性能问题,因而这类业务型SQL同样需要审核。 -* 第二,临近发版,如果这时审核出 SQL 存在一些问题,是否修复这些问题,可能会受到很多因素的影响(如 SQL 问题的影响面大小,项目发版的紧急程度等),因而需要对即将上线的SQL做全量扫描。 - -因而,需要引入扫描任务,进行周期性的SQL审核,用以补充工单审核覆盖不到的场景。 - -### SQLE扫描任务支持的采集模式 -#### 1.SQLE 自动抓取 -* 功能说明 - * 使用SQLE自动抓取,将由SQLE获取指定的SQL文件,传输至指定审核池后,由SQLE进行审核并展示审核结果。 -* 支持的任务类型 - * 库表元数据 - * TopSQL - * processlist列表 -#### 2.Scanner 抓取 -* 功能说明 - * 使用Scanner抓取,可利用scanner插件获取指定的SQL文件,传输至指定审核池后,由SQLE进行审核并展示审核结果。 -* 支持的任务类型 - * 慢日志 - * Mybatis扫描 -#### 3.OpenAPI 推送 -* 功能说明 - * 使用应用程序SQL抓取,可利用api接口动态获取指定应用程序中的SQL,传输至指定审核池后,由SQLE进行审核并展示审核结果。 -* 支持的任务类型 - * openapi推送 - * 自定义 + + +我们通过SQLE工具实现了SQL审核与上线的标准化流程。这一流程不仅提升了数据库管理的效率,而且通过自动化手段减轻了数据库管理员(DBA)在SQL上线过程中处理重复性任务的负担。 + +尽管审核工单在规范化SQL上线流程方面发挥了重要作用,但它也存在一些局限性: + +* 一次性审核的局限:审核工单通常只针对单次操作进行审核。然而,上线后的SQL可能在实际业务运行中遇到性能瓶颈,这要求对业务SQL进行持续的审核与优化。 +* 发版前的挑战:在临近版本发布时,如果发现SQL存在问题,决策过程可能会受到多种因素的制约,例如问题的影响范围和项目紧急程度。这要求我们在SQL上线前,针对测试环境针对数据库运行性能进行全面的扫描和审核。 + +为了弥补审核工单管理的不足,我们还引入了周期性的SQL审核任务。这种持续的审核机制可以: + +* 补充审核盲区:覆盖工单审核未能触及的业务场景,确保SQL的持续优化和性能监控。 +* 提前发现问题:在SQL上线前进行全面扫描,以便及时发现并解决潜在的性能问题,减少上线后的风险。 + +通过这种综合的审核策略,我们可以更有效地维护数据库的稳定性和正确性,同时提高SQL上线的质量和效率。 + +此外,企业版用户还可以通过SQL管控功能,对采集到的SQL做集中统一的处理,追溯问题SQL的产生及后续解决方式,从而实现高效的SQL管理。 + diff --git a/docs/user-manual/project/audit_task/java_agent_audit.md b/docs/user-manual/project/audit_task/java_agent_audit.md index 1e2abe275..3a6661742 100644 --- a/docs/user-manual/project/audit_task/java_agent_audit.md +++ b/docs/user-manual/project/audit_task/java_agent_audit.md @@ -4,13 +4,7 @@ title: Java探针版应用程序SQL抓取【企业版】 本节介绍如何利用SQLE平台抓取java应用中的SQL,选取的例子是一个[开源的问卷调查java应用](https://gitee.com/surveyking/surveyking),架构简单,上手相对容易。 ## 支持的数据源类型 -* MySQL -* Oracle -* DB2 -* OceanBase for MySQL -* PostgreSQL -* TiDB -* SQL Server +* All ## 前置准备 @@ -51,7 +45,10 @@ total 55652 ## 使用方式 ### 创建扫描任务 -进入智能扫描任务列表,点击新建,扫描任务类型选择应用程序SQL抓取。 +在SQL管控配置中为数据源开启智能扫描,扫描类型选择“应用程序SQL抓取”,并填写以下字段信息: +* 审核规则模板:选择对应的审核规则模板; + +点击`提交`,完成数据源上的应用程序SQL抓取扫描任务配置。 ### 启动Java应用 :::tip diff --git a/docs/user-manual/project/audit_task/java_application_audit.md b/docs/user-manual/project/audit_task/java_application_audit.md index 4267b284a..4515f0941 100644 --- a/docs/user-manual/project/audit_task/java_application_audit.md +++ b/docs/user-manual/project/audit_task/java_application_audit.md @@ -65,7 +65,10 @@ rm -rf jar/ ## 使用方式 ### 创建扫描任务 -进入智能扫描任务列表,点击新建,扫描任务类型选择应用程序SQL抓取。 +在SQL管控配置中为数据源开启智能扫描,扫描类型选择“应用程序SQL抓取”,并填写以下字段信息: +* 审核规则模板:选择对应的审核规则模板; + +点击`提交`,完成数据源上的应用程序SQL抓取扫描任务配置。 ### 启动Java应用 :::tip diff --git a/docs/user-manual/project/audit_task/metadata_audit.md b/docs/user-manual/project/audit_task/metadata_audit.md index 3b8ed3261..e23808c89 100644 --- a/docs/user-manual/project/audit_task/metadata_audit.md +++ b/docs/user-manual/project/audit_task/metadata_audit.md @@ -3,42 +3,34 @@ title: 库表元数据 --- # 库表元数据 -本节介绍库表元数据扫描的应用场景、以及如何创建库表元数据的扫描任务。 + +当您需要检查已上线业务对应数据源的建表、建视图语句是否符合统一的SQL质量规范,或需要定期检查上线业务的库表变更是否符合统一的SQL质量规范时,您可以对数据源开启库表扫描,获得SQL与审核建议。 ### 支持的数据源类型 * MySQL * DB2 * TDSQL +* PostgreSQL -### 使用场景: - -1. 需要检查已上线业务对应数据源的建库建表语句是否符合 统一的SQL质量规范。 -2. 需要定期检查上线业务的库表变更是否符合 统一的SQL质量规范。 ### 前置条件 已添加对应数据源。 -### 操作步骤 -1. 新建智能扫描任务 -* 任务名称:输入审核任务名称,必须以字母开头; -* 数据源名称:指定扫描任务实施的数据源; -* 数据库:填写需要审核的目标库,若不填则仅进行静态分析不会连库; -* 数据库类型:根据选取的数据源呈现; -* 任务类型:选择需要执行的审核任务类型,选择库表元数据; -* 采集周期(分钟):将采集设定时间内产生的SQL; +### 步骤一 开启库表扫描类型 + +在SQL管控配置中为数据源开启智能扫描,扫描类型选择“库表扫描”,并填写以下字段信息: + +* 采集周期:指定SQLE每隔多久采一次SQL * 是否采集视图信息:默认不采集视图信息,若开启,则将一并扫描数据源上的视图SQL; -* 审核规则模板:如果未指定此项会优先使用数据源绑定的模板; -* 任务审核周期:配置的是SQLE对审核任务进行自动审核的执行时间; +* 审核规则模板:选择对应的审核规则模板; -2. 进入扫描任务详情页,刷新,获得SQL采集结果 +点击`提交`,完成数据源上的库表SQL扫描任务配置。 -### 执行结果 -在扫描任务列表页面查看新建的库表元数据扫描任务。 -![list](img/metadata-list.png) -在扫描任务详情中查看该扫描任务采集的SQL,及生成的扫描任务报告。 -![result](img/metadata-result.png) +### 步骤二 获取采集结果及审核结果 +在扫描详情中查看采集的库表SQL信息及审核结果。 +![list](img/metadata-list.png) ### 后续步骤 * 查看审核记录,查看不同时间点的审核结果,包括审核的SQL语句、审核结果。 diff --git a/docs/user-manual/project/audit_task/processlist_audit.md b/docs/user-manual/project/audit_task/processlist_audit.md index b84a09ec7..befa97037 100644 --- a/docs/user-manual/project/audit_task/processlist_audit.md +++ b/docs/user-manual/project/audit_task/processlist_audit.md @@ -1,29 +1,24 @@ --- title: 会话SQL扫描 --- -本节介绍如何对MySQL进行中的会话SQL进行监督及审核。 +当需要监控查询性能、识别瓶颈、以及诊断死锁或锁等待问题时,利用会话SQL智能扫描功能进行有效分析。 ### 支持的数据源类型 * MySQL -### 使用场景 -除了上线前和上线后的审核,在SQL语句执行过程中,用户往往也需要对其进行监控和审核,用以及时识别出潜在的问题SQL。然而,当前的审核场景往往无法覆盖事中这一环节的审核。为此,SQLE新增了processlist列表审核扫描任务,实现了事前、事中、事后的全覆盖,使得用户可以在SQL语句的整个生命周期内进行审核和管理,从而减少审核时间和工作量。 +### 步骤一 开启会话SQL扫描类型 -### 操作步骤 -新建智能扫描任务 +在SQL管控配置中为数据源开启智能扫描,扫描类型选择“会话SQL扫描”,并填写以下字段信息: -* 任务名称:输入审核任务名称,必须以字母开头; -* 数据源名称:指定扫描任务实施的数据源; -* 数据库:填写需要审核的目标库,若不填则仅进行静态分析不会连库; -* 数据库类型:根据选取的数据源呈现; -* 任务类型:选择需要执行的审核任务类型,选择processlist列表扫描任务; -* 采集周期(秒):表示SQLE对 MySQL processlist表的采集频率,SQLE将按照该时间间隔进行SQL采集。如果该值过低,会影响实例性能; +* 采集周期:表示SQLE对 MySQL processlist表的采集频率,SQLE将按照该时间间隔进行SQL采集。如果该值过低,会影响实例性能; * SQL最小执行时间(秒):表示SQLE对 MySQL processlist 的采集过滤条件,只有大于等于该时间的SQL才会被采集记录。如果为0,则表示不进行过滤; -* 审核过去时间段内抓取的SQL(分钟):processlist列表扫描任务是增量审核,不在该时间段内执行的SQL将不会被再次采集; -* 审核规则模板:如果未指定此项会优先使用数据源绑定的模板; -* 任务审核周期:配置的是SQLE对审核任务进行自动审核的执行时间; +* 审核规则模板:选择对应的审核规则模板; -### 执行结果 -* 用户进入扫描任务详情,可以查看已采集到的processlist列表中的SQL信息; -* 用户点击`立即审核`,可以在扫描任务报告中获取processlist列表中当前采集周期内产生的SQL及审核结果; +点击`提交`,完成数据源上的会话SQL扫描任务配置。 + + +### 步骤二 获取采集结果及审核结果 +在扫描详情中查看采集的会话SQL信息及审核结果。 ![processlist-audit](img/processlist-audit.png) + + diff --git a/docs/user-manual/project/audit_task/slowlog_audit.md b/docs/user-manual/project/audit_task/slowlog_audit.md index 959173fa3..e54689f51 100644 --- a/docs/user-manual/project/audit_task/slowlog_audit.md +++ b/docs/user-manual/project/audit_task/slowlog_audit.md @@ -3,107 +3,95 @@ title: 慢日志 --- # 慢日志 -本节介绍慢日志扫描的应用场景、以及如何创建慢日志扫描任务。 +当您需要检查已上线业务是否有超过指定时长的慢SQL产生时,可以为数据源开启慢日志智能扫描。 当前SQLE支持两种慢日志采集方式,一种由scanner采集慢日志文件中的慢查询,一种由SQLE直接采集慢查表中的慢查询,用户可在编辑页面选取需要的采集方式,您可选择需要的方式采集产生的慢查询。 ## 支持的数据源类型 * MySQL -## 使用场景 -需要检查已上线业务是否有超过指定时长的慢SQL产生。 +## 方式一:采集慢日志表 +### 前置条件 +* 已添加数据源 +* 在MySQL中设置以下内容: +``` +set global long_query_time=1; // 需根据实际业务调整慢查询时间阈值,此处仅供参考 +set global slow_query_log=1; // 开启慢日志查询 +SET GLOBAL log_output='FILE,TABLE';// 开启 MySQL 的慢日志收集功能,并且确认将慢日志内容写入文件 mysql-slow.log 和表 mysql.slow_log +``` +:::tip +为了优化查询性能,使用这一采集方式时,需要用户手动运行下面的SQL,将mysql.slow_log表的引擎改为MyISAM,并添加索引。 +``` +ALTER TABLE mysql.slow_log ENGINE = MyISAM; +ALTER TABLE mysql.slow_log ADD INDEX idx_start_time (start_time); +``` +::: -## 采集方式 -### 方式一:采集慢日志文件 +### 步骤一:开启慢日志智能扫描类型 -#### 前置条件 +在SQL管控配置中为数据源开启智能扫描,扫描类型选择“慢日志扫描”,并填写以下字段信息: + +* 采集来源:选择“从mysql.slow_log表采集”; +* 审核规则模板:选择对应的审核规则模板; + +点击`提交`,完成数据源上的慢日志扫描任务配置。 + + +### 步骤二 获取采集结果及审核结果 +在扫描详情中查看从慢日志表中采集的SQL信息及审核结果。 +![list](img/slowlog_list.png) + + + +## 方式二:采集慢日志文件 + +### 前置条件 * 已添加对应数据源; -* 修改配置文件my.cnf,在文件中设置以下内容: +* 修改配置文件my.cnf,在文件中添加以下内容: ```jsx title="my.cnf" slow_query_log = ON //开启慢日志 slow_query_log_file = /var/lib/mysql/tmp_slow.log //设置慢日志文件路径 long_query_time = 1 //设置慢查询时间阈值,当前示例时间为1s,可根据实际业务变更 ``` -#### 步骤一:新建智能扫描任务 +### 步骤一:开启慢日志智能扫描类型 -新建智能扫描任务,填写以下字段信息: +在SQL管控配置中为数据源开启智能扫描,扫描类型选择“慢日志扫描”,并填写以下字段信息: -* 任务名称:指定扫描任务的名称,当前仅支持英文名称; -* 数据源名称:选择扫描任务对应的数据源; -* 数据库:选择扫描任务使用的数据库; -* 数据库类型:根据选取的数据源呈现; -* 任务类型:选择慢日志; -* 审核过去时间段内抓取的SQL(分钟):扫描的时间覆盖范围; -* 采集来源:填写0,代表采集mysql-slow.log 文件; +* 采集来源:选择“从slow.log文件采集”; * 审核规则模板:选择对应的审核规则模板; -* 审核任务周期:配置的是SQLE对审核任务进行自动审核的执行时间; - -点击`提交`,完成慢日志扫描任务创建。 - -#### 步骤二:执行scannerd文件 -:::tip -注意:scannerd文件通常在SQLE的bin目录下,需将scannerd文件放在数据源环境下执行。 -::: -示例如下: +点击`提交`,完成数据源上的慢日志扫描任务配置。 -``` -./scannerd slowquery -H "127.0.0.1" -P "10000" -N "slowlog_of_GRADE1" -J "default" -A eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcG4iOiJzbG93bG9nX29mX0dSQURFMSIsImV4cCI6MTcwODA3MjMzNSwibmFtZSI6ImFkbWluIn0.ArU5HpU7aSSVrRutxSAwRFYahSx0_4RNzD4KB6LTfpM --log-file /var/lib/mysql/mysql-for-test-slow.log -``` +### 步骤二:执行scannerd文件 -参数解释如下: - -* -J, --project:说明扫描任务所在项目,例“default”; -* -H, --host string:指定dms主机所在地址; -* -N, --name string:指定扫描任务名称,scannerd会将获得的慢SQL传至指定的任务池中审核; -* -P, --port string:指定SQLE所在端口; -* -A, --token string:输入扫描任务凭证token; -* --log-file:指定慢日志文件,scannerd从该文件中获取慢SQL; +* 复制慢日志的连接信息 +* 在数据源环境中执行scannerd文件 +执行命令示例如下: -### 方式二:采集慢日志表 -#### 前置条件 -* 已添加数据源 -* 在MySQL中设置以下内容: ``` -set global long_query_time=1; // 需根据实际业务调整慢查询时间阈值,此处仅供参考 -set global slow_query_log=1; // 开启慢日志查询 -SET GLOBAL log_output='FILE,TABLE';// 开启 MySQL 的慢日志收集功能,并且确认将慢日志内容写入文件 mysql-slow.log 和表 mysql.slow_log -``` -:::tip -为了优化查询性能,使用这一采集方式时,需要用户手动运行下面的SQL,将mysql.slow_log表的引擎改为MyISAM,并添加索引。 +./scannerd mysql_slow_log --project=default --host=127.0.0.1 --port=10000 --audit_plan_id=1 --token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcG4iOiJjNGNhNDIzOGEwYjkyMzgyMGRjYzUwOWE2Zjc1ODQ5YiIsImV4cCI6MTc1NDAzNjEyOCwiaXNzIjoiYWN0aW9udGVjaCBkbXMiLCJ1aWQiOiI3MDAyMDAifQ.gUE0fNLjAJAWXK7sPydEN8zQ96gStxa-luNTvBtIMWy --log-file /var/lib/mysql/mysql-for-test-slow.log ``` -ALTER TABLE mysql.slow_log ENGINE = MyISAM; -ALTER TABLE mysql.slow_log ADD INDEX idx_start_time (start_time); -``` -::: - - -#### 新建智能扫描任务 - -新建智能扫描任务,填写以下字段信息: -* 任务名称:指定扫描任务的名称,当前仅支持英文名称; -* 数据源名称:选择扫描任务对应的数据源核; -* 数据库:选择扫描任务使用的数据库; -* 数据库类型:根据选取的数据源呈现; -* 任务类型:选择慢日志扫描任务; -* 采集周期(分钟):SQLE进行采集的周期,若设置为10分钟,则SQLE将每隔10分钟去采集慢日志表中生成的慢查询; -* 审核过去时间段内抓取的SQL(分钟):扫描的时间覆盖范围; -* 采集来源:填写1,代表采集mysql.slow_log 表; -* 审核规则模板:选择对应的审核规则模板; -* 审核任务周期:配置的是SQLE对审核任务进行自动审核的执行时间; +:::tip +注意:scannerd文件通常在SQLE的bin目录下,需将scannerd文件放在数据源环境下执行。 +::: -点击`提交`,完成慢日志扫描任务创建。 +参数解释如下: +* --project:说明扫描任务所在项目,例“default”; +* --host string:指定dms主机所在地址; +* --port string:指定SQLE所在端口; +* --token string:扫描任务凭证token; +* --log-file:指定慢日志文件,scannerd从该文件中获取慢SQL; -## 执行结果 -在扫描任务详情查看扫描的SQL语句及审核报告。 +### 步骤三 获取采集结果及审核结果 +在扫描详情中查看从慢日志文件中采集的SQL信息及审核结果。 ## 后续步骤 -1. 分析扫描任务报告中出现的慢SQL:用户可以重点关注慢SQL的部分,这些SQL可能需要进行性能优化或数据库结构调整,以提升系统的响应速度。 +1. 分析智能扫描中出现的慢SQL:用户可以重点关注慢SQL的部分,这些SQL可能需要进行性能优化或数据库结构调整,以提升系统的响应速度。 2. 过滤不关心的SQL:用户可以通过在sqle.black_list_audit_plan_sqls表中添加需要过滤的SQL片段,实现对scanner扫描任务中不关心的SQL的过滤。这样,在SQLE的增量和全量接口中包含了指定关键字的SQL将被自动过滤掉,减少冗余的结果展示。 diff --git a/docs/user-manual/project/sqlmanage.md b/docs/user-manual/project/audit_task/sqlmanage.md similarity index 77% rename from docs/user-manual/project/sqlmanage.md rename to docs/user-manual/project/audit_task/sqlmanage.md index 742e75eda..4a9bcaf58 100644 --- a/docs/user-manual/project/sqlmanage.md +++ b/docs/user-manual/project/audit_task/sqlmanage.md @@ -1,21 +1,18 @@ --- -title: SQL管控 +title: SQL管控【企业版】 --- # SQL全生命周期管控 -SQL管控页面集中了用户在SQL审核和扫描任务中生成的SQL,方便进行集中的管理。用户可以快速发现审核出问题的SQL,并将其分配给其他成员处理,或将不关心的SQL设为忽略状态,从而实现高效的SQL管理。 +SQL管控页面集中了用户在SQL审核和扫描任务中生成的SQL,当用户的SQL来源多且分散时,可以在SQL管控页面快速发现审核出问题的SQL,并将其分配给其他成员处理,或将不关心的SQL设为忽略状态,以避免遗漏问题SQL,方便追溯问题SQL的产生及后续解决方式,从而实现高效的SQL管理。 -## 使用场景 - -当用户的SQL来源多且分散时,需要将这些SQL集中到一个页面进行管理,以避免遗漏问题SQL,并方便追溯问题SQL的产生及后续解决方式 ## 前置条件 用户需要登录平台并生成审核记录,满足以下条件之一: * 在使用SQL快捷审核时,为SQL附加了审核标签。 -* 成功配置了扫描任务并生成了审核记录。 +* 在SQL管控配置中为数据源开启了智能扫描,并获得采集结果。 ## 使用步骤 @@ -48,5 +45,5 @@ SQL管控页面集中了用户在SQL审核和扫描任务中生成的SQL,方 ### 操作结果 通过以上步骤,用户可以使用SQL管控功能集中管理SQL,快速发现问题SQL并进行处理。 -![sqlmanage](img/sqlmanage.png) + diff --git a/docs/user-manual/project/audit_task/topsql.md b/docs/user-manual/project/audit_task/topsql.md index 26a341abb..be85335f6 100644 --- a/docs/user-manual/project/audit_task/topsql.md +++ b/docs/user-manual/project/audit_task/topsql.md @@ -1,9 +1,37 @@ --- title: TopSQL --- -本节介绍如何 + +TOP SQL 语句可能会导致数据库性能下降。为此,我们提供了TOP SQL智能扫描,用以实时监控SQL性能,通过自动监察数据库中最耗费资源的 SQL 语句,减少手动分析的同时,快速定位性能瓶颈,以此提高数据库运行性能。 ### 支持的数据源类型 * DB2 * Oracle -* OceanBase for MySQL \ No newline at end of file +* OceanBase for MySQL +* ceanBase for Oracle +* PostgreSQL +* 达梦 + +### 步骤一 开启TopSQL扫描类型 + +在SQL管控配置中为数据源开启智能扫描,扫描类型选择“TopSQL”,并填写以下字段信息: + +* 采集周期:表示SQLE对TopSQL的采集频率,SQLE将按照该时间间隔进行SQL采集。如果该值过低,会影响实例性能; +* 排序字段:目前可基于总执行次数、执行时间、物理读块数、逻辑读块数、I/O等待时间进行排序 +* Top N:选择需要展示的SQL数量 +* 审核规则模板:选择对应的审核规则模板; + +点击`提交`,完成数据源上的TopSQL扫描任务配置。 + +### 步骤二 获取采集结果及审核结果 +在扫描详情中查看采集的TopSQL信息及审核结果。 + + +:::tip +对PG类型的数据源开启TOPSQ智能扫描时,PG需要保证两个前提: +* 确保pg_stat_statements扩展已安装,参考SQL语句`CREATE EXTENSION pg_stat_statemnts;` +* 将参数shared_preload_libraries的值设置为 pg_stat_statements来指定在启动时加载pg_stat_statements扩展 +``` +docker run --name': docker run --name postgres -e POSTGRES_PASSWORD=123456 -d -p 5432:5432 -v /my/local/dir:/var/lib/postgresql/data postgres:13 -c shared_preload_libraries=pg_stat_statements +``` +::: diff --git a/sidebars.js b/sidebars.js index 96517ba5f..3cb4cca3b 100644 --- a/sidebars.js +++ b/sidebars.js @@ -45,62 +45,55 @@ const sidebars = { items: [ { type: 'category', - label: '项目', + label: '项目配置', items: [ "user-manual/project/intro", "user-manual/project/project_create", "user-manual/project/instance-manager", - "user-manual/project/instance_syn", "user-manual/project/group_member", "user-manual/project/rule-template-manager", "user-manual/project/workflow-template-manager", "user-manual/project/whitelist-manager", "user-manual/project/operation_records", - "user-manual/project/sqlmanage", + ], + }, + { + type: 'category', + label: 'SQL开发', + items: [ "user-manual/project/dataexport", "user-manual/project/quick_audit", "user-manual/project/IDEaudit", - { - type: 'category', - label: '工单', - items: [ - "user-manual/project/workflow/intro", - "user-manual/project/workflow/create-workflow", - "user-manual/project/workflow/audit-workflow", - "user-manual/project/workflow/exec-workflow", - ], - }, - { - type: 'category', - label: '扫描任务', - items: [ - "user-manual/project/audit_task/intro", - "user-manual/project/audit_task/metadata_audit", - "user-manual/project/audit_task/slowlog_audit", - "user-manual/project/audit_task/processlist_audit", - "user-manual/project/audit_task/baiduyunrds", - "user-manual/project/audit_task/huaweiyunrds", - "user-manual/project/audit_task/mybatis", - "user-manual/project/audit_task/SQLfile_audit", - "user-manual/project/audit_task/java_application_audit", - "user-manual/project/audit_task/java_agent_audit", - ], - } + "user-manual/project/audit_task/mybatis", + "user-manual/project/audit_task/SQLfile_audit", ], }, { type: 'category', - label: '系统设置', + label: 'SQL上线', items: [ - "user-manual/sys-configuration/intro", - "user-manual/sys-configuration/login_syn", - "user-manual/sys-configuration/message_syn", - "user-manual/sys-configuration/process_syn", - "user-manual/sys-configuration/webhook", - "user-manual/sys-configuration/configuration", - "user-manual/sys-configuration/customize", + "user-manual/project/workflow/intro", + "user-manual/project/workflow/create-workflow", + "user-manual/project/workflow/audit-workflow", + "user-manual/project/workflow/exec-workflow", ], - }, + }, + { + type: 'category', + label: 'SQL管控', + items: [ + "user-manual/project/audit_task/intro", + "user-manual/project/audit_task/sqlmanage", + "user-manual/project/audit_task/metadata_audit", + "user-manual/project/audit_task/slowlog_audit", + "user-manual/project/audit_task/processlist_audit", + "user-manual/project/audit_task/topsql", + "user-manual/project/audit_task/baiduyunrds", + "user-manual/project/audit_task/huaweiyunrds", + "user-manual/project/audit_task/java_application_audit", + "user-manual/project/audit_task/java_agent_audit", + ], + }, { type: 'category', label: 'SQL工作台', @@ -110,6 +103,19 @@ const sidebars = { "user-manual/sql-workbench/how-to-use", ], }, + { + type: 'category', + label: '系统设置', + items: [ + "user-manual/sys-configuration/intro", + "user-manual/sys-configuration/login_syn", + "user-manual/sys-configuration/message_syn", + "user-manual/sys-configuration/process_syn", + "user-manual/sys-configuration/webhook", + "user-manual/sys-configuration/configuration", + "user-manual/sys-configuration/customize", + ], + }, { type: 'category', label: '用户管理', @@ -122,6 +128,8 @@ const sidebars = { }, "user-manual/customrule", "user-manual/knowledgebase", + "user-manual/allinstance", + "user-manual/project/instance_syn", ], }, {