ORA-01940:无法删除当前已链接的用户

简介:

删除用户tbrooke时:

1
drop  user  tbrooke  cascade ;

报错:ORA-01940:无法删除当前已链接的用户

解决办法:

1    查看用户tbrooke的连接状况

1
select  username,sid,serial#  from  v$session  where  username= 'TBROOKE' ;


wKiom1MUAE_RB8vTAAAikPPgr2w950.jpg

2    删除用户tbrooke的sid和serial

1
alter  system kill session  '160,2301' ;


3    删除用户

1
drop  user  tbrooke  cascade ;


   如果在drop 后还提示ORA-01940:无法删除当前已链接的用户,说明还有连接的session,可以通过查看session的状态来确定该session是否被kill 了,用如下语句查看:

1
select  saddr,sid,serial#,paddr,username,status  from  v$session  where  username  is  not  null ;

未删除是状态(INACTIVE):

wKioL1MUARvQUrjpAAJMxW-T17g308.jpg

删除成功状态(KILLED):

wKiom1MUAVfQ6uuBAAJN5E4z5zo771.jpg


备注:锁表 ORA-00031: session marked for kill

1
2
3
select  spid, osuser, s.program
     from  v$session s,v$process p
     where  s.paddr=p.addr  and  s.sid=160


在OS上杀死这个进程(线程):
    Linux上,用root身份或是相应的oracle身份执行命令:
   

1
#kill -9 9846  --9846 上一步查询出的spid

    windows(unix也适用)用orakill杀死线程,orakill是oracle提供的一个可执行命令,语法为:
    orakill sid thread
    PS:
       sid:表示要杀死的进程属于的实例名
       thread:是要杀掉的线程号,即第3步查询出的spid。
    exp:
       c:>orakill orcl 9846


     本文转自stock0991 51CTO博客,原文链接:http://blog.51cto.com/qing0991/1366326,如需转载请自行联系原作者









相关文章
|
SQL Oracle 关系型数据库
如何断开所有连接oracle的用户--解决ORA-01940:无法删除当前连接的用户
如何断开所有连接oracle的用户--解决ORA-01940:无法删除当前连接的用户
|
安全 数据库 数据库管理
PbootCMS网站提示:“会话目录写入权限不足”的解决办法
PbootCMS网站提示:“会话目录写入权限不足”的解决办法
987 0
|
Oracle 关系型数据库 数据安全/隐私保护
oracle学习25-手工删除oracle归档日志后操作步骤 和修改用户默认解锁时间
oracle学习25-手工删除oracle归档日志后操作步骤 和修改用户默认解锁时间
167 0
【LeetCode-Database196】删除重复的电子邮箱(delete)
2.思路 DELETE p1就表示从p1表中删除满足WHERE条件的记录。
205 0
【LeetCode-Database196】删除重复的电子邮箱(delete)
|
存储 SQL 运维
更改用户host留下的坑
我们在创建数据库用户的时候都会指定host,即一个完整的用户可描述为 'username'@'host' 。创建用户时不显式指定host则默认为%,%代表所有ip段都可以使用这个用户,我们也可以指定host为某个ip或ip段,这样会仅允许在指定的ip主机使用该数据库用户。不过你也应该明白 'username'@'%' 和 'username'@'192.168.6.%' 是两个毫无关联的用户,这两个用户可以有不同的密码和权限,这里不建议创建多个同名不同host的用户,还有不要轻易更改用户的host,笔者曾经遇到过因为更改用户host引发的故障,下面将其分享出来,为你讲述前因后果。
137 0
|
JSON 数据格式 Perl
Kuberntes 中无法删除 PV 的解决方法
Kuberntes 中无法删除 PV 的解决方法 一 背景 系统内有一个已经不再使用的 PV ,已经删除了与其关联的 Pod 及 PVC ,并对其执行了删除命令,但是无法正常删除,一直出于如下状态: $ kubectl get pv NAME CAPACITY ACCESS ...
1543 0