首页 数据库 mysql教程 关于kill session的分析

关于kill session的分析

Jun 07, 2016 pm 04:38 PM
ki kill session 关于 分析 朋友

有朋友聊到了关于kill session时会话长时间没有释放,而这个小鱼一般是通过os级别的kill spid来释放session和process的,如果用oracle的kill session可能会遇见进程和会话长时间不释放,下面来做一点简单的剖析。 Session A环境: SQL> conn test/test Conn

有朋友聊到了关于kill session时会话长时间没有释放,而这个小鱼一般是通过os级别的kill spid来释放session和process的,如果用oracle的kill session可能会遇见进程和会话长时间不释放,下面来做一点简单的剖析。

Session A环境:

SQL> conn test/test
Connected.
SQL> select sid,serial#,paddr,status from v$session where sid=userenv('sid');

SID SERIAL# PADDR STATUS
---------- ---------- ---------------- --------
1147 6874 000000021A0D0A70 ACTIVE

Session B环境:
SQL> alter system kill session '1147,6874';

System altered.

SQL> select sid,serial#,paddr,status from v$session where sid=1147;

SID SERIAL# PADDR STATUS
---------- ---------- ---------------- --------
1147 6874 000000021A6A9020 KILLED

此时我们查看这个被killed的session只是将session的状态标记为killed,然后将paddr(session对应的服务器进程的地址)标记为一个虚拟的地址。

过了一段时间,我们还是在Session B环境查询被kill掉的会话,发觉这个会话依然是存在的。
SQL> select sid,serial#,paddr,status from v$session where sid=1147;

SID SERIAL# PADDR STATUS
---------- ---------- ---------------- --------
1147 6874 000000021A6A9020 KILLED

而如果我们重新在原来的session A环境做一些命令查询,此时会报出session被killed的提示

SQL> select sid,serial#,paddr,status from v$session where sid=userenv('sid');
select sid,serial#,paddr,status from v$session where sid=userenv('sid')
*
ERROR at line 1:
ORA-00028: your session has been killed

再次回到session B环境查询这个被killed的会话
SQL> select sid,serial#,paddr,status from v$session where sid=1147;

no rows selected

发现已经没有任何数据了,此时这个session对应的process也已经被pmon进程释放了。

记得小鱼处理过一个win的库,有好几百的session在报出相应的热点块现象,通过kill session后,过了很长时间所有的被killed掉session都没有释放掉,而这个可能出现的原因数据库负载太高了,pmon进程并没有去释放掉这些session,再就是在pmon进程释放之前,需要touch该session才会被pmon进程清除(这个touch的含义是必须有对该session做查询等请求递交给server端),一般建议还是通过os级别的kill来释放session和process。

那么如果我们已经在用kill session的方式killed session,但是进程依然不释放,此时我们想通过kill spid的方式来释放session和process。
SQL> select program,spid from v$process where addr in
2 (select p.addr from v$process p where p.pid
1
3 minus
4 select s.paddr from v$session s);

PROGRAM SPID
------------------------------------------------ ------------------------
oracle@dbserver (D000) 26520
oracle@dbserver (S000) 26522
oracle@dbserver (TNS V1-V3) 27932

可以通过上面的查询先查出两个视图中地址不一致的进程,这里需要注意不要kill掉系统的进程,比如这里我们就可以通过上面的查询手动kill -9 27932来释放这个session和对应的process。

SQL> !kill -9 27932

SQL> select sid,serial#,paddr,status from v$session where sid=1147;

no rows selected

此时即使我们不touch原来那个session,通过os kill的方式,sesison和process都已经马上释放了,个人也建议在维护生产环境中尽量通过os的方式来kill掉需要的session和process。

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

session失效怎么解决 session失效怎么解决 Oct 18, 2023 pm 05:19 PM

session失效通常是由于 session 的生存时间过期或者服务器关闭导致的。其解决办法:1、延长session的生存时间;2、使用持久化存储;3、使用cookie;4、异步更新session;5、使用会话管理中间件。

如何在uniapp中实现数据统计和分析 如何在uniapp中实现数据统计和分析 Oct 24, 2023 pm 12:37 PM

如何在uniapp中实现数据统计和分析一、背景介绍数据统计和分析是移动应用开发过程中非常重要的一环,通过对用户行为的统计和分析,开发者可以深入了解用户的喜好和使用习惯,从而优化产品设计和用户体验。本文将介绍如何在uniapp中实现数据统计和分析的功能,并提供一些具体的代码示例。二、选择合适的数据统计和分析工具在uniapp中实现数据统计和分析的第一步是选择合

PHP Session 跨域问题的解决方法 PHP Session 跨域问题的解决方法 Oct 12, 2023 pm 03:00 PM

PHPSession跨域问题的解决方法在前后端分离的开发中,跨域请求已成为常态。在处理跨域问题时,我们通常会涉及到session的使用和管理。然而,由于浏览器的同源策略限制,跨域情况下默认情况下无法共享session。为了解决这个问题,我们需要采用一些技巧和方法来实现session的跨域共享。一、使用cookie跨域共享session最常

抖音粉丝和朋友的区别是什么?如何涨粉? 抖音粉丝和朋友的区别是什么?如何涨粉? Mar 07, 2024 pm 09:52 PM

作为中国最热门的短视频平台之一,抖音吸引了大量的用户和粉丝。在抖音上,我们常常听到关于粉丝和朋友的说法,但你知道抖音粉丝和朋友之间有何区别吗?下面将详细解答这个问题。一、抖音粉丝和朋友的区别是什么?在抖音上,粉丝是指那些对你的内容感兴趣并选择关注你的人。他们会通过点赞、评论等方式与你互动,建立一种虚拟的连接。而朋友则是在现实生活中认识的人,彼此之间拥有真实的社交关系。在抖音这样的社交平台上,粉丝和朋友之间的互动方式和深度可能会有所不同,但都是构建和维系社交网络的重要元素。粉丝数量是指关注您账号的

JavaScript和PHP的cookie之间有哪些区别? JavaScript和PHP的cookie之间有哪些区别? Sep 02, 2023 pm 12:29 PM

JavaScriptCookie使用JavaScriptcookie是记住和跟踪偏好、购买、佣金和其他信息的最有效方法。更好的访问者体验或网站统计所需的信息。PHPCookieCookie是存储在客户端计算机上的文本文件并保留它们用于跟踪目的。PHP透明地支持HTTPcookie。JavaScriptcookie如何工作?您的服务器将一些数据发送到访问者的浏览器cookie的形式。浏览器可以接受cookie。如果存在,它将作为纯文本记录存储在访问者的硬盘上。现在,当访问者到达站点上的另一个页面时

织梦CMS二级目录打不开的原因分析 织梦CMS二级目录打不开的原因分析 Mar 13, 2024 pm 06:24 PM

标题:解析织梦CMS二级目录打不开的原因及解决方案织梦CMS(DedeCMS)是一款功能强大的开源内容管理系统,被广泛应用于各类网站建设中。然而,有时候在搭建网站过程中可能会遇到二级目录无法打开的情况,这给网站的正常运行带来了困扰。在本文中,我们将分析二级目录打不开的可能原因,并提供具体的代码示例来解决这一问题。一、可能的原因分析:伪静态规则配置问题:在使用

Python在智能交通系统中的应用案例分析 Python在智能交通系统中的应用案例分析 Sep 08, 2023 am 08:13 AM

Python在智能交通系统中的应用案例分析摘要:随着智能交通系统的快速发展,Python作为一种多功能、易于学习和使用的编程语言,被广泛应用于智能交通系统的开发和应用中。本文通过分析Python在智能交通系统中的应用案例,并给出相关的代码示例,展示了Python在智能交通领域中的优势和应用潜力。引言智能交通系统是指利用现代通信、信息、传感等技术手段,通过对交

ThinkPHP6代码性能分析:定位性能瓶颈 ThinkPHP6代码性能分析:定位性能瓶颈 Aug 27, 2023 pm 01:36 PM

ThinkPHP6代码性能分析:定位性能瓶颈引言:随着互联网的快速发展,更高效的代码性能分析对于开发者来说变得越发重要。本文将介绍如何使用ThinkPHP6进行代码性能分析,以便定位和解决性能瓶颈问题。同时,我们还将通过代码示例来帮助读者更好地理解。性能分析的重要性代码性能分析是开发过程中不可或缺的一环。通过分析代码的性能,我们可以了解到哪些地方消耗了大量资

See all articles