【Oracle】ORA-00054 錯誤解決方法
在進行資料庫維護的過程中要刪除一箇中間表,遇到如下錯誤:
sys@DW>drop table dwods.member_DELTA;
drop table dwods.member_DELTA
*
ERROR at line 1:
ORA-00054: resource busy and acquire with NOWAIT specified or timeout expired
發現表因為執行dml被鎖住,下面給出錯誤的處理思路和過程,具體情況而異:
1 檢視被資料庫中被鎖的使用者資訊:
sys@DW>select t2.username,t2.sid,t2.serial#,t2.logon_time
2 from v$locked_object t1,v$session t2
3 where t1.session_id=t2.sid order by t2.logon_time;
USERNAME SID SERIAL# LOGON_TIME
------------------------------ ---------- ---------- -------------------
DWODS 1520 42477 2011-11-17 18:00:40
DWODS 1594 7385 2011-11-17 18:41:27
dwods 被鎖住,因為事務是18:41分發起的,所以檢視一下sid 為1594的資訊,
2 查詢出sql資訊根據實際情況,進行操作
sys@DW>select sql_text from v$session a,v$sqltext_with_newlines b
2 where DECODE(a.sql_hash_value, 0, prev_hash_value, sql_hash_value)=b.hash_value
3 and a.sid=&sid order by piece;
Enter value for sid: 1594
old 3: and a.sid=&sid order by piece
new 3: and a.sid=1594 order by piece
SQL_TEXT
----------------------------------------------------------------
insert /*+ append +*/ into DWODS.MEMBER_delta (ACTION,
ADDRESS,
........
32 rows selected.
正是發起的那個語句,檢視使用者的資訊進行確認
sys@DW>@user_info
Enter value for sid: 1594
old 12: where a.sid = &sid
new 12: where a.sid = 1594
USERNAME SID SERIAL# OS Process Logon time OSUSER PROGRAM STATUS
--------- ----- ------- ----------------------------- -------- ----------------------- -----------
DWODS 1594 7385 3309 17/11/2011 18:41:27 etl sqlplus@dw1 (TNS V1-V3) ACTIVE
1 row selected.
3 選擇kill 掉程式
這裡知道此session 可以殺掉,所以殺掉此session
sys@DW>alter system kill session '1594,7385';
System altered.
4 進行確認:
在資料庫確認
sys@DW>@user_info
Enter value for sid: 1594
old 12: where a.sid = &sid
new 12: where a.sid = 1594
no rows selected
sys@DW>select t2.username,t2.sid,t2.serial#,t2.logon_time
2 from v$locked_object t1,v$session t2
3 where t1.session_id=t2.sid order by t2.logon_time;
USERNAME SID SERIAL# LOGON_TIME
--------------- ------- ------- -------------------
DWODS 1520 42477 2011-11-17 18:00:40
DWODS 1520 42477 2011-11-17 18:00:40
2 rows selected.
在os層確認,程式已經被殺。
oracle@dw1:/home/oracle>ps -ef | grep 3309
oracle 22565 18543 0 18:59 pts/5 00:00:00 grep 3309
再次執行刪除表的操作:
sys@DW>drop table dwods.member_DELTA;
Table dropped.
------附上:
user_info。sql 指令碼的內容:
select
a.username,
a.sid,
a.serial#,
b.spid "OS Process",
to_char(a.logon_time,'DD/MM/YYYY hh24:mi:ss') "Logon time",
a.osuser,
a.program,
a.status
from v$session a, v$process b
where a.sid = &sid
and a.paddr = b.addr
/
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29734436/viewspace-2148079/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ORA-00054錯誤解決方案(摘)
- oracle ora-00054錯誤處理Oracle
- ORACLE匯入遇到ORACLE錯誤959解決方法Oracle
- Oracle 資料庫連線錯誤解決方法Oracle資料庫
- ORA-00054 解決方法其中 1 例.
- PbootCMS 404 錯誤解決方法boot
- oracle ORA-12899錯誤的解決方法Oracle
- Oracle資料庫配置錯誤資訊解決方法(轉)Oracle資料庫
- Oracle 常見的錯誤問題及解決方法Oracle
- vsftpd 錯誤:530 and 500 錯誤解決方法FTP
- undefined reference to錯誤的解決方法Undefined
- AFNetworkingErrorDomain 錯誤解決方法ErrorAI
- PHP錯誤“Thisfilehasexpired”的解決方法PHP
- dbfread報錯ValueError錯誤解決方法Error
- Oracle EBS 打中文補丁錯誤 的一個解決方法Oracle
- HTTP 錯誤 500.19- Internal Server Error 錯誤解決方法HTTPServerError
- 錯誤Namenodeisinsafemode的解決方法
- Android錯誤解決方法集錦Android
- hadoop日常錯誤解決方法整理Hadoop
- ORA-04098錯誤解決方法
- ORA-25154錯誤解決方法
- npm WARN unmet dependency錯誤解決方法NPM
- 連線oracle錯誤解決辦法Oracle
- 【oracle 錯誤及解決】ORA-39139Oracle
- oracle 1455 錯誤解決辦法Oracle
- oracle錯誤及解決方式集(轉)Oracle
- Oracle10gR2 RAC ORA-3136 錯誤解決方法Oracle
- standby新增檔案錯誤的解決方法
- MYSQL中 TYPE=MyISAM 錯誤的解決方法MySql
- Mac上搭建chromedriver的錯誤解決方法MacChrome
- 寬頻連線錯誤691解決方法
- ORA-14452錯誤及解決方法
- ubuntu網路卡啟動錯誤解決方法Ubuntu
- IMP-00098 錯誤及解決方法
- nginx出現403錯誤的解決方法Nginx
- steam磁碟寫入錯誤怎麼解決 steam磁碟寫入錯誤解決方法大全
- oracle 9i下ORA-01555錯誤的解決方法Oracle
- [Oracle]startup mount時報ORA-12514錯誤的解決方法Oracle