分享更有价值
被信任是一种快乐

oracle中出现ORA-01940:无法删除当前已连接的用户怎么办

文章页正文上

这篇文章主要为大家展示了“oracle中出现ORA-01940:无法删除当前已连接的用户怎么办”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“oracle中出现ORA-01940:无法删除当前已连接的用户怎么办”这篇文章吧。在现场作业时,需要先删除用户;在执行drop user时提示“ORA-01940: cannot drop a user that is currently connected”,当时的环境如下:
操作系统:Windows XP
数据库:Oracle 10.2.0.1
当时时间比较免费主机域名着急,直接采取了釜底抽薪的办法——拔网线,这招很管用,再次执行drop user就成功了。考虑到以后不一定所有场合都允许你采取这种简单粗暴的办法,就在虚拟机上重现了这个报错,寻求一种较为温和的解决办法。
首先我打开两个虚拟机,在1号虚拟机上启动了两个实例,打开了3个连接到scott用户的窗口;在2号虚拟机上启动了一个实例,打开了一个连接到scott用户的窗口。这时我登录sys用户执行drop user操作,复现了上述报错。

点击(此处)折叠或打开[oracle@enmoedu1~]$sqlplus/assysdba

SQL*Plus:Release11.2..3.0 ProductiononFri Apr 17 21:25:40 2015

Copyright(c)1982,2011,Oracle.Allrights reserved.

Connectedto:
OracleDatabase11g Enterprise EditionRelease11.2..3.0-Production
Withthe Partitioning,OLAP,DataMiningandRealApplication Testing options

SQL>dropuserscottcascade;
dropuserscottcascade
*
ERROR at line 1:
ORA-01940:cannotdropauserthatiscurrentl免费主机域名y connected

SQL>首先,我们查看scott用户的连接状况;
点击(此处)折叠或打开SQL>selectusername,sid,serial#fromv$sessionwhereusername=’SCOTT’;

USERNAME SID SERIAL#
—————————— ———- ———-
SCOTT 19 355
SCOTT 20 13693
SCOTT 26 15
SCOTT 127 7

SQL>接下来,我们kill上述连接;

点击(此处)折叠或打开SQL>altersystem killsession’19,355′;

System altered.

SQL>altersystem killsession’20,13693′;

System altered.

SQL>altersystem killsession’26,15′;

System altered.

SQL>altersystem killsession’127,7′;

System altered.

SQL>再次查询scott用户的连接状况,确认所有连接被清除完毕;

点击(此处)折叠或打开SQL>
SQL>selectusername,sid,serial#fromv$sessionwhereusername=’SCOTT’;

USERNAME SID SERIAL#
—————————— ———- ———-
SCOTT 19 355
SCOTT 20 13693
SCOTT 26 15
SCOTT 127 7

SQL>看到这儿,不要惊慌,不要以为这些连接还在;我们只要查询一下上述连接的状态就明白了。

点击(此处)折叠或打开SQL>
SQL>selectsaddr,sid,serial#,paddr,username,statusfromv$sessionwhereusernameisnotnull;

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>dropuserscottcascade;

Userdropped.

SQL>由此,ORA-01940报错得到顺利解决。以上是“oracle中出现ORA-01940:无法删除当前已连接的用户怎么办”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注云技术行业资讯频道!

相关推荐: 数据库重命名和迁移日志文件、数据文件的方法是什么

本篇内容介绍了“数据库重命名和迁移日志文件、数据文件的方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!目的:在某些情况下,数据文件或者日志文件必须被重新…

文章页内容下
赞(0) 打赏
版权声明:本站采用知识共享、学习交流,不允许用于商业用途;文章由发布者自行承担一切责任,与本站无关。
文章页正文下
文章页评论上

云服务器、web空间可免费试用

宝塔面板主机、支持php,mysql等,SSL部署;安全高速企业专供99.999%稳定,另有高防主机、不限制内容等类型,具体可咨询QQ:360163164,Tel同微信:18905205712

主机选购导航云服务器试用

登录

找回密码

注册