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
- OB運維 | tenant--刪除租戶的流程設計運維NaN
- Oracle 自動化運維-Python連線OracleOracle運維Python
- 使用pt-kill根據一定的規則來kill連線的方法
- 運維前線:一線運維專家的運維方法、技巧與實踐1.3 運維自動化的困境和價值運維
- 配置TimesTen客戶端連線[TimesTen運維]客戶端運維
- 連線查詢中不等式的運用
- 【IT運維】公司內網伺服器可以遠端桌面連線嗎?怎麼連線?運維內網伺服器
- 連線多種型別的伺服器降低維護和運營成本型別伺服器
- SQL中的左連線和右連線SQL
- [玩轉MySQL之二]MySQL連線機制淺析及運維MySql運維
- 半自動化運維之快速連線到指定環境(一)運維
- 運維中的接入管理梳理運維
- oracle中的連線Oracle
- kafka 運維中遇到的問題Kafka運維
- Shell 中的連線符:&&、||
- 2.2連線和路由表的維護路由
- Oracle中Kill session的研究OracleSession
- 關於自動化運維的思考-基線運維
- 伺服器安全運維規範—安全運維的事前、事中、事後伺服器運維
- SQL Server中內連線和外連線的區別SQLServer
- 四:GTID中的運維(筆記)運維筆記
- java連線池解決連線中斷Java
- Oracle中Kill sessionOracleSession
- 雲端計算運維學習---Linux監控tcp連線數及狀態運維LinuxTCP
- PHP中的連線字元. 的用法PHP字元
- linux運維需要掌握什麼知識?linux運維學習路線Linux運維
- linux運維學習路線,linux運維需要掌握什麼知識?Linux運維
- 大話Oracle中的kill sessionOracleSession
- sql和hql中join語句區別,以及hibernate中內連線,迫切內連線,左外連線,迫切左外連線,右外連線的區別(合集)...SQL
- 迴歸一線應用運維的底線——先做好最基本的事運維
- 運維中的“後見之明”現象運維
- 機器學習在 IT 運維管理中的必要性!機器學習運維
- Oracle 19c中連線RMAN客戶端的連線方法Oracle客戶端
- WebSocket系列之如何建立和維護可靠的連線Web
- Oracle中Kill session [轉]OracleSession
- 集中運維與分散運維的比較 - thenewstack運維
- 運維經理的運維經驗總結運維