感謝作者!
文章來源:
pg數據庫鎖表?http://blog.csdn.net/zhanghaolpc/article/details/5594576
?
最近遇到一個很郁悶的問題,在運行npgsql時使用了它的分布式事務(System.Transaction不是DbTransaction),結果發現一旦程序異常后就無法繼續對相應的表進行操作了。
平板鎖住了怎么解鎖,調查了一下原來postgre對這個表加了鎖,但是無法釋放,重啟postgre的服務也無濟于事,最后還是在浩瀚的文檔中發現了一個辦法來回滾事務,就OK啦。
具體做法如下:
1.查詢鎖:
postgre查詢鎖
SELECT t1.locktype ,t1.granted , t1.mode ,t2.relname,t3.datname,t3.usename,t3.current_query? from pg_locks? t1
left join pg_class t2 on relation = oid
left join pg_stat_activity t3 on t1.pid = t3.procpid
如果發現返回的結果集中有你無法操作的那個表證明他被加鎖了。
2.執行:select * from pg_prepared_xacts
應用鎖?這個視圖時當前可用的預備事務的系統視圖,會列出在postgre上prepare的所有預備的事務(Transaction)。
3.回滾:ROLLBACK PREPARED gid
激活鎖?(回滾一個處于準備好狀態的事務)
上面那些事務肯定包含程序異常后的無法處理的那個預備事務。把Gid換成2中查詢結果中的guid就可以回滾這個事務了。
表鎖了怎么解鎖 oracle?再試試這個表,一切恢復正常!
?
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态