Search Postgresql Archives

drop database regardless of connections

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi everyone,

I'd like to drop a database to which users have idle connections.  I'm
running pgsql 8.2 on win32, soon 8.3, using mod_perl2 and
connect_cached.

I know this issue has been brought up several times over the past few
years, but I don't quite understand the reason for it not being
supported as an sql command or command-line utility.

Over on pgsql.hackers Stuart Bishop posted this code:

 > CREATE OR REPLACE FUNCTION _killall_backends(text)
 > RETURNS Boolean AS $$
 >     import os
 >     from signal import SIGTERM
 >
 >     plan = plpy.prepare(
 >         "SELECT procpid FROM pg_stat_activity WHERE datname=$1",
['text']
 >         )
 >     success = True
 >     for row in plpy.execute(plan, args):
 >         try:
 >             plpy.info("Killing %d" % row['procpid'])
 >             os.kill(row['procpid'], SIGTERM)
 >         except OSError:
 >             success = False
 >
 >     return success
 > $$ LANGUAGE plpythonu;

However, I'd like to avoid installing Python just for this task, if
possible.  So I tried to do this in Perl, but for some reason neither
kill() nor Win32::Process::KillProcess() actually terminate the
threads.  I also tried clearing CachedKids, but that doesn't seem to
have any effect.  So even with no client apps running, I am unable to
drop the database without restarting the whole database service.

Does this mean I have to run a separate database server for each
database just to be able to boot people off a particular database
before dropping it?  It seems like a basic thing to be able to drop a
database unconditionally without restarting the service for people who
are using other databases on the same service.  Maybe I'm missing
something that everyone else who asked about this eventually realized?

Thanks,
Kev


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux