使用sqlplus作为我的客户端:
SQL> select count(*) from TABLE;
COUNT(*)
----------
26243
SQL> alter system kill session '9997,55';
alter system kill session '9997,55'
*
ERROR at line 1:
ORA-03113: end-of-file on communication channel该会话标识符不是我当前会话的标识符,它是一个有问题的会话。然后,我必须退出sqlplus并重新连接到数据库。我的会话没有被终止。
查找文档是非常困难的-文档中没有指定任何关于终止尝试的断开的内容,当我在我的查询中添加“断开”这个词时,"alter system disconnect session“就会出现。
有人能帮我解释一下发生了什么吗?
绝对不会杀死我当前的会话:
SQL> select sys_context('USERENV','SID') from dual;
SYS_CONTEXT('USERENV','SID')
--------------------------------------------------------------------------------
301
SQL> alter system kill session '3501,591';
alter system kill session '3501,591'
*
ERROR at line 1:
ORA-03113: end-of-file on communication channel发布于 2017-05-19 09:17:49
当您将客户端连接到数据库服务器时,它会在服务器上启动一个会话。该会话可能执行零个或多个事务,然后(通常)客户端断开与数据库服务器的连接,正常结束该会话。
有时,您会异常地断开客户端连接(例如,ctrl-c或计算机重启),数据库服务器将注意到客户端停止通信,并将回滚会话的任何当前事务,然后正常结束。
KILL会话应该很少需要,通常由DBA的会话执行,以便在DBA无法让用户结束其客户端会话时结束导致问题的客户端会话。最终用户将收到您在上面看到的错误,指出数据库会话不再可用。
看起来您正在当前连接的会话上运行KILL会话。没有必要这样做。如果您尝试终止另一个会话,则需要使用要终止的会话的SID/序列号。
https://stackoverflow.com/questions/44058943
复制相似问题