OB運維 | 連線 kill 中的 session_id
外星人...
*愛可生開源社群出品,原創內容未經授權不得隨意使用,轉載請聯絡小編並註明來源。
背景:
於是就進⾏了各種連線測試,解惑兩個問題:
測試說明:
# 說明:
# 登陸命令說明(以本⼈測試的環境為例):
登陸 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 的節點:
⽬標:
執⾏語句:
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
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許可權⽤戶登陸):
結果:
登陸不同的 obproxy (他們連線相同的OB):
⽬標:
執⾏語句:
show processlist ;
結果:
在⼀個obproxy上透過show processlist語句不能看到其他obproxy的session資訊;
1. 檢視 information_schema.processlist 的資料來源於 表oceanbase.__all_virtual_processlist;
命令 "show create table information_schema.processlist \G" 可以確認。
釋疑:
問題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:
因為前側連線透過show processlist只能檢視當前客戶端到軟體的連線資訊,查不到其他前側的連線資訊。例如:客戶透過多個obproxy連線OB,如果我們連線其中⼀個obproxy執⾏show processlist獲取的連線是不全的。
select concat('kill ',id,';') from oceanbase.__all_virtual_processlist where tenant='tenant_ys' ;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70024420/viewspace-2937355/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- OB運維 | tenant--刪除租戶的命令運維NaN
- 使用pt-kill根據一定的規則來kill連線的方法
- OB運維 | tenant--刪除租戶的流程設計運維NaN
- Oracle 自動化運維-Python連線OracleOracle運維Python
- 【IT運維】公司內網伺服器可以遠端桌面連線嗎?怎麼連線?運維內網伺服器
- 連線多種型別的伺服器降低維護和運營成本型別伺服器
- [玩轉MySQL之二]MySQL連線機制淺析及運維MySql運維
- 運維中的接入管理梳理運維
- 四:GTID中的運維(筆記)運維筆記
- kafka 運維中遇到的問題Kafka運維
- linux運維需要掌握什麼知識?linux運維學習路線Linux運維
- linux運維學習路線,linux運維需要掌握什麼知識?Linux運維
- 雲端計算運維學習---Linux監控tcp連線數及狀態運維LinuxTCP
- DevSecOps 運維模式中的安全性dev運維模式
- 運維指令碼:網路連通性測試運維指令碼
- PHP中的連線字元. 的用法PHP字元
- 線上故障的排查清單,運維拿走不謝!運維
- C#中的?.和!.運算子(連結)C#
- WebSocket系列之如何建立和維護可靠的連線Web
- 運維中的“後見之明”現象運維
- 集中運維與分散運維的比較 - thenewstack運維
- clickhouse 的運維運維
- Oracle 19c中連線RMAN客戶端的連線方法Oracle客戶端
- 做運維的感悟(做運維需要考慮事,運維組織結構,運維學習地圖....)運維地圖
- C#中的連線池管理C#
- SQL中的四種連線方式SQL
- XenServer中VMware的Console的連線方法Server
- 只有老運維人才能懂的運維乾貨運維
- 12、Swoole 中 TCP、UDP 和長連線、短連線TCPUDP
- vmware中控制檯的連線已斷開…正在嘗試重新連線
- Oracle 遷移到 OB 過程中的函式改造案例Oracle函式
- 工作中Redis有哪些好用的運維工具Redis運維
- [20211018]運維中關於history的問題.txt運維
- IT運維之自動化運維運維
- 精通 Linux 的 “kill” 命令Linux
- Java 字串連線運算子幹了什麼?Java字串
- Python 賦值與運算子和連線符Python賦值
- 我的運維故事運維