Re: pg_standby stuck on a wal file size <16MB

Поиск
Список
Период
Сортировка
От Vlad Kosilov
Тема Re: pg_standby stuck on a wal file size <16MB
Дата
Msg-id 4833544B.9010006@contigo.com
обсуждение исходный текст
Ответ на Re: pg_standby stuck on a wal file size <16MB  (Greg Smith <gsmith@gregsmith.com>)
Ответы Re: pg_standby stuck on a wal file size <16MB
Список pgsql-general
as Greg pointed out: my use of rsync --remove-sent-files option had
contributed to a short sized wal log file on standby.
changing master's postgres crontab to the following helped to resolve
the issue:

# ship logs to standby:
*/2     * * * * rsync -aq /wal_archive_local/ 10.10.10.12::wal_archive/
# remove files older then remove_check file mtime
*/5     * * * * find /wal_archive_local/ ! -newer
/wal_archive_local/remove_check -exec rm -f {} \; && touch
/wal_archive_local/remove_check

Thank you!
V.


Greg Smith wrote:
> On Sat, 17 May 2008, Ioannis Tambouras wrote:
>
>> The archive command tests if the wal segment exists and is a file,
>> but it does not check if the file is still being written.
>
> That's because it doesn't have to; the archive command doesn't get
> called until the writing is done.
>
>> I don't have sources of pg_standby near me, but I remember in the
>> C code checks for complete segment sizes.
>
> That's on the receiving side, to make sure it's not trying to process
> files that haven't finished copying to the standby yet.  You don't
> have to do any of that in the archive_command.
>
> Anyway, back to the original question:
>
>> archive_command = 'test ! -f /usr/local/wal_archive_local/%f && cp %p
>> /usr/local/wal_archive_local/%f'
>> archive files are then moved  on master to standby every other minute:
>> rsync -aq --remove-sent-files /usr/local/wal_archive_local/
>> slave::wal_archive/
>
> I don't see any mechanism here to keep rsync from copying over partial
> files to the standby before they've finished copying to the
> wal_archive_local directory.  That's my guess for where the small
> files are coming from, rsync before the cp is done.  If you're going
> to buffer in a transfer directory, you need some sort of test or
> locking to make sure the file is complete with exactly 16MB before it
> gets rsync'd over. I suspect no amount of poking at the standby will
> root out the issue because it's happening on the primary.
>
> --
> * Greg Smith gsmith@gregsmith.com http://www.gregsmith.com Baltimore, MD
>


--
________________________________________
Vladimir (Vlad) Kosilov
Senior Systems Administrator
Contigo Systems Inc.
604.683.3106 (phone)
604.648.9886 (fax)
vkosilov@contigo.com
www.contigo.com
________________________________________


В списке pgsql-general по дате отправления:

Предыдущее
От: johnduffy@f2s.com
Дата:
Сообщение: Re: pgxs question - linking c-functions to external libraries
Следующее
От: Simon Riggs
Дата:
Сообщение: Re: Postgresql MVCC, Read Committed Isolation Level and taking "snapshot"