服务器之家:专注于服务器技术及软件下载分享
分类导航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|数据库技术|

服务器之家 - 数据库 - PostgreSQL - pgsql 如何删除仍有活动链接的数据库

pgsql 如何删除仍有活动链接的数据库

2021-03-25 20:58怠惰的小小白 PostgreSQL

这篇文章主要介绍了pgsql 删除仍有活动链接的数据库操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

删除数据库的命令:

?
1
drop database if exists testdb;

但是这个命令可能会报错:

类似于:

?
1
2
database "xxx" is being accessed by other users.
DETAIL: There is x other session using database.

如:

pgsql 如何删除仍有活动链接的数据库

表示要删除的数据库上还有其他活动链接

解决方法:

 

断开该数据库上所有链接。

sql:

?
1
select pg_terminate_backend(pid) from pg_stat_activity where datname='{0}';

其中:

pg_terminate_backend用来终止与数据库的连接的进程id的函数。

pg_stat_activity是一个系统表,用于存储服务进程的属性和状态。

补充:解决postgresql 数据库因存在连接删除不成功的问题

postgresql 数据库因存在连接删除不成功问题

?
1
2
3
#psql -d dbname
 
#SELECT * FROM pg_stat_activity;

找到要删除数据库的连接pid

?
1
kill -9 pid

重新删除db

以上为个人经验,希望能给大家一个参考,也希望大家多多支持服务器之家。如有错误或未考虑完全的地方,望不吝赐教。

原文链接:https://blog.csdn.net/qq_35462323/article/details/102797726

延伸 · 阅读

精彩推荐