--查詢是否鎖表了
select oid from pg_class where relname='可能鎖表了的表'
select pid from pg_locks where relation='上面查出的oid'
--如果查詢到了結果,表示該錶被鎖 則需要釋放鎖定
select pg_cancel_backend(上面查到的pid)
1.檢視資料庫的程序。select * from pg_stat_activity where datname='死鎖的資料庫id ';
檢索出來的字段中,【wating 】字段,資料為t的那條,就是死鎖的程序,找到對應的【procpid 】列的值。
例如:select procpid from pg_stat_activity where datname='資料庫id' and waiting ='t';
2.殺掉程序。
kill有兩種方式,第一種是:
select pg_cancel_backend(pid);
這種方式只能kill select查詢,對update、delete 及dml不生效)
第二種是:
select pg_terminate_backend(pid);
這種可以kill掉各種操作(select、update、delete、drop等)操作
改進PostgreSQL鎖機制
如果你想構建乙個大規模的 單憑橫向擴充套件web伺服器是遠遠不夠的。如何巧妙地管理資料庫也是非常必要的。在postgresql中,借助於併發性的改進,通過減少鎖及加速執行得到若干令人滿意的特性。如果你想構建乙個大規模的 單憑橫向擴充套件web伺服器是遠遠不夠的。如何巧妙地管理資料庫也是非常必要的。鎖...
測試postgreSQL中表鎖
檢視視窗連線到的服務程序的pid。select pg backend pid 三個視窗的pid分別如下 select locktype,relation regclass,virtualxid,transactionid,virtualtransaction pid,mode,granted fro...
plsql表鎖被占用 解決Oracle鎖表
概述 鎖表是很容易發生的現象,當有多人對錶進行操作時就容易發生。如下是解決鎖表的步驟 鎖表原因 由於oracle資料庫具有保持資料的一致性,所以當乙個人對錶進行操作,沒有提交,另乙個人在需要操作的時候,就不能操作,必須等表提交,就一直處於等待狀態,就導致鎖表。鎖表報錯資訊 如果發現修改乙個表資料時不...