oracle查看session的语句

1.查看session可以把status改为ACTIVE和INACTIVE

v$session 和gv$session 只在RAC中区别明显,有g是全局的,rac的两个数据库中的内容,没有是但实例的数据库的,内容不全

rac么?  gv$开头视图是rac全局的,v$开头是本节点的

gv$session比v$session多一个字段而已: INST_ID

 

select machine ,count(*) from gv$session where logon_time < sysdate -1 and status ='INACTIVE' group by machine;

 

2.查看目前的session已经正在执行的sql

SELECT S.USERNAME,
S.SID,
S.SERIAL#,
S.INST_ID,
S.EVENT,
S.WAIT_CLASS,
S.SQL_EXEC_START,
S.LOGON_TIME,
S.ACTION,
SQ.SQL_TEXT,
S.MACHINE
FROM GV$SESSION S, GV$SQLAREA SQ
WHERE S.STATUS = 'ACTIVE'
AND S.USERNAME IS NOT NULL
AND S.SQL_ID = SQ.SQL_ID;

 

 

3.单节点生成批量kill session的sql

select 'alter system kill session ''' || sid || ',' || serial# || ''' immediate;' cmd from v$session

where username is not null

and status = 'ACTIVE'

4.RAC架构生成批量kill session的sql

方法一、在节点一执行

select 'alter system kill session ''' || sid || ',' || serial# || ''' immediate;' cmd from v$session

where username is not null

and status = 'ACTIVE'

生成的kill语句,在节点一服务器执行

在节点二执行

select 'alter system kill session ''' || sid || ',' || serial# || ''' immediate;' cmd from v$session

where username is not null

and status = 'ACTIVE'

生成的kill语句,在节点二服务器执行

需要分别杀掉

方法二、在一个节点执行

select 'alter system kill session ''' || sid || ',' || serial# || ''' immediate;' cmd
from gv$session
where username is not null and to_char(prev_exec_start,'yyyy-mm-dd hh24:mi:ss') < '2021-10-18 10:37:00' and status = 'INACTIVE'
and inst_id=1;

inst_id=1 指定节点,节点二可以用inst_id=2

生成的kill语句,在节点二服务器执行

 

 

生成删除指定时间点的KILL session语句

select 'alter system kill session ''' || sid || ',' || serial# || ''' immediate;' cmd
from v$session
where username is not null and to_char(prev_exec_start,'yyyy-mm-dd hh24:mi:ss') < '2021-10-5 00:00:00' and status = 'INACTIVE'

 生成指定machine批量kill的语句

select 'alter system kill session ''' || sid || ',' || serial# || ''' immediate;' cmd
from v$session
where username is not null and MACHINE like 'mes%' and status = 'INACTIVE'

4. 查看某个时间点的active session的数量

select 'alter system kill session ''' || sid || ',' || serial# || ''' immediate;' cmd
from v$session
where username is not null and MACHINE like 'mes%' and status = 'INACTIVE'

 

5. Kill session的方法

 

 

 

posted @   学的都会  阅读(6396)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示