Re: Remove Deprecated Exclusive Backup Mode - Mailing list pgsql-hackers
From | Fujii Masao |
---|---|
Subject | Re: Remove Deprecated Exclusive Backup Mode |
Date | |
Msg-id | CAHGQGwEY311WC3NWU8a7hh8jh91QHO3MXAgit3gu60CrEjPqtw@mail.gmail.com Whole thread Raw |
In response to | Re: Remove Deprecated Exclusive Backup Mode (Laurenz Albe <laurenz.albe@cybertec.at>) |
Responses |
Re: Remove Deprecated Exclusive Backup Mode
Re: Remove Deprecated Exclusive Backup Mode |
List | pgsql-hackers |
On Mon, Feb 25, 2019 at 10:49 PM Laurenz Albe <laurenz.albe@cybertec.at> wrote: > > Stephen Frost wrote: > > > It will be annoying if after this removal, companies must change their > > > backup strategy by using specific postgres tools (pgbackrest, barman). > > > > You don't write your own database system using CSV files and shell > > magic, do you? I have to say that it continues to boggle my mind that > > people insist that *this* part of the system has to be able to be > > implementable using shell scripts. > > > > Folks, these are your backups we're talking about, your last resort if > > everything else goes up in flames, why do you want to risk that by > > implementing your own one-off solution, particularly when there's known > > serious issues using that interface, and you want to just use shell > > scripts to do it...? > > If we didn't think that simplicity in backup has some value, why does > PostgreSQL provide pg_basebackup? > > Not everybody wants to use tools like pgbackrest and barman because it > takes some effort to set them up properly. It seems that you think that > people who want something simpler are irresponsible. > > Incidentally, both barman and pgbackrest stream the backup to a backup server. > > I think the most important use case for the low level backup API is when > your database is so large that you want to leverage storage techniques > like snapshots for backup, because you can't or don't want to stream all > those terabytes across the network. > > I'm not playing devil's advocate here to annoy you. I see the problems > with the exclusive backup, and I see how it can hurt people. > I just think that removing exclusive backup without some kind of help > like Andres sketched above will make people unhappy. +1 Another idea is to improve an exclusive backup method so that it will never cause such issue. What about changing an exclusive backup mode of pg_start_backup() so that it creates something like backup_label.pending file instead of backup_label? Then if the database cluster has backup_label.pending file but not recovery.signal (this is the case where the database is recovered just after the server crashes while an exclusive backup is in progress), in this idea, the recovery using that database cluster always ignores (or removes) backup_label.pending file and start replaying WAL from the REDO location that pg_control file indicates. So this idea enables us to work around the issue that an exclusive backup could cause. On the other hand, the downside of this idea is that the users need to change the recovery procedure. When they want to do PITR using the backup having backup_label.pending, they need to not only create recovery.signal but also rename backup_label.pending to backup_label. Rename of backup_label file is brand-new step for their recovery procedure, and changing the recovery procedure might be painful for some users. But IMO it's less painful than removing an exclusive backup API at all. Thought? BTW, if recovery.signal is created but backup_label.pending is not renamed (this is the case where the operator forgets to rename the file even though she or he create recovery signal file, i.e., mis-configuration), I think that the recovery should emit PANIC immediately with the HINT like "HINT: rename backup_label.pening to backup_label if you want to do PITR". Regards, -- Fujii Masao
pgsql-hackers by date: