22. ClustrixDB 杀掉恶意会话
ClustrixDB提供了几种机制来识别消耗大量系统资源的查询。这样的查询通常是应用程序索引不良或错误的结果。
ClustrixDB支持以下语法来杀死查询:
KILL [QUERY | CONNECTION] session_id
识别长时间运行的查询
下面的语句将输出系统中运行时间最长的查询。这通常是系统管理员识别行为不端的集群上可能出现的问题的第一步。会话虚拟关系提供了关于每个会话执行状态的大量细节。除了当前语句外,还将显示连接信息和事务状态。
sql> select * from system.sessions where statement_state = 'executing' order by time_in_state_s desc limit \G
*************************** . row ***************************
nodeid:
session_id:
source_ip: 10.2.2.243
source_port:
local_ip: 10.2.14.15
local_port:
user:
database: system
trx_state: open
statement_state: executing
xid:
cpu:
isolation: REPEATABLE-READ
last_statement: select * from sessions where statement_state = 'executing' order by time_in_state_s desc limit
time_in_state_s:
created: -- ::
heap_id:
trx_age_s:
trx_mode: autocommit
trx_counter_select:
trx_counter_insert:
trx_counter_update:
trx_counter_delete:
trx_is_writer:
row in set (0.00 sec)
识别长时间运行的写入事务
在ClustrixDB等完全关系的SQL数据库中,长时间运行的写事务可能会导致问题。通常,行为不端的应用程序会错误地关闭自动提交选项,让每个会话在一个非常长的事务中运行。当发生这种情况时,这些事务将积累大量的写锁,从而阻止其他试图修改相同数据的事务运行。为了识别这些情况,ClustrixDB在sessions关系中包含几个列,这些列跟踪事务的时间、当前事务中执行的语句的数量和类型,以及事务是否发出任何写操作(布尔值0,1)。
例如,要查找系统中最古老的写事务,发出以下命令:
sql> select * from system.sessions where trx_is_writer order by trx_age desc limit \G
*************************** . row ***************************
nodeid:
session_id:
source_ip: 10.2.2.243
source_port:
local_ip: 10.2.14.15
local_port:
user:
database: sergei
trx_state: open
statement_state: executing
xid:
cpu:
isolation: REPEATABLE-READ
last_statement: select * from system.sessions where trx_is_writer order by trx_age desc limit
time_in_state_s:
created: -- ::
heap_id:
trx_age_s:
trx_mode: explicit
trx_counter_select:
trx_counter_insert:
trx_counter_update:
trx_counter_delete:
trx_is_writer:
row in set (0.00 sec)
22. ClustrixDB 杀掉恶意会话的更多相关文章
- 如何彻底杀掉Oracle相关用户的会话
在ORACLE数据库当中,有时候会使用ALTER SYSTEM KILL SESSION 'sid,serial#'杀掉一个会话进程,但是使用这个SQL语句杀掉会话后,数据库并不会立即释放掉相关的资源 ...
- ORACLE快速彻底Kill掉的会话
在ORACLE数据库当中,有时候会使用ALTER SYSTEM KILL SESSION 'sid,serial#'杀掉一个会话进程,但是使用这个SQL语句杀掉会话后,数据库并不会立即释放掉相关的资源 ...
- ORACLE快速彻底Kill掉的会话(转载)
转载:http://www.cnblogs.com/kerrycode/p/4034231.html 在ORACLE数据库当中,有时候会使用ALTER SYSTEM KILL SESSION 'sid ...
- 如何定位Oracle数据库被锁阻塞会话的根源
首先再次明确下,数据库因为要同时保证数据的并发性和一致性,所以操作有锁等待是正常的. 只有那些长时间没有提交或回滚的事物,阻塞了其他业务正常操作,才是需要去定位处理的. 1.单实例环境 2.RAC环境 ...
- linux 技巧:使用 screen 管理你的远程会话
你是不是经常需要 SSH 或者 telent 远程登录到 Linux 服务器?你是不是经常为一些长时间运行的任务而头疼,比如系统备份.ftp 传输等等.通常情况下我们都是为每一个这样的任务开一个远程终 ...
- 使用 screen 管理你的远程会话
文章转载自:https://www.ibm.com/developerworks/cn/linux/l-cn-screen/ 在此只作为笔记使用,不做他用 你是不是经常需要 SSH 或者 telent ...
- (转)linux 技巧:使用 screen 管理你的远程会话
转自:http://www.ibm.com/developerworks/cn/linux/l-cn-screen/index.html 你是不是经常需要 SSH 或者 telent 远程登录到 Li ...
- 【转载】linux 技巧:使用 screen 管理你的远程会话
转自:https://www.ibm.com/developerworks/cn/linux/l-cn-screen/ 总结 启动并进入一个screen会话:screen 或者 screen -S 名 ...
- linux会话命令screen详解
Screen会话命令 我其实是把文件下载到 /home/zhang/temp/ 里面,当我N久以后再联上服务器,想看看文件下载情况怎样,那又要 cd 老半天,这时候 screen 就是好帮手了. 顾名 ...
随机推荐
- 使用Python过程中遇到的一些坑及其解决方法(持续更新)
1.列表不能直接赋值 nums1 = nums2 x nums1[:] = nums2 正确 2.返回列表某一元素的值可以使用index函数 aList = [123, 'xyz', 'runoob' ...
- 前端实现app引导页面动画效果
插件描述:jQuery引导插件TourTip 交互式可视化指南网页上的元素.使用方法 步骤1: 将以下标记添加到您的文档的<head> 你还需要复制旁边插件的css文件夹和下载的IMG文件 ...
- Linux基础训练题型(下)
8.在题3的基础上,使用命令调换passwd文件里root位置和/bin/bash位置?即将所有的第一列和最后一列位置调换? 例: 默认:root:x:0:0:root:/root:/bin/bash ...
- ZuulServlet源码分析及ZuulFilter加载
参考https://yq.aliyun.com/wenji/2...https://blog.csdn.net/lds2227... 1.声明ZuulServlet @Configuration @E ...
- sql server isnull函数
isnull函数 --ISNULL() 函数用于规定如何处理 NULL 值 语法:SELECT ISNULL(check_expression, replacement_value) --check_ ...
- Express multer 文件上传
npm multer 文件上传 Express app 范本就不写了,仅记录一下上传部分的代码. const fs = require('fs'); const express = require(' ...
- html基础知识(总结自www.runoob.com)
HTML属性 属性 描述 class 为html元素定义一个或多个类名(classname)(类名从样式文件引入) id 定义元素的唯一id style 规定元素的行内样式(inline style) ...
- 富文本编辑器--引入demo和简单使用
wangEditor —— 轻量级 web 富文本编辑器,配置方便,使用简单.支持 IE10+ 浏览器. 官网:www.wangEditor.com 文档:www.kancloud.cn/wangfu ...
- jQuery获取当前按钮的id
function test(e) { $(e.target).attr('id') } // 记得带上点击事件
- Linux 的终端 Terminal
打开终端: 方式一:在全部应用中搜索Terminal 方式二:Ctrl+Alt+T 快捷方式打开终端 终端指令查询 如果忘记终端指令而只记得前几位可以只输入前几个字母后按Tab键查询 终端清屏 键入c ...