ORA 01591解決方法

2021-09-08 15:37:07 字數 1381 閱讀 7078

錯誤原因:使用了分布式事務,造成這個問題的原因很多時候都是由於網路問題造成的

解決辦法:

1.找到tran_id

select 'rollback force '''||local_tran_id||'''' from sys.pending_trans$;

2.將其commit或rollback:

rollback force local_tran_id;

commit force local_tran_id;

3.如果執行失敗,則強行從資料字典中刪除該交易記錄:

set transaction use rollback segment system;

delete from dba_2pc_pending where local_tran_id = local_tran_id;

delete from pending_sessions$ where local_tran_id = local_tran_id;

delete from pending_sub_sessions$ where local_tran_id = local_tran_id;

commit;

生成批量語句:

begin

for r in (select local_tran_id

from dba_2pc_pending t

where t.state = 'collecting') loop

--dbms_output.put_line('commit force '''||r.local_tran_id||''';');

dbms_output.put_line('delete from dba_2pc_pending where local_tran_id = '''||r.local_tran_id||''';');

dbms_output.put_line('delete from pending_sessions$ where local_tran_id = '''||r.local_tran_id||''';');

dbms_output.put_line('delete from pending_sub_sessions$ where local_tran_id = '''||r.local_tran_id||''';');

end loop;

dbms_output.put_line('commit;');

end;

4.執行失敗,還一種情況可以嘗試下重起一下oracle服務,這種情況我遇到過一次,重新啟動後該鎖自動解除(因為對刪除資料字典比較擔心,所以胡亂試了一次重啟資料庫,前提是執行了commit force local_tran_id;失敗之後重新啟動)

ora 12514 解決方法

如果在練習中突然發現 無法正常使用,並在使用oracle客戶端程式連線oracle伺服器是出現ora 12514時,經查詢排錯tnsname.ora,sqlnet.ora均無錯誤,到 oracle home network admin listener.ora 使用vi編輯器編輯它。在其中原list...

ORA 12560解決方法

今天在進行oracle資料imp exp時突然發現在cmd下執行exp輸入scott tiger這裡我不太熟悉。再次輸入使用者名稱和密碼,依舊報錯。靜下來想想 和資料庫例項都已經啟動了而且還是用自己做的批處理指令碼。在linxu下我也是可以imp exp的,linxu下沒有登錄檔這種概念,而存在環境...

ORA 12541解決方法

前天裝好的 昨天突然不好用了,從oracle的錯誤提示來看,是說tns no listener 估計是某種服務沒有啟動,開啟windows管理工具 服務,一看,有乙個oracleorahome90tnslistener這樣的服務,和錯誤資訊題是一致,基本就可以肯定是這個服務所引發的問題。再一看,該服...