PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Как да махна PostgreSQL база данни, ако има активни връзки към нея?

Това ще прекъсне съществуващите връзки с изключение на вашите:

Заявка pg_stat_activity и вземете pid стойностите, които искате да убиете, след което издайте SELECT pg_terminate_backend(pid int) към тях.

PostgreSQL 9.2 и по-нова версия:

SELECT pg_terminate_backend(pg_stat_activity.pid)
FROM pg_stat_activity
WHERE pg_stat_activity.datname = 'TARGET_DB' -- ← change this to your DB
  AND pid <> pg_backend_pid();

PostgreSQL 9.1 и по-долу:

SELECT pg_terminate_backend(pg_stat_activity.procpid)
FROM pg_stat_activity
WHERE pg_stat_activity.datname = 'TARGET_DB' -- ← change this to your DB
  AND procpid <> pg_backend_pid();

След като изключите всички, ще трябва да изключите връзката и да издадете командата DROP DATABASE от връзка от друга база данни, известна още като не тази, която се опитвате да прекъснете.

Обърнете внимание на преименуването на procpid колона към pid . Вижте тази тема за пощенски списък.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Създайте множество екземпляри на Postgres на една и съща машина

  2. Събирайте рекурсивни JSON ключове в Postgres

  3. Индексирано ORDER BY с LIMIT 1

  4. Създаване на потребител с криптирана парола в PostgreSQL

  5. Как да открием заявка, която държи заключването в Postgres?