ORA-00027 处理方法只有这一种

[复制链接]
查看11 | 回复8 | 2014-2-19 11:55:14 | 显示全部楼层 |阅读模式
SQL> select SID,SERIAL#,STATUS,LOCKWAIT,MACHINE from v$session where username=\'NEW12530\';
SIDSERIAL# STATUS LOCKWAIT MACHINE
---------- ---------- -------- ---------------- -------------------------
9416431ACTIVE
develop-dbx
SQL> alter system kill session \'94,16431\';
alter system kill session \'94,16431\'
*
ERROR at line 1:
ORA-00027: cannot kill current session
为什么会出现以上错误,难道只有杀除相关linux进程这个办法?
回复

使用道具 举报

千问 | 2014-2-19 11:55:14 | 显示全部楼层
ORA-00027: cannot kill current session
你想自杀??
回复

使用道具 举报

千问 | 2014-2-19 11:55:14 | 显示全部楼层
应该就是了
回复

使用道具 举报

千问 | 2014-2-19 11:55:14 | 显示全部楼层
最初由 ki_mi2006 发布
[B]SQL> select SID,SERIAL#,STATUS,LOCKWAIT,MACHINE from v$session where username=\\\'NEW12530\\\';
SIDSERIAL# STATUS LOCKWAIT MACHINE
---------- ---------- -------- ---------------- -------------------------
9416431ACTIVE
develop-dbx
SQL> alter system kill session \\\'94,16431\\\';
alter system kill session \\\'94,16431\\\'
*
ERROR at line 1:
ORA-00027: cannot kill current session
为什么会出现以上错误,难道只有杀除相关linux进程这个办法? [/B]

还有几种更方便的。
一、exit
二、disc
三、connect
回复

使用道具 举报

千问 | 2014-2-19 11:55:14 | 显示全部楼层
最初由 yangtingkun 发布
[B]
还有几种更方便的。
一、exit
二、disc
三、connect [/B]

不错,或者用下面的方法也行:
一、用任务管理器把当前连接数据库的进程Kill掉
二、重新启动操作系统
回复

使用道具 举报

千问 | 2014-2-19 11:55:14 | 显示全部楼层
直接断开不就得了吗?
回复

使用道具 举报

千问 | 2014-2-19 11:55:14 | 显示全部楼层
误解我的意思了,为什么oracle不能像linux一样可以把自己杀除呢
继续关于alter system kill session 的提问
SQL> select SID,SERIAL#,STATUS,LOCKWAIT,MACHINE from v$session where username=\'NEW12530\';
SIDSERIAL# STATUS LOCKWAIT
---------- ---------- -------- ----------------
MACHINE
----------------------------------------------------------------
9416815 KILLED
develop-dbx
注意 KILLED,为什么在本机上连接的session里面,虽然不能够查询
SQL> select * from tabs;
select * from tabs
*
ERROR at line 1:
ORA-00028: your session has been killed
但没有像操作系统进程一样消失或者退出
最后,我其实是想了解下oraclekill session的机制,和toad这些工具连接oracle异常退出后,无法正常kill session的原因
写的可能比较混乱,希望各位一一解答
回复

使用道具 举报

千问 | 2014-2-19 11:55:14 | 显示全部楼层
饭后回来,还是没有人来回答.......
回复

使用道具 举报

千问 | 2014-2-19 11:55:14 | 显示全部楼层
最初由 ki_mi2006 发布
[B]饭后回来,还是没有人来回答....... [/B]

eygle:
实际上,我猜测:
当在Oracle中kill session以后, Oracle只是简单的把相关session的paddr 指向同一个虚拟地址.
此时v$process和v$session失去关联,进程就此中断.
然后Oracle就等待PMON去清除这些Session.所以通常等待一个被标记为Killed的Session退出需要花费很长的时间.
如果此时被Kill的process,重新尝试执行任务,那么马上会收到进程中断的提示,process退出,此时Oracle会立即启动PMON
来清除该session.这被作为一次异常中断处理.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行