ORA-01591解决方法
来源:互联网 发布:淘宝购物要上传身份证 编辑:程序博客网 时间:2024/05/16 11:57
ORA-01591解决方法
错误原因:使用了分布式事务,造成这个问题的原因很多时候都是由于网络问题造成的
解决办法:
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;失败之后重新启动)
PS:我建了几个oracle QQ群,欢迎数据库爱好者加入。
Oracle专家QQ1群:60632593
Oracle专家QQ2群:60618621
Oracle专家QQ3群:23145225
- ORA-01591解决方法
- ORA-00604, ORA-01400 解决方法
- ora-00119,ora-00130解决方法
- ORA-00607 ORA-00600解决方法
- ORA-04098错误解决方法
- ORA-12516解决方法
- ora-01033 解决方法
- ORA-00603 解决方法
- ora-12154错误解决方法
- ORA-00824解决方法
- ORA-600 [3020]解决方法
- ORA-04063解决方法
- ORA-12560解决方法
- ORA-01033的解决方法
- ORA-12520错误解决方法
- ora-01031解决方法
- ORA-30372解决方法
- ORA-12520错误解决方法
- Java基础
- Java技术与Java虚拟机
- 调频 预加重 和 去加重 (FM Pre-emphasis/De-emphasis)
- javaservice wrapper 实现注册服务功能
- 关于DDOS的原理和简单防范措施
- ORA-01591解决方法
- ABAP开发所用到的函数
- c# wm dataGrid使用(主要针对列宽的更改)
- javascript之二
- 纯C++的Socket访问Http封装类 .
- 有关js弹出提示框几种方法
- shell脚本调用php代码
- 第二篇 学会识别手机的各个电子元件
- 用数组实现小顶堆(二叉堆)的C++代码