Re: Unarchived WALs deleted after crash
От | Heikki Linnakangas |
---|---|
Тема | Re: Unarchived WALs deleted after crash |
Дата | |
Msg-id | 511E5C18.4020201@vmware.com обсуждение исходный текст |
Ответ на | Re: Unarchived WALs deleted after crash (Simon Riggs <simon@2ndQuadrant.com>) |
Список | pgsql-hackers |
On 15.02.2013 17:12, Simon Riggs wrote: > On 15 February 2013 14:31, Heikki Linnakangas<hlinnakangas@vmware.com> wrote: >>> - /* >>> - * Normally we don't delete old XLOG files during recovery to >>> - * avoid accidentally deleting a file that looks stale due to a >>> - * bug or hardware issue, but in fact contains important data. >>> - * During streaming recovery, however, we will eventually fill the >>> - * disk if we never clean up, so we have to. That's not an issue >>> - * with file-based archive recovery because in that case we >>> - * restore one XLOG file at a time, on-demand, and with a >>> - * different filename that can't be confused with regular XLOG >>> - * files. >>> - */ >>> - if (WalRcvInProgress() || XLogArchiveCheckDone(xlde->d_name)) >>> + if (RecoveryInProgress() || XLogArchiveCheckDone(xlde->d_name)) >>> [ delete the file ] >> >> With that commit, we started to keep WAL segments restored from the archive >> in pg_xlog, so we needed to start deleting old segments during archive >> recovery, even when streaming replication was not active. But the above >> change was to broad; we started to delete old segments also during crash >> recovery. >> >> The above should check InArchiveRecovery, ie. only delete old files when in >> archive recovery, not when in crash recovery. But there's one little >> complication: InArchiveRecovery is currently only valid in the startup >> process, so we'll need to also share it in shared memory, so that the >> checkpointer process can access it. >> >> I propose the attached patch to fix it. > > Agree with your diagnosis and fix. Ok, committed. For the sake of the archives, attached is a script based on Jehan-Guillaume's description that I used for testing (incidentally based on Kyotaro's script to reproduce an unrelated problem in another thread). Thanks for the report! - Heikki
Вложения
В списке pgsql-hackers по дате отправления: