zoukankan      html  css  js  c++  java
  • 终止会话

    有时需要终止当前用户会话。例如,您可能想要执行管理操作并需要终止所有非管理会话。本节介绍终止会话的各个方面,并包含以下主题:

    •  识别哪个会话终止
    • 终止活动会话
    • 终止非活动会话

    当会话终止时,会话的任何活动事务都会回滚,会话持有的资源(例如锁和内存区)会立即释放并可供其他会话使用。

    您使用SQL语句ALTER SYSTEM KILL SESSION终止当前会话。以下语句终止系统标识为7且序列号为15的会话:

    ALTER SYSTEM KILL SESSION '7,15';

    识别哪个会话终止


     要确定要终止哪个会话,请指定会话索引号和序列号。要识别会话的系统标识符(SID)和序列号,请查询V $ SESSION动态性能视图。例如,以下查询标识用户jward的所有会话:

    1 SELECT SID, SERIAL#, STATUS
    2   FROM V$SESSION
    3   WHERE USERNAME = 'JWARD';
    4 
    5 SID    SERIAL#    STATUS
    6 -----  ---------  --------
    7     7         15  ACTIVE 
    8    12         63  INACTIVE

    会话在对Oracle数据库进行SQL调用时处于ACTIVE状态。如果会话未对数据库进行SQL调用,则会话为“非活动”。

    Oracle数据库参考以获取会话状态值的描述

    终止活动会话


    如果用户会话在终止会话时正在处理事务(活动状态),则事务将回滚并且用户立即收到以下消息:

    ORA-00028: your session has been killed

    如果在收到ORA-00028消息后,用户在重新连接到数据库之前提交其他语句,Oracle数据库将返回以下消息:

    ORA-01012: not logged on

    活动会话在执行网络I / O或回滚事务时不能中断。这种会话无法终止,直到操作完成。在这种情况下,会话将保留所有资源,直到终止。此外,发出ALTER SYSTEM语句来终止会话的会话最多等待60秒才会终止会话。如果无法中断的操作持续一分钟以上,ALTER SYSTEM语句的发布者将收到一条消息,指出会话已被标记为终止。标记为终止的会话在V $ SESSION中以状态KILLED和非PSEUDO的服务器表示。

    终止非活动会话


    如果会话在终止时未对Oracle数据库进行SQL调用(处于非激活状态),则不会立即返回ORA-00028消息。直到用户随后尝试使用终止的会话才会返回该消息。

    当非活动会话终止时,V $ SESSION视图中会话的状态为KILLED。在用户尝试再次使用会话并接收到ORA-00028消息后,终止会话的行将从V $ SESSION中删除。

    在以下示例中,非活动会话终止。首先,查询V $ SESSION以确定会话的SID和SERIAL#,然后会话终止。

     1 SELECT SID,SERIAL#,STATUS,SERVER
     2    FROM V$SESSION
     3    WHERE USERNAME = 'JWARD';
     4 
     5 SID    SERIAL#   STATUS     SERVER
     6 -----  --------  ---------  ---------
     7     7        15  INACTIVE   DEDICATED
     8    12        63  INACTIVE   DEDICATED
     9 2 rows selected.
    10 
    11 ALTER SYSTEM KILL SESSION '7,15';
    12 Statement processed.
    13 
    14 SELECT SID, SERIAL#, STATUS, SERVER
    15    FROM V$SESSION
    16    WHERE USERNAME = 'JWARD';
    17 
    18 SID    SERIAL#   STATUS     SERVER
    19 -----  --------  ---------  ---------
    20     7        15  KILLED     PSEUDO
    21    12        63  INACTIVE   DEDICATED
    22 2 rows selected.

    参考资料


    https://docs.oracle.com/cd/E11882_01/server.112/e25494/manproc.htm#ADMIN11193

  • 相关阅读:
    elastalert邮件告警
    Kubernetes(k8s)集群安装
    supervisord进程管理
    Flask Ansible自动化平台搭建(持续更新)
    pandas数据导出Execl
    docker运行dubbo-admin
    Activemq集群搭建
    Zabbix自动发现java进程
    selenium爬取百度图片
    Beta 冲刺(1/7)
  • 原文地址:https://www.cnblogs.com/ZeroTiny/p/9046377.html
Copyright © 2011-2022 走看看