pgsql 如何刪除仍有活動鏈接的數據庫
刪除數據庫的命令:
drop database if exists testdb;
但是這個命令可能會報錯:
類似於:
database "xxx" is being accessed by other users. DETAIL: There is x other session using database.
如:
表示要刪除的數據庫上還有其他活動鏈接。
解決方法:
斷開該數據庫上所有鏈接。
sql:
select pg_terminate_backend(pid) from pg_stat_activity where datname='{0}';
其中:
pg_terminate_backend
用來終止與數據庫的連接的進程id的函數。
pg_stat_activity
是一個系統表,用於存儲服務進程的屬性和狀態。
補充:解決postgresql 數據庫因存在連接刪除不成功的問題
postgresql 數據庫因存在連接刪除不成功問題
#psql -d dbname #SELECT * FROM pg_stat_activity;
找到要刪除數據庫的連接pid
kill -9 pid
重新刪除db
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。如有錯誤或未考慮完全的地方,望不吝賜教。
推薦閱讀:
- pgsql鎖表後kill進程的操作
- postgresql表死鎖問題的排查方式
- postgresql數據庫連接數和狀態查詢操作
- 基於postgresql數據庫鎖表問題的解決
- postgres 連接數查看與設置操作