OB运维 | 连接 kill 中的 session_id

news2024/9/20 15:37:10

作者:姚嵩

外星人…

本文来源:原创投稿

*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。


背景:

通过 obproxy 连接 OB 后,发现:

kill 命令使⽤ show processlist 中的 ID 能执⾏成功,

使⽤ information_schema.processlist

或者 oceanbase.__all_virtual_processlist 中的ID进⾏kill是失败的。

于是就进⾏了各种连接测试,解惑两个问题:

  1. kill中session_id的来源;
  2. 是否可以⼀次性⼲掉⼀个租户的所有连接;

测试说明:

说明:

session_id 是 kill 语句的参数,session_id和下⽂中的ID是同⼀对象;

视图information_schema.processlist的数据来源于表oceanbase.__all_virtual_processlist 。

登陆命令说明(以本⼈测试的环境为例):

登陆observer:

mysql -uroot@sys -p -P2881 -h ${oberver_ip} -c -A oceanbase

登陆obproxy:

mysql -uroot@sys#yjn_test -p -P2883 -h ${obproxy_ip} -c -A oceanbase

测试案例

登陆某个observer的节点:

⽬标:

确认observer上

show processlist

表information_schema.processlist

表oceanbase.__all_virtual_processlist

获取的ID是否相同?

执⾏语句:

show processlist ;
select * from information_schema.processlist ;
select id,user,host,db,command,time,state,info from oceanbase.__all_virtual_processlist ;

结果:

3个语句获得的ID是相同的,可以通过上⾯3种⽅式获取session_id ;

登陆某个obproxy节点:

⽬标:

确认obproxy上

show processlist

表information_schema.processlist

表oceanbase.__all_virtual_processlist

获取的ID是否相同?

执⾏语句:

show processlist ;
select * from information_schema.processlist ;
select id,user,host,db,command,time,state,info from oceanbase.__all_virtual_processlist ;

结果:

information_schema.processlist 和 oceanbase.__all_virtual_processlist 中的ID⼀致;

show processlist 中的记录和上⾯2表的ID不⼀致,执⾏kill语句的时候,采⽤的是show processlist中的ID。

通过observer和通过obproxy登陆看到的 oceanbase.__all_virtual_processlist 的数据是⼀致的;

登陆集群内不同observer的节点:

⽬标:

确认⽤户登陆⼀个observer是否能看到登陆其他observer的session信息?

通过不同observer登陆查看session信息(super权限⽤户登陆):

结果:

在⼀个observer上可以看到其他observer的登陆信息;

登陆不同的obproxy(他们连接相同的OB):

⽬标:

确认⽤户登陆⼀个obproxy是否能看到登陆其他obproxy的session信息?

执⾏语句:

show processlist ;

通过不同obproxy登陆查看session信息:

结果:

在⼀个obproxy上通过show processlist语句不能看到其他obproxy的session信息;

测试总结:

1.视图 information_schema.processlist 的数据来源于 表oceanbase.__all_virtual_processlist;

命令 “show create table information_schema.processlist \G” 可以确认。

2.表oceanbase.__all_virtual_processlist 中记录的是所有到OB的连接信息;

客户可能直连observer,也可能是通过obproxy连接OB,所有连接信息都会记录到表中;

3.show processlist查看的是客户端连接到软件的信息,所以当通过obproxy连接OB时,show processlist展示的是连接到obproxy的信息,⽽不是连接到OB的信息;

当直连obsever时,show processlist展示的是连接OB的信息;

4.obproxy相当于observer的客户端,所以连接不同的obproxy,执⾏show processlist看到的连接信息是不同的,它们是相互独⽴的;

释疑:

问题1:

kill中session_id的来源?

答案1:

OB中的kill命令是为了⼲掉⼀个session或者⼲掉这个session对应的SQL语句。

为了这个⽬的,可以⼲掉前侧连接(指来源于客户端的连接),或者⼲掉后侧连接(连接到后侧的连接)。

通过 show processlist 查看前侧连接,即查看客户端到软件(例如: obproxy)的连接ID;

也可以直连observer,通过oceanbase.__all_virtual_processlist查看后侧连接。

在执⾏kill命令时,可以通过任意⽅式连接OB,并通过show processlist获取连接ID;

也可以通过直连后侧的observer,通过oceanbase.__all_virtual_processlist表获取连接ID;

问题2:

是否可以⼀次性⼲掉⼀个租户的所有连接;

答案2:

因为前侧连接通过show processlist只能查看当前客户端到软件的连接信息,查不到其他前侧的连接信息。例如:客户通过多个obproxy连接OB,如果我们连接其中⼀个obproxy执⾏show processlist获取的连接是不全的。

我们可以直连observer,并执⾏以下SQL,得到⼲掉租户 tenant_ys 的所有连接的命令:

select concat('kill ',id,';') from oceanbase.__all_virtual_processlist where tenant='tenant_ys' ;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/384175.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何写出让人看不懂的MATLAB代码?

最近呢有不少好奇的伙伴私下问咱这是怎么实现大幅度降低matlab代码可读性。于是咱准备将相关的资源分享给大家,这个工具的根来源于大神thrynae (Rik)公开分享一款名叫minify的小工具图片。 咱也不藏着掖着,其实大家用minify作为关键词检索,不…

学生成绩管理系统/学生信息管理系统

文章目录项目介绍一、技术栈二、项目功能介绍三、功能页面展示四、获取代码项目介绍 一、技术栈 编程语言:Java 技术栈:ServletJspJdbcEasyUIjQueryAjax面向接口编程 二、项目功能介绍 用户角色:学生、教师、系统管理员。; 管…

Nuxt 3.0 全栈开发

Nuxt 3.0 全栈开发 - 杨村长 - 掘金小册核心知识 工程架构 全栈进阶 项目实战,快速精通 Nuxt3 开发!。「Nuxt 3.0 全栈开发」由杨村长撰写,299人购买https://s.juejin.cn/ds/S6p7MVo/ 这门课我会全面讲解 Nuxt3 核心知识,然后…

【uni-app教程】一、UniAPP 介绍

一、UniAPP 介绍 (1) 什么是 UniAPP? uni-app 是一个使用 Vue.js 开发所有前端应用的框架,开发者编写一套代码,可发布到 iOS,Android,HS,以及各种小程序(微信/支付宝/百度/头条/QQ/钉钉》等多个平台&#…

Docker之部署Canal

Canal 就是一个同步增量数据的一个工具。 目录概念Mysql开启binlog是否开启binlog开启binlog日志创建授权用户部署Canal拉取镜像挂载properties配置文件创建容器概念 canal是阿里巴巴旗下的一款开源项目,纯Java开发。基于数据库增量日志解析,提供增量数…

VTK例子--使用不同的vtkActor同时显示灰度图、体渲染、多边形

在实际项目中,常遇到不同类型的数据在同一个渲染窗口显示;如网格多边形与灰度图像的显示、体渲染与多边形的显示、体渲染与灰度图像的显示,如下面几张图的效果;多边形灰度图像体渲染多边形体渲染灰度图像如何实现这种混合显示的效…

怎么连接同局域网下的其他同事的mysql

**一、双击运行MySQL 5.5 Command Line Client。**然后输入你这个设备的MySQL的root账户密码 二、输入grant all privileges on *.* to root% identified by"root";(identified by后面的是别人要登入的密码)后回车。这样就设置局域网内所有ip都…

【NLP相关】NLP的发展历程

❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博…

C++实现AVL树

目录 一、搜索二叉树 1.1 搜索二叉树概念 二、模拟实现二叉搜索树 2.1 框架 2.2 构造函数 2.2.1 构造函数 2.2.2 拷贝构造 2.2.3 赋值拷贝 2.3 插入函数 2.3.1 insert() 2.3.2 RcInsert() 递归实现 2.4 删除结点函数 2.4.1 Erase() 2.4.2 RcErase() 2.5 中序遍历…

Nuxt 3.0 全栈开发:五种数据获取 API 选择和应用最佳实践

Nuxt 3.0 全栈开发 - 杨村长 - 掘金小册核心知识 工程架构 全栈进阶 项目实战,快速精通 Nuxt3 开发!。「Nuxt 3.0 全栈开发」由杨村长撰写,299人购买https://s.juejin.cn/ds/S6p7MVo/ 上一讲我们学习了如何基于 API Route 编写接口&#…

12.2 基于Django的服务器信息查看应用(CPU信息)

文章目录CPU信息展示图表展示-视图函数设计图表展示-前端界面设计折线图和饼图展示饼图测试折线图celery和Django配合实现定时任务Windows安装redis根据数据库中的数据绘制CPU折线图CPU信息展示 图表展示-视图函数设计 host/views.py def cpu(request):logical_core_num ps…

【Unity VR开发】结合VRTK4.0:创建人工按钮

语录: 人生需要准备的,不是昂贵的茶,而是喝茶的心情。 前言: 按钮按下抬起是虚仿中经常会出现的功能,那么如何去表现呢,我们可以使用线性变换驱动器对人工按钮进行装箱,以对来自交互器的碰撞做…

Netty——心跳机制与断线重连

心跳机制与断线重连心跳机制IdleStateHandler客户端服务端测试正常情况异常情况总结断线重连为了保证系统的稳定性,心跳机制和断线重连可是必不可少的,而这两个在Netty中也是非常好实现的心跳机制 我们以客户端发送心跳为例,平时我们的心跳实…

linux常用命令介绍 04 篇——uniq命令使用介绍(Linux重复数据的统计处理)

linux常用命令介绍 04 篇——uniq命令使用介绍(Linux重复数据的统计处理)1. uniq 使用语法2. sort 简单效果3. uniq 使用例子3.1 不加任何选项3.1.1 不用 sort 效果3.1.2 uniq 结合 sort 一起使用3.2 使用选项例子3.2.1 去重打印(或打印不重复…

12 nuxt3学习(配置)

链接: nuxt3官网 nuxt简介 vue3技术栈:Nuxt3 是基于 Vue3 Vue Router Vite 等技术栈,全程 Vue3Vite 开发体验(Fast)。自动导包:Nuxt 会自动导入辅助函数、组合 API和 Vue API ,无需手动导入。 基于规范…

卡方分布、非中心卡方分布详解 (概念、求阈值方法、非中心化参数求解办法等)

一、相关概念 1、卡方分布 若n个 相互独立 的随机变量 ξ₁、ξ₂、……、ξn ,均服从 标准正态分布N(0,1),则这n个服从标准正态分布的随机变量的 平方和 构成一新的随机变量,其分布规律称为卡方分布(chi-squaredistribution);其中参数n称为自由度(通俗讲,样本中独立…

有关数据库的一级、二级、三级封锁协议

一级封锁协议 一级封锁协议是指,事务T在修改数据R之前必须先对其加X锁,直到事务结束才释放。事务结束包括正常结束(COMMIT)和非正常结束(ROLLBACK).一级封锁协议可防止丢失修改,并保证事务T是可恢复的。在…

SpringBoot热部署

启动热部署 关于热部署 重启(Restart):自定义开发代码,包含类、页面、配置文件等,加载位置restart类加载器重载(ReLoad):jar包,加载位置base类加载器开启开发者工具 导…

gma 地理空间绘图:(1) 绘制简单的世界地图-2.设置经纬网

内容回顾 gma 地理空间绘图:(1)绘制简单的世界地图-1.地图绘制与细节调整 方法 AddGridLines(LONRange (-180, 180, 15), LATRange (-90, 90, 15), ShowLON True, ShowLAT True, LineColor ‘gray’, LineStyle (0, (6, 6)), LineWidth 0.3) 功能&#xf…

10种常见网站安全攻击手段及防御方法

在某种程度上,互联网上的每个网站都容易遭受安全攻击。从人为失误到网络罪犯团伙发起的复杂攻击均在威胁范围之内。 网络攻击者最主要的动机是求财。无论你运营的是电子商务项目还是简单的小型商业网站,潜在攻击的风险就在那里。 知己知彼百战不殆&…