Re: [HACKERS] Reading backup label file for checkpoint and redolocation during crash recovery

Поиск
Список
Период
Сортировка
От Andres Freund
Тема Re: [HACKERS] Reading backup label file for checkpoint and redolocation during crash recovery
Дата
Msg-id 20170925174838.7oi6mvymm7bhyrmw@alap3.anarazel.de
обсуждение исходный текст
Ответ на Re: [HACKERS] Reading backup label file for checkpoint and redolocation during crash recovery  (Stephen Frost <sfrost@snowman.net>)
Список pgsql-hackers
On 2017-09-25 13:43:32 -0400, Stephen Frost wrote:
> Greetings Satya,
> 
> * Satyanarayana Narlapuram (Satyanarayana.Narlapuram@microsoft.com) wrote:
> > During crash recovery, last checkpoint record information is obtained from the backup label if present, instead of
gettingit from the control file. This behavior is causing PostgreSQL database cluster not to come up until the backup
labelfile is deleted (as the error message says).
 
> > 
> > if (checkPoint.redo < checkPointLoc)
> >                       {
> >                              if (!ReadRecord(xlogreader, checkPoint.redo, LOG, false))
> >                                     ereport(FATAL,
> >                                                   (errmsg("could not find redo location referenced by checkpoint
record"),
> >                                                   errhint("If you are not restoring from a backup, try removing the
file\"%s/backup_label\".", DataDir)));
 
> >                       }
> > 
> > If we are recovering from a dump file, reading from the backup label files makes sense as the control file could be
archivedafter a few checkpoints. But this is not the case for crash recovery, and is always safe to read the checkpoint
recordinformation from the control file.
 
> > Is this behavior kept this way as there is no clear way to distinguish between the recovery from the dump and the
regularcrash recovery?
 
> 
> This is why the exclusive backup method has been deprecated in PG10 in
> favor of the non-exclusive backup method, which avoids this by not
> creating a backup label file (it's up to the backup software to store
> the necessary information and create the file for use during recovery).
> 
> Please see:
> 
> https://www.postgresql.org/docs/10/static/continuous-archiving.html
> 
> In particular, section 25.3.3.

Might not be obvious for the more casual contributor:

And even before then, using pg_basebackup / the streaming replication
protocol version of creating a base backup, it was avoided.

Greetings,

Andres Freund


-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

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

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: [HACKERS] Server crash due to SIGBUS(Bus Error) when trying to access the memory created using dsm_create().
Следующее
От: Pavel Stehule
Дата:
Сообщение: Re: [HACKERS] logical replication and statistics