管理数据库有时需要终止会话,例如终止占用封锁或系统资源过多的会话。
1. 指定需要终止的会话 ¶
终止会话需要指定会话的pid。 可以通过视图sys_stat_activity查找特定会话的pid。 示例,查找用户为kingbase的会话pid和会话状态:
SELECT pid, state FROM sys_stat_activity WHERE usename = 'kingbase';
pid | state
-------+--------
26212 | active 26292 | active
(4 rows)2. 终止会话 ¶
终止会话将结束会话并断开客户端到服务端的连接。会话正在执行的事务会由于连接断开回滚。 使用sys_terminate_backend(integer)函数终止会话,参数为会话的pid。 示例,终止pid为26212的会话:
SELECT sys_terminate_backend(26212);
sys_terminate_backend3. 取消会话执行的SQL语句 ¶
某一会话执行的SQL语句占用过多资源影响业务时,可以通过取消会话执行的SQL代替终止会话。会话执行SQL所在的事务将回滚。 使用sys_cancel_backend(integer)函数取消会话执行的SQL语句,参数为会话的pid。 示例,取消pid为26212的会话执行的SQL语句:
SELECT sys_cancel_backend(26212);
sys_cancel_backend「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




