
# 管理TaurusDB实时会话
#### 操作场景
数据库管理中，当系统性能出现异常时，管理员需要快速定位问题。TaurusDB支持在实时会话页面设置慢会话阈值、查看实例当前会话统计结果，并识别异常会话。您可以手动Kill会话或根据Kill规则智能Kill会话，也可以对会话进行根因分析，识别阻塞会话信息，从而提高系统性能和管理效率。
#### 前提条件
- 开启根因分析需要修改"performance_schema"参数值为"ON"，详细内容请参见[修改TaurusDB实例参数](https://support.huaweicloud.com/usermanual-taurusdb/taurusdb_configuration.html)。开启后可在会话列表中使用根因分析能力。
- 根因分析功能当前处于公测阶段，如需使用该功能，请[提交工单](https://console.huaweicloud.com/ticket/?locale=zh-cn#/ticketindex/createIndex)。
 
#### 约束限制
修改"performance_schema"参数后，需要重启实例，而重启将导致当前所有会话被终止。因此，该功能仅支持诊断在开启根因分析功能后新产生的被阻塞的会话，无法分析功能开启前已存在的被阻塞会话（因等待锁而无法继续执行的会话）。
#### 手动Kill会话、智能Kill会话、自动kill会话的区别
表1Kill会话、智能Kill会话、自动kill会话的区别 
| Kill会话的方式                                                                             | 含义                                                    | 入口位置                      |
|:---|:---|:---|
| [手动Kill会话]                            | 根据设置的慢会话阈值，页面自动刷新筛选出大于该阈值的慢会话列表。手动选择需要Kill的异常会话，结束会话。 | 智能DBA助手-实时会话              |
| [智能Kill会话]                        | 按照智能Kill会话规则判断满足条件的会话，自动kill排名前三的组内的所有会话。             | 智能DBA助手-实时会话              |
| [自动Kill会话](https://support.huaweicloud.com/usermanual-taurusdb/taurusdb_03_0503.html) | 创建Kill会话任务，当满足Kill会话条件时，会自动触发Kill会话操作。                | 智能DBA助手-SQL分析与优化-自动Kill会话 |
   
#### 设置慢会话阈值
1. [登录TaurusDB管理控制台](https://console.huaweicloud.com/gaussdbformysql/#/management/list)。
2. 单击管理控制台左上角的![](https://support.huaweicloud.com/usermanual-taurusdb/figure/zh-cn_image_0000002671347251.png)，选择区域。
3. 在"实例管理"页面，选择目标TaurusDB实例，单击实例名称，进入"实例概览"页面。
4. 在左侧导航栏选择"智能DBA助手"下的"实时会话"。
5. 在会话统计信息区域，可以查看会话概要（如慢会话、活跃会话、会话总数和长事务会话）分别按照用户、访问主机和数据库维度统计的会话结果。 
   图1实时会话   
   ![](https://support.huaweicloud.com/usermanual-taurusdb/figure/zh-cn_image_0000002613897227.png "点击放大")
   
   
   
6. 在页面上方的"慢会话阈值"处，单击![](https://support.huaweicloud.com/usermanual-taurusdb/figure/zh-cn_image_0000002614017115.png "点击放大")，在弹框中按需设置慢会话阈值，单击"确定"。页面自动刷新筛选出执行时间大于该阈值的慢会话列表。
   
   图2设置慢会话阈值   
   ![](https://support.huaweicloud.com/usermanual-taurusdb/figure/zh-cn_image_0000002583657348.png "点击放大")
   
   
   
7. 在"会话列表"模块，可以查看会话详情。
 
#### 管理会话列表
1. [登录TaurusDB管理控制台](https://console.huaweicloud.com/gaussdbformysql/#/management/list)。
2. 单击管理控制台左上角的![](https://support.huaweicloud.com/usermanual-taurusdb/figure/zh-cn_image_0000002671347251.png)，选择区域。
3. 在"实例管理"页面，选择目标TaurusDB实例，单击实例名称，进入"实例概览"页面。
4. 在左侧导航栏选择"智能DBA助手"下的"实时会话"。
5. 在"会话列表"模块，可进行如下操作。 
   - 手动kill会话
     您可以单击操作列的"Kill会话"，结束会话，使数据库恢复正常。
     批量Kill会话时，一次性最多选择50条会话。
     图3手动kill会话   
     ![](https://support.huaweicloud.com/usermanual-taurusdb/figure/zh-cn_image_0000002588697262.png "点击放大")
     
     
   
   - 根因分析 您可以单击操作列的"根因分析"，弹框中展示被阻塞的会话信息及根因SQL。
     当阻塞会话信息的命令为"Sleep"时，会从performance_schema.events_statements_history表中回溯并展示历史SQL；其他情况下，则显示阻塞该会话的SQL。
     图4根因分析   
     ![](https://support.huaweicloud.com/usermanual-taurusdb/figure/zh-cn_image_0000002588700028.png "点击放大")
     
     图5根因分析结果   
     ![](https://support.huaweicloud.com/usermanual-taurusdb/figure/zh-cn_image_0000002588859422.png "点击放大")
     
     
   
   
   
   
 
 #### 智能Kill会话
1. [登录TaurusDB管理控制台](https://console.huaweicloud.com/gaussdbformysql/#/management/list)。
2. 单击管理控制台左上角的![](https://support.huaweicloud.com/usermanual-taurusdb/figure/zh-cn_image_0000002671347251.png)，选择区域。
3. 在"实例管理"页面，选择目标TaurusDB实例，单击实例名称，进入"实例概览"页面。
4. 在左侧导航栏选择"智能DBA助手"下的"实时会话"。
5. 在"会话列表"模块，单击"智能Kill会话"，弹框中您可以在会话时间范围输入框中输入时间（秒），单击"Kill会话实时统计结果预览"，查看当前时刻下符合被Kill的会话ID、SQL关键字等信息，预览非最终Kill结果，仅为当前时刻统计数据。 
   **智能Kill会话规则**
   系统按照执行时长降序取前1000个会话，仅选取其中的SELECT类型会话，每个会话自动提取SQL语句中的关键字，关键字相同的会话分为一组，判断每组会话是否满足top3_time、top3_count、top3_avg_time策略，取Top 3的组自动Kill会话。
   - top3_time：以每组内会话最长的执行时长排序，取Top 3的组kill。
   
   - top3_count：以每组内会话数量排序，取Top 3的组kill。
   
   - top3_avg_time：以每组内会话平均执行时长排序，取Top 3的组kill。
    
   智能Kill时会Kill组内所有会话，即使会话同时满足top3_time、top3_count、top3_avg_time中的多个条件，也只会执行一次Kill操作。
   图6智能Kill会话   
   ![](https://support.huaweicloud.com/usermanual-taurusdb/figure/zh-cn_image_0000002619356947.png "点击放大")
   
   
   
6. 确认无误，单击"确定"，系统会自动kill符合智能规则的会话。
7. 如需查看Kill会话历史，您可以在"会话列表"模块，单击"智能Kill会话历史"，查看符合智能Kill会话规则且已被结束的会话。 
   最多可查询30天内的智能kill会话历史，超出30天的数据将被自动清理。
   图7智能Kill会话历史   
   ![](https://support.huaweicloud.com/usermanual-taurusdb/figure/zh-cn_image_0000002619356365.png "点击放大")
   
   单击操作列的"下载"，压缩包里包含3个文件，分别是killed_sessions_xxxx，rules_xxxx和sessions_xxxx。
   - killed_sessions_xxxx：已被Kill的会话信息。
   
   - rules_xxxx：智能kill会话的规则。
   
   - sessions_xxxx：按照执行时长降序取前1000个SELECT类型的会话信息。
   
   
   
   
 
#### 查询事务回滚进度
1. [登录TaurusDB管理控制台](https://console.huaweicloud.com/gaussdbformysql/#/management/list)。
2. 单击管理控制台左上角的![](https://support.huaweicloud.com/usermanual-taurusdb/figure/zh-cn_image_0000002671347251.png)，选择区域。
3. 在"实例管理"页面，选择目标TaurusDB实例，单击实例名称，进入"实例概览"页面。
4. 在左侧导航栏选择"智能DBA助手"下的"实时会话"。
5. 在"会话列表"模块，单击"事务回滚进度"，查看回滚中的事务以及事务相关信息。 
   图8查询事务回滚进度   
   ![](https://support.huaweicloud.com/usermanual-taurusdb/figure/zh-cn_image_0000002659096288.png "点击放大")
   
   
   
 
#### 导出会话信息
1. [登录TaurusDB管理控制台](https://console.huaweicloud.com/gaussdbformysql/#/management/list)。
2. 单击管理控制台左上角的![](https://support.huaweicloud.com/usermanual-taurusdb/figure/zh-cn_image_0000002671347251.png)，选择区域。
3. 在"实例管理"页面，选择目标TaurusDB实例，单击实例名称，进入"实例概览"页面。
4. 在左侧导航栏选择"智能DBA助手"下的"实时会话"。
5. 在"会话列表"模块，可以导出部分会话或全部会话。 
   图9导出会话信息   
   ![](https://support.huaweicloud.com/usermanual-taurusdb/figure/zh-cn_image_0000002588857802.png "点击放大")
   
   - 导出部分会话 选择会话，单击"导出已选中数据"，可以导出指定会话信息到表格中。导出任务执行完成后，您可在本地查看到一个".csv"文件。
     
   
   - 导出全部会话 选择"导出全部数据 \> 收集"，待实时会话信息收集完成后，选择"导出全部数据 \> 下载"，可导出全部会话信息到表格中。导出任务执行完成后，您可在本地查看到一个".csv"文件。
     导出全部数据时，最多支持导出1000000条会话信息。
     
   
   
   
   
 
