Simon Riggs wrote:
On Thu, 2006-05-25 at 17:25 +0200, Andreas Pflug wrote:



Currently, I have to edit postgresql.conf and SIGHUP to "turn on archiving" configuring a (hopefully) writable directory, do the backup, edit postgresql.conf and SIGHUP again. Not too convenient...


You're doing this for pgAdmin right?

Not yet, just trying to manage a server.


My understanding was that we had the tools now to edit the
postgresql.conf programmatically?
Seems like its not too convenient to change the way the server operates
to do this, as long as we solve the SIGHUP/postgresql.conf problem. I'm
also not that happy about curtailing people's options on backup either:
if people decided they wanted to have a mixture of isolated on-line
backup (as you suggest), plus active archiving at other times they would
still have the problems you suggest.

Why?
My suggestion is to redefine XLogArchivingActive. Currently, it tests for non-null archive_command. I propose
bool XlogArchivingActive()
{
   if (XLogArchiveCommand[0] == 0)
      return false;
   return (XLogPermanentArchive // from GUC
      || OnlineBackupRunning()); // from pg_start_backup
}

The people you mention simply have XLogPermanentActive=true in postgresql.conf, delivering the current behaviour.


Not sure what the edit commands are offhand, but we would need the
following program:

- edit postgresql.conf
- pg_reload_conf()
- wait 30
- pg_start_backup('blah')
- backup
- pg_stop_backup()
- unedit postgresql.conf
- pg_reload_conf()

Which could then be wrapped even more simply as

- pg_start_backup_online('blah')
- backup
- pg_stop_backup_online()

Editing postgresql.conf for this is ugly. In addition, pg_start_backup_online would need an additional parameter, the (highly machine specific) archive_command string. I'd like to see that parameter untouched in postgresql.conf.

Regards,
Andreas

---------------------------(end of broadcast)---------------------------
TIP 6: explain analyze is your friend

Reply via email to