ORA-01940:无法删除当前已连接的用户
当时时间比较着急,直接采取了釜底抽薪的办法——拔网线,这招很管用,再次执行drop user就成功了。考虑到以后不一定所有场合都允许你采取这种简单粗暴的办法,就在虚拟机上重现了这个报错,寻求一种较为温和的解决办法。
首先我打开两个虚拟机,在1号虚拟机上启动了两个实例,打开了3个连接到scott用户的窗口;在2号虚拟机上启动了一个实例,打开了一个连接到scott用户的窗口。这时我登录sys用户执行drop user操作,复现了上述报错。
点击(此处)折叠或打开
- [oracle@enmoedu1 ~]$ sqlplus / as sysdba
- SQL*Plus: Release 11.2.0.3.0 Production on Fri Apr 17 21:25:40 2015
- Copyright (c) 1982, 2011, Oracle. All rights reserved.
- Connected to:
- Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - Production
- With the Partitioning, OLAP, Data Mining and Real Application Testing options
- SQL> drop user scott cascade;
- drop user scott cascade
- *
- ERROR at line 1:
- ORA-01940: cannot drop a user that is currently connected
- SQL>
首先,我们查看scott用户的连接状况;
点击(此处)折叠或打开
- SQL> select username,sid,serial# from v$session where username='SCOTT';
- USERNAME SID SERIAL#
- ------------------------------ ---------- ----------
- SCOTT 19 355
- SCOTT 20 13693
- SCOTT 26 15
- SCOTT 127 7
- SQL>
接下来,我们kill上述连接;
点击(此处)折叠或打开
- SQL> alter system kill session'19,355';
- System altered.
- SQL> alter system kill session'20,13693';
- System altered.
- SQL> alter system kill session'26,15';
- System altered.
- SQL> alter system kill session'127,7';
- System altered.
- SQL>
再次查询scott用户的连接状况,确认所有连接被清除完毕;
点击(此处)折叠或打开
- SQL>
- SQL> select username,sid,serial# from v$session where username='SCOTT';
- USERNAME SID SERIAL#
- ------------------------------ ---------- ----------
- SCOTT 19 355
- SCOTT 20 13693
- SCOTT 26 15
- SCOTT 127 7
- SQL>
看到这儿,不要惊慌,不要以为这些连接还在;我们只要查询一下上述连接的状态就明白了。
点击(此处)折叠或打开
- SQL>
- SQL> select saddr,sid,serial#,paddr,username,status from v$session where username is not null;
- SADDR SID SERIAL# PADDR USERNAME STATUS
- -------- ---------- ---------- -------- ------------------------------ --------
- 578CC410 19 355 583AD258 SCOTT KILLED
- 578C9890 20 13693 583AD258 SCOTT KILLED
- 578B9390 26 15 583AD258 SCOTT KILLED
- 579DED90 120 95 5836FFB4 SYS ACTIVE
- 579CBD10 127 7 583AD258 SCOTT KILLED
- SQL>
由上述查询结果得知,scott用户的所有连接已经被kill了;现在我们执行drop user,看一下是否能够成功;
点击(此处)折叠或打开
- SQL>
- SQL> drop user scott cascade;
- User dropped.
- SQL>
由此,ORA-01940报错得到顺利解决。大家如果以后碰到这个问题,可以按照实际环境来决定是采取“简单粗暴”的解决办法(拔网线),还是上述这种“温和”的解决办法。
ORA-01940:无法删除当前已连接的用户的更多相关文章
- ORA-01940 无法删除当前已连接的用户之解决方案
在执行drop user的时候,提示报错信息:ORA-01940: cannot drop a user that is currently connected SQL> drop user l ...
- oracle 删除用户,提示“无法删除当前已连接的用户”
1. 首先查询出该用户的登录情况,注意用户名必须是大写 SQL> select username,sid,serial# from v$session where username = 'XST ...
- (转)oracle中用户删除不了,ORA-01940提示 “无法删除当前已连接用户”
Oracle删除用户的提示无法删除当前已连接用户两种解决方法如下: 1.先锁定用户.然后查询进程号,最后删除对应的进程.在删除对应的用户 SQLalter user XXX account lock; ...
- oracle中用户删除不了,ORA-01940提示 “无法删除当前已连接用户”
Oracle删除用户的提示无法删除当前已连接用户两种解决方法如下: 1.先锁定用户.然后查询进程号,最后删除对应的进程.在删除对应的用户 SQL>alter user XXX account l ...
- ORA-01940无法删除当前已连接用户
原文地址:ORA-01940无法删除当前已连接用户作者:1736188794 1)查看用户的连接状况 select username,sid,serial# from v$session ------ ...
- ORA-01940:无法删除当前已链接的用户(转)
(1)查看用户的连接状况 select username,sid,serial# from v$session ------------------------------------------ 如 ...
- ORA-01940:无法删除当前已链接的用户
(1)查看用户的连接状况 select user name, sid, serial# from v$session; (2)找到要删除用户的sid,和serial,并删除 例如要删除用户nc633t ...
- linux系统中中断已连接的用户
1.用w命令查看当前系统登录的用户 [root@rhel7 ~]# w :: up :, users, load average: 0.00, 0.01, 0.05 USER TTY FROM LOG ...
- ORA-01940: 无法删除当前连接的用户
删除用户报错 SQL> drop user ODI_SRC CASCADE; drop user ODI_SRC CASCADE * 第 1 行出现错误: ORA: 无法删除当前连接的用户 查看 ...
随机推荐
- [LeetCode] 561. Array Partition I_Easy tag: Sort
Given an array of 2n integers, your task is to group these integers into n pairs of integer, say (a1 ...
- Amazon OA
Remove Duplicates from unsorted array,它的错误在于9-10行k out of bound,改成下面这样就没问题了 public class removeDupli ...
- promise-async-await
通常而言,这3个关键字 都是用来「优雅」的处理ajax异步请求的 //es6的时候promise诞生,很好的解决了嵌套回调地狱,改良方案为链式回调. // es2017的时候诞生了async.awai ...
- CoreSight介绍篇
ARM的嵌入式IDE发展: 1)SDT,英文全称ARM SoftWare Development Kit,是ARM为方便用户在ARM芯片进行应用软件开发而推出的一整套开发工具. 2)ADS,英文全称A ...
- Java的redis控制台-Jedis
jedis 源码地址:https://github.com/xetorthio/jedis
- Manacher 计算最长回文串
转自 http://blog.sina.com.cn/s/blog_3fe961ae0101iwc2.html 寻找字符串中的回文,有特定的算法来解决,也是本文的主题:Manacher算法,其时间复杂 ...
- python3.4学习笔记(三) idle 清屏扩展插件
python3.4学习笔记(三) idle 清屏扩展插件python idle 清屏问题的解决,使用python idle都会遇到一个常见而又懊恼的问题——要怎么清屏?在stackoverflow看到 ...
- ES6学习--函数剩余参数 (rest参数)
ES6 引入 rest 参数(形式为“...变量名”),用于获取函数的多余参数,这样就不需要使用arguments对象了.rest 参数搭配的变量是一个数组,该变量将多余的参数放入数组中.(可以拿到除 ...
- C_Learning (4)
/ 预处理命令 / 宏定义 / 一般形式:#define 宏名 字符串 # 表示这是一条预处理命令 宏名是一个标识符,必须符合C语言标识符的规定 字符串可以是常数.表达式.格式化字符串等 / 注意: ...
- C++ VS2013环境编译使用sqlite数据库全过程
转载:http://www.cnblogs.com/imoon/archive/2012/11/30/2796726.html 转载:https://blog.csdn.net/hjm4702192/ ...