【转】如何迅速地杀掉Oralcle的一些session

2024-02-06 23:58
文章标签 session 杀掉 迅速 oralcle

本文主要是介绍【转】如何迅速地杀掉Oralcle的一些session,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、问题的提出 
  很多的时候我们迅速的杀掉Oralcle的一些session,理由大体如下: 
  

  1、 一些时候,由于我们的数据量很大,相应的事务大并且多,在做shutdown immediate的时候会花费好多的时间,而我们却想用shutdown immediate的方式,而又要把数据库迅速的shutdown下来。 
  
  2、 我们的应用可能使用了会话控制,即在应用的层面控制了一些用户的连接的数量。但有时可能网络发生的瞬断,从而就产生了一些死进程,他们的状态为Inactive的状态。当我们用alter system kill session ‘sid,serial#’进行清除时,这些session的状态又变成了killed,这些就由Pmon进程来慢慢进行清除了,而你恰恰又是个急脾气。 
  
  3、 系统忽然慢了现来,你发现是某个session在做怪,想迅速把它迅速结束掉。 
  
  二、处理方法 
  其实处理方法很简单,是被一些人称为“谋杀”的一种方法。因为一个session会对应着操作系统中相应的一个进程(process),我们不使用Alter system kill session这种方式了,取而代之则是kill的方式,当session的后台进程被杀掉了,便会促使懒散的Pmon进程迅速进行清理工作。 
  
  1、 以一个session做以示例, 
  
  a、 找到你要杀掉的那个session, 并记下paddr 
  
  select sid, username, paddr, status from v$session 
  where username = '用户名' and 
  status = 'INACTIVE'; 
  
  b、 找到这个session所对应的spid 
  
  select * from v$process where addr = '上面查寻的paddr'; 
  c、 杀掉spid所标识的那个进程 
  
  如果你的Oracle是在Unix平台上的,可以用kill。 
  
  $kill spid 
  
  如果你的Oracle是在windown平台上的,有一些的不同,因为windown是以thead来代替process的,需要用到sid和spid两个值,所用的命令也由kill替换为Orakill,格式为rakill sid spid 
  
  C:/>orakill sid  spid 
  
  d、 再查一下v$session,看会话在不在了。 
  
  2、 如何谋杀掉所有的Oracle的用户的进程呢? 
  
  a、windows的环境,执行如下图中的SQL,并把结果存成.bat的文件,比如kill.bat, 执行一下kill.bat就可以了。 
  
  select 'orakill '||sid||' '||spid as thread from 
  sys.v_$process p, sys.v_$session s 
  where sid > 6 and 
  p.addr = s.paddr ; 
  
  b、 Unix的环境相对来说就简单多了,执行如下的命令就可以了 
  
  $ ps -ef|grep $ORACLE_SID|grep -v ora_|grep LOCAL=NO|awk '{print $2}'|xargs kill 
  
  然后你再shutdown immediate就很快的了。 
  
  有一些死锁进程,异常退出后用 alter system kill session 'sid, serial#';无法释放会话 可从操作系统直接处理。

这篇关于【转】如何迅速地杀掉Oralcle的一些session的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/685932

相关文章

pythons强行杀掉线程的方法

使用ctypes强行杀掉线程 import threading import time import inspect import ctypes def _async_raise(tid, exctype): """raises the exception, performs cleanup if needed""" tid = ctypes.c_long(tid) if n

SIGMOD-24概览Part7: Industry Session (Graph Data Management)

👇BG3: A Cost Effective and I/O Efficient Graph Database in ByteDance 🏛机构:字节 ➡️领域: Information systems → Data management systemsStorage management 📚摘要:介绍了字节新提出的ByteGraph 3.0(BG3)模型,用来处理大规模图结构数据 背景

flask-login 生成 cookie,session

flask-login 生成 cookie,session Flask-Login login_user() 显示来自 Set-Cookie 标头的加密 cookie # 模拟一个用户类class User(UserMixin):def __init__(self, id):self.id = id@app.route('/login')def login():# 模拟用户登录过程user

Session用法详解

本文引用http://www.accdb.net/article.asp?id=1115 阅读本文章之前的准备   阅读本文章前,需要读者对以下知识有所了解。否则,阅读过程中会在相应的内容上遇到不同程度的问题。   懂得ASP/ASP.NET编程    了解ASP/ASP.NET的Session模型    了解ASP.NET Web应用程序模型    了解ASP.N

报错:Reached the max session limit(DM8 达梦数据库)

报错:Reached the max session limit - - DM8 达梦数据库 1 环境介绍2 数据库启动SYSTEM IS READY后面日志3 数据库刚启动日志4 达梦数据库学习使用列表 1 环境介绍 某项目无法连接数据库,报错:超过最大会话数限制 , 检查 dmdba ulimit -a openfiles 已改检查 dm.ini 其中 MAX_SESSION

Requests库对session的支持

场景:如何获取登录时响应消息中的sessionid,以及如何在后续请求中把sessionid添到cookie中 Requests库提供了一个Session类,通过requests库中的session对象,requests库会自动帮我们保存服务端返回的cookie数据(set-cookie里的内容),也会在HTTP发出请求时自动在消息头中放入cookie数据。 用py模拟客户端接收响应消息:

Flask-Session扩展,使用Redis存储会话数据

深入理解Flask-session扩展Redis Flask 应用中使用 flask-session 扩展将 session 数据存储在 Redis 中是一种高效且可扩展的方法,特别是在需要处理大量用户或需要分布式部署的应用中。以下是如何在 Flask 应用中配置 flask-session 以使用 Redis 存储 session 的步骤: 1. 安装必要的库 首先,你需要安装 Flask

浏览器百科:网页存储篇-Session storage应用实例(九)

1.引言 在前面的文章中,我们详细介绍了如何在 Chrome 浏览器中打开并使用 Session storage 窗格,进行数据的查看、编辑和管理。作为网页存储技术的重要组成部分,sessionStorage在提升用户体验和数据管理能力方面发挥了重要作用。在本篇《浏览器百科:网页存储篇-Session storage应用实例(九)》中,我们将深入探讨sessionStorage的实际应用场景,通

springboot 联合redis实现session共享springsession (springMVC的在上一篇) [二〇一八年十一月十四日]]

1创建springboot工程: 这个就不bb了, 不过我只能用main方法跑, 用tomcat跑回报一个redis的getConfig异常, 不管了 2引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-redis</artifactId><version>1.

spring 配置spring-session+redis共享 涉及nginx+redis知识 (二〇一八年十一月十二日 )

前提: 单实例的工程下, session是一个非常好用的对象, 因为session属于服务器端, 而且对于用户(浏览器)来说是唯一的 但是针对集群(今天大拿跟我说了下集群和分布式的概念)来说的话, session共享就变得极其重要,因为session是属于服务器端的, 服务器A有session, 但是服务器B拿session是拿不到的 废话不多说, 开始上代码. 总共分三步: 第一步: 首先