GaussDB-会话管理

224 阅读5分钟

GaussDB-会话管理

操作场景

在数据库中,会话是用户与数据库之间的交互过程,本节描述如何通过会话管理功能诊断并优化数据库性能。

会话管理模块提供会话查询(查询实时会话)和会话终止(终止指定会话、终止空闲会话)功能。

会话查询可以全面地展示会话的详细信息,为用户查询会话提供方便。会话查询可以帮助用户:

  • 监控数据库性能:通过查询会话,可以了解当前数据库中正在运行的会话数量、会话的执行状态、会话的执行时间等信息,从而监控数据库的性能状况,及时发现并解决性能问题。
  • 诊断数据库问题:通过查询会话,可以了解当前数据库中正在运行的会话的执行情况,包括执行的SQL语句、等待事件、执行时间等信息,从而帮助诊断数据库问题,定位问题原因。
  • 防止未授权的访问和操作:通过查询会话,可以了解当前数据库中正在运行的会话的来源、权限等信息,从而维护数据库的安全性。

会话终止可以终止一个正在运行的会话。会话终止操作可以帮助用户:

  • 释放资源:当一个会话长时间运行或者占用了过多的资源,可能会导致数据库性能下降,甚至崩溃。通过kill session可以及时释放这些资源,保证数据库的正常运行。
  • 解决死锁:当多个会话同时请求同一个资源,可能会出现死锁的情况。通过kill session可以终止其中一个会话,解决死锁问题。
  • 防止数据库权限滥用:有时候,用户可能会滥用数据库权限,通过kill session可以及时终止这些滥用行为,保证数据库的安全。

综上所述,会话管理在数据库运维中具有重要的意义,可以帮助管理员诊断和优化数据库性能,维护数据库安全。

前提条件
  • 查询实时会话需要获取实时会话权限。
  • 终止会话需要具有结束会话权限。
  • 终止空闲会话需要具有结束空闲会话权限。
约束限制
  • 分布式版实例,需保证第一个节点组中存在一个含有CN组件且状态正常的非日志节点。主备版实例,需保证存在一个状态正常且为非日志节点的主节点。

  • 会话查询功能获取的是非系统内置用户(rdsAdmin,rdsMetric, rdsBackup, rdsRepl,dbmind_monitor_agent,dbmind_monitor)产生的用户会话。

  • 会话查询功能只能监控到有IP地址连接的会话,即用户连接数据库时需通过**-h hostname**参数指明客户端IP地址。

    如:gsql -d postgres -h 127...1 -p 8000 -U username -W password

操作步骤
  1. 登录云数据库GaussDB管理平台(TPOPS)

  2. 单击具体实例名称,进入“实例管理”详情页。

  3. 单击“诊断优化 > 会话管理”,显示“会话管理”页面。

  4. 实时会话是按照“节点_组件”的维度查询的,选择不同的“节点_组件”ID的组合,可以获取到当前“节点_组件”下的实时会话。

    搜索框中选择“数据库”、“客户端IP”或“用户名”可进行过滤筛选。

    图1 查询实时会话

    参数名称参数解释
    会话ID会话ID。
    线程ID后台线程ID。
    SQL ID语句的unique sql id。
    数据库用户会话在后台连接到的数据库名称。
    客户端IP连接到该后台的客户端的IP地址。
    用户名登录该后台的用户名。
    是否等待如果后台当前正等待锁则为“true”,否则为“false”。
    阻塞会话阻塞当前线程获取锁的会话标识。
    等待事件当前线程正在等待的事件。
    状态该会话当前总体状态。可能值是:- active:后台正在执行一个查询。
    • idle:后台正在等待一个新的客户端命令。
    • idle in transaction:后台在事务中,但事务中没有语句在执行。
    • fastpath function call:后台正在执行一个fast-path函数。
    • disabled:如果后台禁用track_activities,则报告这个状态。 | | 事务数 | 会话建立事务的数量。 | | 回滚次数 | 会话中事务回滚的次数。 | | SQL数 | 会话执行的SQL数。 | | 会话建立时长 | 会话建立时长(单位:秒)。 | | 语句执行时间 | 语句的执行时间。 | | SQL文本 | 该后台的最新查询。 | | 会话开始时间 | 该过程开始的时间,即当客户端连接服务器的时间。 | | 事务开始时间 | 启动当前事务的时间。 | | 语句开始时间 | 开始当前活跃查询的时间。 | | 应用名称 | 连接到该后台的应用名。 |
  5. 勾选会话列表左侧复选框,可以选中任意数量会话,单击“查杀指定会话”,会终止选定的会话。

    图2 查杀会话

  6. 输入“confirm”后单击“确认”,查杀所选会话。

  7. 单击“查杀所有空闲会话”,会查杀当前所有“状态”为“idle”的空闲会话。

    图3 查杀所有空闲会话

  8. 输入“confirm”后单击“确认”,查杀所有空闲会话。

更多详情请参考GaussDB 文档中心:doc.hcs.huawei.com/db/zh-cn/ga…