Ho uno script in PostgreSQL che ripristina il database di test dal dump ogni notte. Il database è accessibile da app server e processi con pool di connessioni che mantiene sempre attive alcune connessioni.PostgreSQL: disabilita temporaneamente le connessioni
Quindi lo script ripristina my_temp_database
. Quindi dovrebbe rinominare my_database
a my_old_database
, my_temp_database
a my_database
e alla fine rilasciare my_old_database
.
Come posso disconnettere tutti i client, superutente o meno, da my_database
, in modo che possa essere rinominato? Come posso impedire temporaneamente la riconnessione?
C'è un modo migliore per fare ciò di cui ho bisogno?
Ah, vorrei che ha lavorato in 8.3. –
In 8.3 si può provare 'selezionare pg_terminate_backend (pid) da pg_stat_activity;' –
@araqnid Il comando "update pg_database set datallowconn = false dove datname = 'applogs';" funziona come un fascino! "REVOKE CONNECT ON DATABASE" non funziona per me! SU! SU! SU! SU! SU! SU! –