Re: Sample archive_command is still problematic
От | Josh Berkus |
---|---|
Тема | Re: Sample archive_command is still problematic |
Дата | |
Msg-id | 53E90488.9040103@agliodbs.com обсуждение исходный текст |
Ответ на | Sample archive_command is still problematic (Josh Berkus <josh@agliodbs.com>) |
Ответы |
Re: Sample archive_command is still problematic
|
Список | pgsql-docs |
On 08/11/2014 10:21 AM, Kevin Grittner wrote: >> Is there some good reason why "test ! -f" was added to the >> sample? > > In an environment with more than one cluster archiving, it is > otherwise way too easy to copy a config file and have the WAL files > of the two systems overwriting one another. I consider a check for > an already existing file on the target to be very good practice. > The errors in the log are a clue that something went wrong, and > gives you a chance to fix things without data loss. It depends on what you're guarding against. In the case I was dealing with, the master crashed in the middle of an archive write. As a result, the file existed, but was incomplete, and *needed* to be overwritten. But because of 'test -f' archiving just kept failing. > The problem with the recommended command is that cp is not atomic. > The file can be read before the contents are materialized, causing > early end to recovery. I have seen it happen. The right way to do > this is to copy to a different name or directory and mv the file > into place once it is complete -- or use software which does that > automatically, like rsync does. Yeah, realistically, I think we need to start supplying a script or two in /contrib and referencing that. I'm not sure how to make it work for the Windows users though. -- Josh Berkus PostgreSQL Experts Inc. http://pgexperts.com
В списке pgsql-docs по дате отправления: