Oracle 彻底 kill session

为什么80%的码农都做不了架构师?>>>   hot3.png

--***************************

-- Oracle kill session

--***************************

 

 

  kill session DBA到的事情之一。如果kill 掉了不kill session具有破坏性,因此可能的避免这样错误发生。同应当注意,

如果kill sessionOracle 后台程,容易库实例宕机。

  通常情下,不需要操作系统级别杀Oracle会话进程,但是如此,下面的描述中出了Oracle级别杀会话以及操作系统级别杀程。

 

 

一、得需要kill session的信息(使用V$SESSION GV$SESSION视图)

 

  SET LINESIZE 180

  COLUMN spid FORMAT A10

  COLUMN username FORMAT A10

  COLUMN program FORMAT A40

 

  SELECT s.inst_id,

         s.sid,

         s.serial#,

         p.spid,

         s.username,

         s.program,

         s.paddr,

         s.STATUS

  FROM   gv$session s

         JOIN gv$process p ON p.addr = s.paddr AND p.inst_id = s.inst_id

  WHERE  s.type != 'BACKGROUND';

 

     INST_ID        SID    SERIAL# SPID       USERNAME   PROGRAM                                       PADDR    STATUS

  ---------- ---------- ---------- ---------- ---------- --------------------------------------------- -------- --------

           1        146         23 27573      TEST       sqlplus@oracle10g (TNS V1-V3)                 4C621950 INACTIVE

           1        160         17 27610      SYS        sqlplus@oracle10g (TNS V1-V3)                 4C624174 ACTIVE

           1        144         42 27641      SCOTT      sqlplus@oracle10g (TNS V1-V3)                 4C624730 INACTIVE

        

二、使用ALTER SYSTEM KILL SESSION 命令实现

  法:

      SQL> ALTER SYSTEM KILL SESSION 'sid,serial#';

      SQL> ALTER SYSTEM KILL SESSION 'sid,serial#' IMMEDIATE;

    

    RAC境下的kill session ,需要搞清楚需要kill session 位于哪个节点,可以查询GV$SESSION视图获得。

    kill session 仅仅将会话杀掉。在有些候,由于大的事或需要较长SQL将导致需要killsession不能立即掉。这种

    况将收到 "marked for kill"提示(如下),一旦会话当前事或操作完成,该会话被立即掉。

   

    alter system kill session '4730,39171'

    *

    ERROR at line 1:

    ORA-00031: session marked for kill

 

 

  在下面的操作中将杀会话146144

    sys@AUSTIN> alter system kill session '146,23';

   

    System altered.

   

    sys@AUSTIN> alter system kill session '144,42';

   

    System altered.

   

    sys@AUSTIN> select inst_id,saddr,sid,serial#,paddr,username,status,program from gv$session where username is not null;

   

       INST_ID SADDR           SID    SERIAL# PADDR    USERNAME   STATUS   PROGRAM

    ---------- -------- ---------- ---------- -------- ---------- -------- ---------------------------------------------

             1 4C70BF04        144         42 4C6545A0 SCOTT      KILLED   sqlplus@oracle10g (TNS V1-V3)

             1 4C70E6B4        146         23 4C6545A0 TEST       KILLED   sqlplus@oracle10g (TNS V1-V3)

             1 4C71FC84        160         17 4C624174 SYS        ACTIVE   sqlplus@oracle10g (TNS V1-V3)

                 

     注意:在查询中可以看到被掉的会话PADDR地址生了化,查询结果中的色字体。如果多sessionkill 掉,sessionPADDR

     被改相同的程地址

 

  下面的找回被kill 掉的ADDR先前的地址

    SELECT s.username,s.status,

    x.ADDR,x.KSLLAPSC,x.KSLLAPSN,x.KSLLASPO,x.KSLLID1R,x.KSLLRTYP,

    decode(bitand (x.ksuprflg,2),,null,1)

    FROM x$ksupr x,v$session s

    WHERE s.paddr(+)=x.addr

    and bitand(ksspaflg,1)!=;      

   

    USERNAME   STATUS   ADDR       KSLLAPSC   KSLLAPSN KSLLASPO       KSLLID1R KS D

    ---------- -------- -------- ---------- ---------- ------------ ---------- -- -

               ACTIVE   4C623BB8         99          4 27468               275 EV 1

               ACTIVE   4C623040          9         24 27444                     1

               ACTIVE   4C622A84        101          4 27480               274 EV 1

               ACTIVE   4C6224C8          1         48 27450                     1

               ACTIVE   4C621F0C          1         48 27450                     1

               ACTIVE   4C6235FC          2          4 27468                     1

    SYS        ACTIVE   4C624174          2         15 27442                

               ACTIVE   4C62081C          1         48 27440                     1

               ACTIVE   4C621394          1         48 27440                     1

               ACTIVE   4C620DD8         11         24 27476                     1

               ACTIVE   4C61F6E8         15          4 27610                     1

               ACTIVE   4C620260        222         24 27450                     1

               ACTIVE   4C61FCA4          7         25 27573                     1

               ACTIVE   4C61F12C          6         25 27573                     1

               ACTIVE   4C61EB70          4         24 27458                     1

               ACTIVE   4C61E5B4          1         48 27440                     1

               ACTIVE   4C61DFF8          2         24 27444                     1

                        4C624730                                          

                        4C621950                                          

                        4C61DA3C                                          

                   

 

  或者根据下面的来获化的addr

    sys@AUSTIN> select p.addr from v$process p where pid <> 1

      2  minus

      3  select s.paddr from v$session s;

   

    ADDR

    --------

    4C621950

    4C624730                   

 

三、在操作系统级别杀会话

  会话对应的操作系ID

    sys@AUSTIN> select SPID from  v$process where ADDR in ('4C621950','4C624730') ;        

   

    SPID

    ----------

    27573

    27641

   

  使用kill 命令来杀操作系统级别进ID

    kill session -9 27573

   

    kill session -9 27641

 

四、会话SID

  SQL> select userenv('sid') from dual;

 

  USERENV('SID')

  --------------

             627

 

五、多个会话需要kill

  1.根据定的SID()找需要会话的信息,包括位于个实

    set linesize 160

    col program format a35

    col username format a18

    select inst_id,saddr,sid,serial#,paddr,username,status,program from gv$session

    where sid in ('2731','2734','2720','2678','2685')

    and username='CTICUST'

    order by inst_id;

   

       INST_ID SADDR                   SID    SERIAL# PADDR            USERNAME           STATUS   PROGRAM

    ---------- ---------------- ---------- ---------- ---------------- ------------------ -------- ---------------------------

             1 00000003DAF8F870       2678       8265 00000003DBC6CA08 MSS4USR            INACTIVE JDBC Thin Client

             1 00000003DAF98E48       2685         83 00000003DBC08510 MSS4USR            ACTIVE   JDBC Thin Client

             1 00000003DAFC7B80       2720          5 00000003DBBEDA20 MSS4USR            INACTIVE JDBC Thin Client

             1 00000003DAFD66F8       2731          3 00000003DBBE9AE0 SYS                ACTIVE  racgimon@svdg0028(TNS V1-V3)

             1 00000003DAFDA730       2734         15 00000003DBBEC268 MSS4USR            INACTIVE JDBC Thin Client

             2 00000003DAFD66F8       2731          1 00000003DBBE92F8                    ACTIVE   oracle@svdg0029 (ARC0)

   

    上面的查询中有一SID2731的位于2上。

    也可以通下面的方式来获RAC点信息,便于确定需要kill session究竟位于个节点。

   

      set linesize 160

      col HOST_NAME format a25

      SQL> select INSTANCE_NUMBER,INSTANCE_NAME,HOST_NAME,VERSION,STATUS from gv$instance order by 1;

 

      INSTANCE_NUMBER INSTANCE_NAME    HOST_NAME                 VERSION           STATUS

      --------------- ---------------- ------------------------- ----------------- ------------

                    1 O02WMT1A         svd0051                  10.2.0.4.0        OPEN

                    2 O02WMT1B         svd0052                  10.2.0.4.0        OPEN

                    3 O02WMT1C         svd0053                  10.2.0.4.0        OPEN

                   

  2.使用下面查询来生成kill session

    select 'alter system kill session '''|| sid ||',' ||SERIAL# ||''''||';'  from  gv$session

    where sid in ('2731','2734','2720','2678','2685')

    order by inst_id;

     

    得下列kill session句,根据要求由于此次需要掉的session全部位于1,因此登1行下面的  

        

    alter system kill session '2678,8265';

   

    alter system kill session '2685,83';

   

    alter system kill session '2720,5'

   

    alter system kill session '2731,3';

    

    alter system kill session '2734,15';

    

    alter system kill session '2731,1';    --命令不需要行,session位于2

            

六、有kill session考:

  Oracle How To:如何快速死占用(CPU,)库进   

  Oracle中Kill session

  Killing Oracle Sessions

 

七、更多

 

有关性能优化请参考

Oracle 硬解析与软解析

共享池的与优化(Shared pool Tuning)

Buffer cache 与优化(一)

Oracle 存(caching table)的使用

 

有关闪回特性请参考

Oracle 回特性(FLASHBACK DATABASE)

Oracle 回特性(FLASHBACK DROP & RECYCLEBIN)

Oracle 回特性(Flashback Query、Flashback Table)

Oracle 回特性(Flashback Version、Flashback Transaction)

 

有关基于用户管理的备份和备份恢复的概念请参考

Oracle 备份

Oracle 热备份

Oracle 备份复概

Oracle 例恢

Oracle 基于用管理恢(详细描述了介质恢复及其处理)

 

有关RMAN的恢复与管理请参考

RMAN 述及其体系结构

RMAN 配置、管理

RMAN 备份详

RMAN

 


原文链接: http://blog.csdn.net/robinson_0612/article/details/6439019

转载于:https://my.oschina.net/dtec/blog/47358

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/404382.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

消灭编译警告(Warning)

From: http://blog.csdn.net/liuysheng/article/details/7165143 如何看待编译警告 当编译程序发现程序中某个地方有疑问&#xff0c;可能有问题时就会给出一个警告信息。警告信息可能意味着程序中隐含的大错误&#xff0c;也可能确实没有问题。对于警告的正确处理方式应该…

[react-router] React-Router 3和React-Router 4有什么变化?添加了什么好的特性?

[react] React-Router 3和React-Router 4有什么变化&#xff1f;添加了什么好的特性&#xff1f; React-Router 4 从设计思想上进行改变&#xff0c;引入动态路由&#xff0c;将路由进行了拆分&#xff0c;将其放到了各自的模块中&#xff0c;不再有单独的 router 模块&#x…

WebService学习总结——调用第三方提供的webService服务

互联网上面有很多的免费webService服务&#xff0c;我们可以调用这些免费的WebService服务&#xff0c;将一些其他网站的内容信息集成到我们的Web应用中显示&#xff0c;下面就以获取天气预报数据。气象中心的管理系统将收集的天气信息并将数据暴露出来(通过WebService Server)…

【017】◀▶ C#学习(九) - ADO.NET

《C#入门经典&#xff08;中文第四版&#xff09;》在程序中访问数据库学习笔记 --------------------------------------------------------------------------------------------------------- ●● 目录&#xff1a; A0 ………… System.Data.SqlClient 命名空间 A1 ……………

[react] 浏览器为什么无法直接JSX?怎么解决呢?

[react] 浏览器为什么无法直接JSX&#xff1f;怎么解决呢&#xff1f; 因为浏览器只能解决原生的JS代码&#xff0c;jsx不属于原生的js&#xff0c;它是类似于html的语法&#xff0c;然后转化成一个js对象。 这个转化的过程就是通过Babel的babel/plugin-transform-react-jsx插…

vim 基础学习之文件跳转

1. -当前文件上次跳转之前的位置2. .-当前文件上次修改的位置,只要是发生了可能导致变化的命令操作就会被标记&#xff0c;哪怕实际结果没有变化3. ^-当前文件上次插入的位置,只要是发生了插入操作命令就会被标记&#xff0c;哪怕实际结果没有变化4. [-当前文件上次修改或者复制…

[react] react声明组件有哪几种方法,各有什么不同?

[react] react声明组件有哪几种方法&#xff0c;各有什么不同&#xff1f; 1、无状态组件 2、有状态组件 3、高阶组件 4、容器组件 5、回调组件 个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目…

【转】主流PHP框架间的比较(Zend Framework,CakePHP,CodeIgnit...

2019独角兽企业重金招聘Python工程师标准>>> 【转】主流PHP框架间的比较&#xff08;Zend Framework&#xff0c;CakePHP&#xff0c;CodeIgniter&#xff0c;Symfony&#xff0c;ThinkPHP&#xff0c;FleaPHP&#xff09; 2011年08月14日 星期日 12:51 转载自 leol…

[react] createElement与cloneElement两者有什么区别?

[react] createElement与cloneElement两者有什么区别&#xff1f; createElement是创建一个React元素&#xff0c;jsx即是这个函数的语法糖&#xff1b;它的函数签命是React.createElement(type, [props], [...children])cloneElement是拷贝一个React元素&#xff0c;可选择在…

第8章 Service基础Activity与Service绑定

要知道如果调用函数startService方法&#xff0c;那么即使你的程序退出了&#xff0c;但是Service依然运行在后台;也就是说此时想要停止service必须调用stopService方法。 现在我们把Activity与Service绑定在一起&#xff0c;那就是Service要随着程序的退出而终止&#xff0c;此…

[react-router] React-Router 4的switch有什么用?

[react-router] React-Router 4的switch有什么用&#xff1f; Switch的 子组件只能是Route或者Switch组件&#xff0c;它的作用是匹配到下面的第一个路由组件&#xff0c;下面的路由组件就不再进行匹配展示了 个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。…

linux_shell_根据网站来源分桶

应用场景&#xff1a; 3kw行url\thtml记录 【网站混合】 需要&#xff1a;按照网站来源分桶输出 执行shell cat */*pack.html|awk -F \t {split($1,arr,"/");sitearr[3];print $0 > site} 转载于:https://www.cnblogs.com/cphmvp/p/5139994.html

[react] 你知道Virtual DOM的工作原理吗?

[react] 你知道Virtual DOM的工作原理吗&#xff1f; Virtual DOM是什么&#xff1a;虚拟DOM是真实DOM的javascript对象的映射Virtual DOM的工作原理&#xff1a;数据驱动视图更新这个过程中&#xff0c;首先会改变虚拟DOM对象&#xff0c;一个视图的更新周期&#xff0c;首先…

C#正则表达式积累

感谢&#xff1a;侧身向南边 http://www.cnblogs.com/kissknife/archive/2008/03/23/1118423.html的分享给了自己学习的机会 -------------------------------------C#的正则表达式-------------------------------------------的作用&#xff1a;string x"D:\\My Huang…

如何利用业务时间提升自我

转载于:https://www.cnblogs.com/helloIT/articles/5140273.html

[react] react兄弟组件如何通信?

[react] react兄弟组件如何通信&#xff1f; 状态提升&#xff0c;通过父组件的state和方法传递到两个子组件 个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前端面试题

'800a0005' 图片上传出现写入文件失败的错误 -- 修改pload_5xsoft.inc

一、基本问题 一般是文件写入的路径不对&#xff0c;或者是目录的权限没有设置好&#xff08;必须对everyone或者来宾用户IIS_IUSRS设置为完全访问&#xff09; 二、特殊问题 1、错误提示&#xff1a; ADODB.Stream 错误 800a0bbc 写入文件失败。 /code/zhaosheng1/ADMIN/uplo…

AutoMapper用法一瞥

前段时候做个小项目用到了autoMapper&#xff08;参考了NOP里的用法&#xff09;&#xff0c;感觉还行&#xff0c;用起来挺方便的。首先复杂的东西我就不说了&#xff0c;至于详细的教程我也就不写了&#xff0c;比较园子里有很多这样的文章&#xff0c;我就分享下&#xff0c…

ping得通外网,上得了QQ,游戏,却打不开网页。

操作系统&#xff1a;win7_64bit 下午帮我小艾优化电脑&#xff0c;不知道把什么插件给卸载了。 她回来以上就上不了网&#xff0c;我首先ping网关&#xff0c;DNS&#xff0c;外网&#xff0c;都通。 登QQ正常。 我的思路&#xff1a; 先把Socket套字结相关的卸载掉就是&#…

WebGIS中一种根据网格索引判断点面关系的方法

文章版权由作者李晓晖和博客园共有&#xff0c;若转载请于明显处标明出处&#xff1a;http://www.cnblogs.com/naaoveGIS/。 1.背景 判断点面关系的算法有很多&#xff0c;在我之前的博文中有一篇专门对其进行了描述&#xff1a;判断点是否落在面中的Oracle存储过程描述。其中提…