溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

oracle中出現(xiàn)ORA-01940:無(wú)法刪除當(dāng)前已連接的用戶怎么辦

發(fā)布時(shí)間:2021-11-09 11:52:23 來(lái)源:億速云 閱讀:184 作者:小新 欄目:關(guān)系型數(shù)據(jù)庫(kù)

這篇文章主要為大家展示了“oracle中出現(xiàn)ORA-01940:無(wú)法刪除當(dāng)前已連接的用戶怎么辦”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“oracle中出現(xiàn)ORA-01940:無(wú)法刪除當(dāng)前已連接的用戶怎么辦”這篇文章吧。

在現(xiàn)場(chǎng)作業(yè)時(shí),需要先刪除用戶;在執(zhí)行drop user時(shí)提示“ORA-01940: cannot drop a user that is currently connected”,當(dāng)時(shí)的環(huán)境如下:
操作系統(tǒng):Windows XP
數(shù)據(jù)庫(kù):Oracle 10.2.0.1
       當(dāng)時(shí)時(shí)間比較著急,直接采取了釜底抽薪的辦法——拔網(wǎng)線,這招很管用,再次執(zhí)行drop user就成功了。考慮到以后不一定所有場(chǎng)合都允許你采取這種簡(jiǎn)單粗暴的辦法,就在虛擬機(jī)上重現(xiàn)了這個(gè)報(bào)錯(cuò),尋求一種較為溫和的解決辦法。
       首先我打開兩個(gè)虛擬機(jī),在1號(hào)虛擬機(jī)上啟動(dòng)了兩個(gè)實(shí)例,打開了3個(gè)連接到scott用戶的窗口;在2號(hào)虛擬機(jī)上啟動(dòng)了一個(gè)實(shí)例,打開了一個(gè)連接到scott用戶的窗口。這時(shí)我登錄sys用戶執(zhí)行drop user操作,復(fù)現(xiàn)了上述報(bào)錯(cuò)。

點(diǎn)擊(此處)折疊或打開

  1. [oracle@enmoedu1 ~]$ sqlplus / as sysdba


  2. SQL*Plus: Release 11.2..3.0 Production on Fri Apr 17 21:25:40 2015


  3. Copyright (c) 1982, 2011, Oracle. All rights reserved.



  4. Connected to:

  5. Oracle Database 11g Enterprise Edition Release 11.2..3.0 - Production

  6. With the Partitioning, OLAP, Data Mining and Real Application Testing options


  7. SQL> drop user scott cascade;

  8. drop user scott cascade

  9. *

  10. ERROR at line 1:

  11. ORA-01940: cannot drop a user that is currently connected



  12. SQL>

首先,我們查看scott用戶的連接狀況;

點(diǎn)擊(此處)折疊或打開

  1. SQL> select username,sid,serial# from v$session where username='SCOTT';


  2. USERNAME SID SERIAL#

  3. ------------------------------ ---------- ----------

  4. SCOTT 19 355

  5. SCOTT 20 13693

  6. SCOTT 26 15

  7. SCOTT 127 7


  8. SQL>

接下來(lái),我們kill上述連接;

點(diǎn)擊(此處)折疊或打開

  1. SQL> alter system kill session'19,355';


  2. System altered.


  3. SQL> alter system kill session'20,13693';


  4. System altered.


  5. SQL> alter system kill session'26,15';


  6. System altered.


  7. SQL> alter system kill session'127,7';


  8. System altered.


  9. SQL>

再次查詢scott用戶的連接狀況,確認(rèn)所有連接被清除完畢;

點(diǎn)擊(此處)折疊或打開

  1. SQL> 

  2. SQL> select username,sid,serial# from v$session where username='SCOTT';


  3. USERNAME SID SERIAL#

  4. ------------------------------ ---------- ----------

  5. SCOTT 19 355

  6. SCOTT 20 13693

  7. SCOTT 26 15

  8. SCOTT 127 7


  9. SQL>

看到這兒,不要驚慌,不要以為這些連接還在;我們只要查詢一下上述連接的狀態(tài)就明白了。

點(diǎn)擊(此處)折疊或打開

  1. SQL> 

  2. SQL> select saddr,sid,serial#,paddr,username,status from v$session where username is not null;


  3. SADDR SID SERIAL# PADDR USERNAME STATUS

  4. -------- ---------- ---------- -------- ------------------------------ --------

  5. 578CC410 19 355 583AD258 SCOTT KILLED

  6. 578C9890 20 13693 583AD258 SCOTT KILLED

  7. 578B9390 26 15 583AD258 SCOTT KILLED

  8. 579DED90 120 95 5836FFB4 SYS ACTIVE

  9. 579CBD10 127 7 583AD258 SCOTT KILLED


  10. SQL>

由上述查詢結(jié)果得知,scott用戶的所有連接已經(jīng)被kill了;現(xiàn)在我們執(zhí)行drop user,看一下是否能夠成功;

點(diǎn)擊(此處)折疊或打開

  1. SQL> 

  2. SQL> drop user scott cascade;


  3. User dropped.


  4. SQL>

由此,ORA-01940報(bào)錯(cuò)得到順利解決。

以上是“oracle中出現(xiàn)ORA-01940:無(wú)法刪除當(dāng)前已連接的用戶怎么辦”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI