TRANXACT.AI 帮助

系统监视器:工作进程、跟踪、锁和会话

平台此刻正在做什么,它背后的数据库工作,它持有的安全锁以及谁已登录——以及如何阻止这一切。

工作流程、系统跟踪和锁定位于“平台”→“运维”→“运行状况”下,与集成、管道和工作流运行状况屏幕相邻;Web 和用户会话位于“平台”→“访问”下,与用户相邻。每项权限都独立设置,因此运维角色可以被允许监视系统并取消失控的查询,而无需同时拥有注销所有用户的权限。

工作流程

每个正在响应的请求、每个后台工作进程(调度器、邮件发送器、进程挖掘器、数据保留器、电子签名扫描器、资产报告器)以及每个批处理运行,都位于每个正在运行的容器中——每个进程都与其当前使用的数据库后端相关联。在其下方,则记录了每个数据库连接及其状态、等待的内容、语句和事务的打开时长、阻塞者以及发送该连接的请求或作业。

  • 取消操作会停止当前正在运行的语句;请求将以错误结束,而不是继续等待。选中多行并使用“取消所选”可以同时停止它们。
  • 在批量运行中,“取消”操作会停止运行到下一个项目——不会放弃已完成的项目——并且运行会被记录为已取消,并保留已完成的项目。
  • (在数据库后端)`End` 函数会关闭连接并回滚其事务。它可以用于处于“事务空闲”状态并持有锁的会话,因为此时 `Cancel` 函数无法访问这些锁,因为没有任何操作正在运行。
  • 另一个容器上的工作通过该容器被取消:它会在十秒内生效。
  • 每次取消和结束操作都会要求输入原因,该原因会连同您的姓名一起记录在审计日志中。

系统跟踪

跟踪(针对任何工作或后端)会完整地打开一个进程:它发送的每条语句,包括每条语句的耗时和返回的行数,它持有和等待的锁,它前面的会话链,它后面排队的会话,以及当前正在运行的查询计划(如果可以安全显示)。“系统跟踪”屏幕会列出最慢和最近的工作,以及(如果数据库有 pg_stat_statements)占用数据库时间最多的语句。用户输入的值永远不会被记录:它们存储在个人数据中。

锁

正在等待的锁、阻塞其他进程的锁、咨询性锁(模式迁移锁已命名)以及状态仍显示为“正在运行”的批处理作业。当持有锁的事务空闲时间超过您设置的阈值(默认为五分钟)时,或者当没有正在运行的容器认领该批处理作业时,该锁将被标记为过期——容器停止的批处理作业将永远不会完成,并且其调度程序将不会再次运行,直到该锁被释放。

  • 选择所有过期的锁,然后释放所选锁。PostgreSQL 仅在持有锁的会话结束时才释放锁,因此 Release 操作会结束该会话并回滚其事务。
  • 除非选择“强制释放”,否则不会拒绝未过期的锁——结束一个恰好此刻持有锁的健康交易,正是导致它本应修复的事件发生的点击。
  • 释放过期的批处理运行会将其标记为失败,以便其计划可以再次运行。

Web 和用户会话

每个网络会话(每个浏览器或设备一个会话)和每个已登录用户,以及他们当前的操作。您可以按用户或按会话切换,按姓名、地址或来源筛选,并注销单个会话、某个用户的所有会话、选定的用户或除您自己以外的所有用户。服务帐户也会显示在此处,每个令牌对应一个会话。批量操作不会终止您自己的会话。

在“角色”屏幕的“平台”下,您可以授予以下权限:工作进程 - 显示以监视,更改以取消,删除以结束后端。系统跟踪 - 显示。锁定 - 显示以监视,删除以释放。Web 和用户会话 - 显示以监视,删除以注销用户。管理员拥有所有这些权限。在多租户部署中,每个租户只能看到自己的工作和自己的数据库连接。