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操作,復現了上述報錯。
首先,我們檢視scott使用者的連線狀況;
接下來,我們kill上述連線;
再次查詢scott使用者的連線狀況,確認所有連線被清除完畢;
看到這兒,不要驚慌,不要以為這些連線還在;我們只要查詢一下上述連線的狀態就明白了。
由上述查詢結果得知,scott使用者的所有連線已經被kill了;現在我們執行drop user,看一下是否能夠成功;
由此,ORA-01940報錯得到順利解決。大家如果以後碰到這個問題,可以按照實際環境來決定是採取“簡單粗暴”的解決辦法(拔網線),還是上述這種“溫和”的解決辦法。
作業系統:Windows XP
資料庫:Oracle 10.2.0.1
當時時間比較著急,直接採取了釜底抽薪的辦法——拔網線,這招很管用,再次執行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>
點選(此處)摺疊或開啟
-
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> 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>
點選(此處)摺疊或開啟
-
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>
點選(此處)摺疊或開啟
-
SQL>
-
SQL> drop user scott cascade;
-
-
User dropped.
-
- SQL>
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30162081/viewspace-1584002/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ORA-01940: 無法刪除當前連線的使用者
- 刪除當前資料庫連線使用者資料庫
- 刪除無效軟連線
- iOS 獲取當前已連線 WiFi 資訊iOSWiFi
- win10 無法刪除當前使用者要怎麼解決_win10系統刪除賬戶怎麼刪除不了Win10
- ORACLE刪除當前使用者下所有的表的方法Oracle
- jQuery 刪除當前li元素jQuery
- “無法刪除資料庫,因為該資料庫當前正在使用” – 解決方法資料庫
- sys使用者無法連線到DB
- 刪除本地連線2的方法
- C# Socket連線 無法訪問已釋放的物件C#物件
- ora- 12514 tns 監聽程式當前無法識別連線描述符中請求連線
- swoole websocket 使用 passport 無法獲取當前使用者問題WebPassport
- Code First 遷移更新資料庫 無需刪除當前資料庫資料庫
- windows無法配置此無線連線的解決辦法Windows
- Oracle檢視允許的最大連線數和當前連線數Oracle
- SQL Server無法刪除資料庫 "xxx",因為該資料庫當前正在使用(如何刪除一個Sql Server資料庫)SQLServer資料庫
- linux下刪除軟連線Linux
- dbca無法刪除資料庫資料庫
- ORA-12514: TNS: 監聽程式當前無法識別連線描述符中
- NAMES.DIRECTORY_PATH配置不當導致無法連線oracleOracle
- css刪除超連結底部的橫線CSS
- Windows上的資料夾無法刪除Windows
- flash無法連線socket
- [APEX] APEX無法連線
- windows10怎麼刪除寬頻連線2_windows10刪除寬頻連線2的方法Windows
- 檢視當前pg會話連線數會話
- Oracle監聽程式當前無法識別連線描述符中請求服務 解決方法Oracle
- 蘋果電腦無法連線無線網路蘋果
- oracle 查詢當前資料庫database,初始新建使用者system使用者名稱無法連線db,沒開鎖;新建使用者和密碼--授權Oracle資料庫Database密碼
- AIX 檔案過多無法刪除AI
- oracle檢視允許的最大連線數和當前連線數等資訊Oracle
- u盤裡的檔案無法刪除 如何刪除u盤裡刪不掉的檔案
- Windows 10 怎樣管理已連線過的無線網?Windows
- 解決sqlserver資料庫單一使用者無法刪除的問題SQLServer資料庫
- 調變解調器已刪除的解決辦法
- centos無法建立ssl連線CentOS
- Postgresql無法遠端連線SQL